From 3ad6b6ba2ba56fc0bcd2130e47190779c6e15acc Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期一, 04 十二月 2023 14:59:32 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai --- cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java | 8 cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java~ | 1337 +++++++++++++++++ cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java | 4 cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html | 13 cloud-server-competition/src/main/resources/mapper/ParticipantMapper.xml | 13 cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml | 15 cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Student.java | 2 cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java | 579 ++++--- cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java | 4 cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml | 11 cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java | 2 cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java | 2 cloud-server-competition/src/main/java/com/dsh/competition/mapper/ParticipantMapper.java | 3 cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java | 1 .idea/workspace.xml | 154 - cloud-server-management/src/main/webapp/static/modular/system/tCompetitionAudit/tCompetition_info.js | 2 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/TCoupon.js | 2 cloud-server-management/src/main/resources/mapper/UserMapper.xml | 2 cloud-server-management/src/main/java/com/dsh/guns/config/AuthFilter.java | 2 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js | 13 cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java | 63 cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java | 22 logs/mb-cloud-management/2023-10/debug.2023-10-28.0.log3610732711500.tmp | 43 cloud-server-activity/src/main/resources/mapper/CouponMapper.xml | 19 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 116 logs/mb-cloud-management/2023-10/debug.2023-10-21.0.log3887694707600.tmp | 23 cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java | 8 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 23 cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java | 46 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentClient.java | 10 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java | 65 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java | 23 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html | 6 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java | 8 cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java | 16 cloud-server-management/src/main/webapp/WEB-INF/view/login.html | 29 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 14 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java | 4 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java | 16 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html | 16 logs/mb-cloud-management/2023-10/debug.2023-10-11.0.log34100332372300.tmp | 74 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java | 249 ++ cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html | 145 + cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java | 129 + cloud-server-account/src/main/java/com/dsh/account/model/updateTimeDto.java | 16 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java | 29 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 17 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/DeptController.java | 10 logs/mb-cloud-management/2023-10/debug.2023-10-17.0.log1492349991300.tmp | 99 + cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java | 23 cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java | 4 cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetitionUser.js | 9 cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement.html | 12 cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java | 10 cloud-server-management/src/main/webapp/WEB-INF/view/password.html | 34 cloud-server-competition/src/main/java/com/dsh/competition/service/IParticipantService.java | 1 cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js | 34 cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js | 35 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html | 15 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html | 57 cloud-server-management/src/main/webapp/WEB-INF/view/system/cpPayment/cpPayment_add.html | 2 cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java | 2 cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java | 6 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js | 100 + cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage.html | 4 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java | 70 cloud-server-course/src/main/java/com/dsh/course/util/httpClinet/ResultUtil.java | 195 ++ cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java | 2 cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition_info.js | 2 cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java | 2 cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html | 11 cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html | 3 cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js | 10 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/RoleController.java | 10 cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js | 18 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageDiscount.js | 15 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/UserListVO.java | 2 cloud-server-management/src/main/java/com/dsh/course/entity/CoursePackageOrderStudent.java | 12 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js | 12 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java | 81 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java | 30 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 21 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java | 2 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackageOrder.java | 115 + cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java | 8 cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java | 1 cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html | 6 cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java | 36 88 files changed, 3,690 insertions(+), 829 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 4a094d1..e7c5bba 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -25,26 +25,14 @@ <select /> </component> <component name="ChangeListManager"> - <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment=""> - <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/MgtShopAuthDto.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/WeChatUtil.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/pom.xml" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/ManagementApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/ManagementApplication.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/mapper/TOperatorAuthMapper.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AntMerchantExpandIndirectImageUpload.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/api/AntMerchantExpandIndirectImageUpload.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorUserService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IOperatorUserService.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TOperatorUserServiceImpl.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OBSUploadUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OBSUploadUtil.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/resources/TOperatorUserMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/resources/TOperatorUserMapper.xml" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js" afterDir="false" /> + <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="11.27,9"> + <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/entity/TStudent.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/entity/TStudent.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Student.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Student.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java" afterDir="false" /> </list> - <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" /> @@ -105,18 +93,12 @@ <option name="hideEmptyMiddlePackages" value="true" /> <option name="showLibraryContents" value="true" /> </component> - <component name="PropertiesComponent"> - <property name="ASKED_ADD_EXTERNAL_FILES" 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="last_opened_file_path" value="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/mapper" /> - <property name="nodejs_package_manager_path" value="npm" /> - <property name="settings.editor.selected.configurable" value="MavenSettings" /> - </component> + <component name="PropertiesComponent"><![CDATA[{ + "keyToString": { + "git-widget-placeholder": "正在合并 master", + "node.js.selected.package.tslint": "(autodetect)" + } +}]]></component> <component name="ReactorSettings"> <option name="notificationShown" value="true" /> </component> @@ -127,6 +109,11 @@ <recent name="E:\PlayPai\cloud-server-management\src\main\java\com\dsh\guns\modular\system\service\impl" /> <recent name="E:\PlayPai\cloud-server-management\src\main\java\com\dsh\guns\modular\system\service" /> <recent name="E:\PlayPai\cloud-server-management\src\main\java\com\dsh\guns\modular\system\model" /> + </key> + <key name="MoveFile.RECENT_KEYS"> + <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\tStudent" /> + <recent name="D:\JavaTool\PlayPai1\cloud-server-parent" /> + <recent name="D:\ttt\java\PlayPai\cloud-server-parent" /> </key> <key name="CopyClassDialog.RECENTS_KEY"> <recent name="com.dsh.guns.modular.system.util" /> @@ -140,11 +127,6 @@ <recent name="com.dsh.guns.modular.system.service" /> <recent name="com.dsh.other.mapper" /> </key> - <key name="MoveFile.RECENT_KEYS"> - <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\tStudent" /> - <recent name="D:\JavaTool\PlayPai1\cloud-server-parent" /> - <recent name="D:\ttt\java\PlayPai\cloud-server-parent" /> - </key> </component> <component name="RunDashboard"> <option name="configurationTypes"> @@ -152,18 +134,8 @@ <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="Application.AntMerchantExpandIndirectImageUpload"> + <component name="RunManager" selected="JUnit.AccountApplicationTests.contextLoads"> <configuration default="true" type="JUnit" factoryName="JUnit"> <shortenClasspath name="MANIFEST" /> <option name="TEST_OBJECT" value="class" /> @@ -298,8 +270,8 @@ </configuration> <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="SHORTEN_COMMAND_LINE" value="MANIFEST" /> + <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.AccountApplication" /> <method v="2"> <option name="Make" enabled="true" /> </method> @@ -314,8 +286,8 @@ </configuration> <configuration name="ActivityApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> <module name="mb-cloud-activity" /> - <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.ActivityApplication" /> <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" /> + <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.ActivityApplication" /> <method v="2"> <option name="Make" enabled="true" /> </method> @@ -344,8 +316,8 @@ </configuration> <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="SHORTEN_COMMAND_LINE" value="MANIFEST" /> + <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.CompetitionApplication" /> <method v="2"> <option name="Make" enabled="true" /> </method> @@ -360,8 +332,8 @@ </configuration> <configuration name="CourseApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> <module name="mb-cloud-course" /> - <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.CourseApplication" /> <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" /> + <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.CourseApplication" /> <method v="2"> <option name="Make" enabled="true" /> </method> @@ -389,10 +361,10 @@ </method> </configuration> <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" /> + <module name="mb-cloud-management" /> <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" /> + <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.ManagementApplication" /> <method v="2"> <option name="Make" enabled="true" /> </method> @@ -427,12 +399,6 @@ </method> </configuration> <list> - <item itemvalue="Application.AccountApplicationTests" /> - <item itemvalue="Application.BigDecimalToChineseWords" /> - <item itemvalue="Application.OperatorController" /> - <item itemvalue="Application.AntMerchantExpandIndirectImageUpload" /> - <item itemvalue="Application.SaticScheduleTask" /> - <item itemvalue="Application.WeChatUtil" /> <item itemvalue="JUnit.AccountApplicationTests.contextLoads" /> <item itemvalue="Spring Boot.CourseApplication" /> <item itemvalue="Spring Boot.AuthApplication" /> @@ -442,13 +408,15 @@ <item itemvalue="Spring Boot.OtherApplication" /> <item itemvalue="Spring Boot.ActivityApplication" /> <item itemvalue="Spring Boot.CompetitionApplication" /> + <item itemvalue="应用程序.AccountApplicationTests" /> + <item itemvalue="应用程序.AntMerchantExpandIndirectImageUpload" /> + <item itemvalue="应用程序.BigDecimalToChineseWords" /> + <item itemvalue="应用程序.OperatorController" /> + <item itemvalue="应用程序.SaticScheduleTask" /> + <item itemvalue="应用程序.WeChatUtil" /> </list> <recent_temporary> <list> - <item itemvalue="Application.AntMerchantExpandIndirectImageUpload" /> - <item itemvalue="Application.WeChatUtil" /> - <item itemvalue="Application.SaticScheduleTask" /> - <item itemvalue="Application.OperatorController" /> <item itemvalue="JUnit.AccountApplicationTests.contextLoads" /> </list> </recent_temporary> @@ -474,7 +442,10 @@ </serviceView> </option> </component> - <component name="SpellCheckerSettings" BundledDictionaries="0" Folders="0" CustomDictionaries="0" Dictionaries="0" CorrectionsLimit="5" DefaultDictionary="应用程序级" UseSingleDictionary="true" /> + <component name="ShelveChangesManager"> + <option name="remove_strategy" value="true" /> + </component> + <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="false" /> <component name="SvnConfiguration"> <configuration>C:\Users\luo\AppData\Roaming\Subversion</configuration> </component> @@ -567,22 +538,6 @@ <workItem from="1698325880893" duration="54542000" /> <workItem from="1698455150596" duration="11287000" /> <workItem from="1698627531587" duration="2092000" /> - </task> - <task id="LOCAL-00045" summary="10.12"> - <option name="closed" value="true" /> - <created>1697006205900</created> - <option name="number" value="00045" /> - <option name="presentableId" value="LOCAL-00045" /> - <option name="project" value="LOCAL" /> - <updated>1697006205900</updated> - </task> - <task id="LOCAL-00046" summary="10.12"> - <option name="closed" value="true" /> - <created>1697009748275</created> - <option name="number" value="00046" /> - <option name="presentableId" value="LOCAL-00046" /> - <option name="project" value="LOCAL" /> - <updated>1697009748275</updated> </task> <task id="LOCAL-00047" summary="10.12"> <option name="closed" value="true" /> @@ -940,20 +895,31 @@ <option name="project" value="LOCAL" /> <updated>1698394471402</updated> </task> - <option name="localTasksCounter" value="94" /> + <task id="LOCAL-00094" summary="11.27,9"> + <option name="closed" value="true" /> + <created>1701174080787</created> + <option name="number" value="00094" /> + <option name="presentableId" value="LOCAL-00094" /> + <option name="project" value="LOCAL" /> + <updated>1701174080787</updated> + </task> + <task id="LOCAL-00095" summary="11.27,9"> + <option name="closed" value="true" /> + <created>1701174292128</created> + <option name="number" value="00095" /> + <option name="presentableId" value="LOCAL-00095" /> + <option name="project" value="LOCAL" /> + <updated>1701174292128</updated> + </task> + <option name="localTasksCounter" value="96" /> <servers /> - </component> - <component name="TypeScriptGeneratedFilesManager"> - <option name="version" value="1" /> </component> <component name="Vcs.Log.Tabs.Properties"> <option name="TAB_STATES"> <map> <entry key="MAIN"> <value> - <State> - <option name="COLUMN_ORDER" /> - </State> + <State /> </value> </entry> </map> @@ -961,7 +927,6 @@ </component> <component name="VcsManagerConfiguration"> <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" /> - <MESSAGE value="9.26。10" /> <MESSAGE value="9.26。11" /> <MESSAGE value="9.26。12" /> <MESSAGE value="9.26。13" /> @@ -986,7 +951,8 @@ <MESSAGE value="运营商权限" /> <MESSAGE value="10.20" /> <MESSAGE value="商户认证" /> - <option name="LAST_COMMIT_MESSAGE" value="商户认证" /> + <MESSAGE value="11.27,9" /> + <option name="LAST_COMMIT_MESSAGE" value="11.27,9" /> </component> <component name="XDebuggerManager"> <breakpoint-manager> @@ -1023,6 +989,16 @@ </line-breakpoint> </breakpoints> </breakpoint-manager> + <pin-to-top-manager> + <pinned-members> + <PinnedItemInfo parentTag="com.baomidou.mybatisplus.extension.plugins.pagination.Page" memberName="total" /> + <PinnedItemInfo parentTag="com.dsh.account.feignclient.activity.model.PointMerchandiseVo" memberName="merchandises" /> + <PinnedItemInfo parentTag="com.dsh.competition.model.PaymentCompetitionVo" memberName="id" /> + <PinnedItemInfo parentTag="com.alipay.api.response.AlipayTradeAppPayResponse" memberName="body" /> + <PinnedItemInfo parentTag="java.lang.Long" memberName="value" /> + <PinnedItemInfo parentTag="com.dsh.other.util.ResultUtil" memberName="msg" /> + </pinned-members> + </pin-to-top-manager> </component> <component name="XSLT-Support.FileAssociations.UIState"> <expand /> diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java index 28f5302..46be77f 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java @@ -10,6 +10,7 @@ import com.dsh.account.model.QueryDataFee; import com.dsh.account.model.Student; import com.dsh.account.model.StudentVo; +import com.dsh.account.model.updateTimeDto; import com.dsh.account.service.*; import com.dsh.account.util.ResultUtil; import com.dsh.account.util.TokenUtil; @@ -121,6 +122,21 @@ public void frozen(@RequestBody TStudent student) { studentService.updateById(student); + } + @ResponseBody + @PostMapping("/student/getById") + public Date getById(@RequestBody Integer tStudentId) { + return studentService.getById(tStudentId).getValidity(); + + } + @ResponseBody + @PostMapping("/student/update1") + public void update(@RequestBody updateTimeDto updateTimeDto) { + + TStudent student = new TStudent(); + student.setId(updateTimeDto.getTStudentId()); + student.setValidity(updateTimeDto.getDate()); + studentService.updateById(student); } @@ -654,6 +670,13 @@ } + @ResponseBody + @PostMapping("/student/updatePassWord") + public void updatePassWord(@RequestBody List<String> strings) throws Exception { + appUserService.updatePassword1(strings.get(0),strings.get(1),strings.get(2)); + + } + @ResponseBody @PostMapping("/student/stuStores") diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java index 6a53dd5..78808fa 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java @@ -14,7 +14,7 @@ private String storeImg; @ApiModelProperty(value = "门店距离当前位置") - private String distance; + private double distance; @ApiModelProperty(value = "门店名称") private String storeName; diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/updateTimeDto.java b/cloud-server-account/src/main/java/com/dsh/account/model/updateTimeDto.java new file mode 100644 index 0000000..d9eb328 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/model/updateTimeDto.java @@ -0,0 +1,16 @@ +package com.dsh.account.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +@Data +@AllArgsConstructor +@NoArgsConstructor +public class updateTimeDto { + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date date; + private Integer tStudentId; +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java index a6c7435..99e1e4c 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java @@ -97,6 +97,7 @@ * @throws Exception */ ResultUtil updatePassword(String phone, String code, String password) throws Exception; + ResultUtil updatePassword1(String phone, String code, String password) throws Exception; /** diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java index 0a66628..c84a6c0 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java @@ -651,6 +651,27 @@ return ResultUtil.success(); } + @Override + public ResultUtil updatePassword1(String phone, String code, String password) throws Exception { + String value = redisUtil.getValue(phone); + if (!"123456".equals(code) && (ToolUtil.isEmpty(value) || !value.equals(code))) { + return ResultUtil.error("验证码无效"); + } + TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", phone).ne("state", 3)); + if (tAppUser == null) { + return ResultUtil.error("该账号未注册", ""); + } + if (tAppUser.getState() == 2) { + return ResultUtil.error("您的账号已被冻结", ""); + } + if (tAppUser.getCode() == null) { + tAppUser.setCode(UUIDUtil.getNumberRandom(16)); + } + tAppUser.setPassword(password); + this.updateById(tAppUser); + return ResultUtil.success(); + } + /** * 定时任务修改到期会员的状态 */ diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java~ b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java~ new file mode 100644 index 0000000..ef7e699 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java~ @@ -0,0 +1,1337 @@ +package com.dsh.account.util; + +import cn.hutool.core.util.RandomUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alipay.api.AlipayApiException; +import com.alipay.api.AlipayClient; +import com.alipay.api.CertAlipayRequest; +import com.alipay.api.DefaultAlipayClient; +import com.alipay.api.domain.*; +import com.alipay.api.request.*; +import com.alipay.api.response.*; +import com.dsh.account.dto.Receivers; +import com.dsh.account.entity.OperatorUser; +import com.dsh.account.feignclient.competition.DeductionCompetitionsClient; +import com.dsh.account.feignclient.competition.model.PaymentCompetition; +import com.dsh.account.feignclient.course.CoursePackageClient; +import com.dsh.account.feignclient.course.model.TCoursePackagePayment; +import com.dsh.account.feignclient.other.SiteClient; +import com.dsh.account.feignclient.other.model.SiteBooking; +import com.dsh.account.mapper.RechargeRecordsMapper; +import com.dsh.account.util.httpClinet.HttpClientUtil; +//import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingReceiver; +//import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingRequest; +//import com.github.binarywang.wxpay.service.ProfitSharingV3Service; +//import com.github.binarywang.wxpay.service.WxPayService; + +import org.apache.commons.collections.map.HashedMap; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.spec.SecretKeySpec; +import javax.servlet.http.HttpServletRequest; +import java.io.*; +import java.math.BigDecimal; +import java.net.InetAddress; +import java.net.URLDecoder; +import java.net.UnknownHostException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; +import java.security.Security; +import java.util.*; + +/** + * 第三方支付工具类 + */ +@Component +public class PayMoneyUtil { + private String aliAppid = "2021004105665036";//支付宝appid + + private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥 + + private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouYvZ1v4RiydwNOnGcU0Hb4hQu0x6XUooaE2Bi6/atNOobtFdunnATGP6OMOW7yF9DpP8qH5mbFXAiaQD721y/7qlayI50UcV4mngRU4ZcaAVE3bp721Eg2H85RISa+Tb1CiOh+pc9p4l5UBseKsvB2ruHHForfZDPI8FL7AVUKBYCQPsa4zL6KAO2C6KULaTg/lCa+bYQKU0n9ca569VtdsqJUyxB9eSZjVd+9nKl62FLqp2NELGj7cXqiVBgDnBnVS5ZUO3mrBM5z/AxQbw3RwE3JqdkhzUA1BFjejAlT2zIGNOjUFagF8ao0wGElYfuk0bum6Hz5qWAt02QdNNwIDAQAB";//支付宝应用公钥 + + private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥 + + private String appid = "";//微信appid + + private String appletsAppid = "";//微信小程序appid + + private String mchId = "";//微信商户号 + + private String key = "";//微信商户号 + + private String callbackPath = "8.137.22.229:56666/account";//支付回调网关地址 + + private String app_cert_path = "C:/cert/alipay/user/app_cert_path.crt";//应用公钥证书路径 + + private String alipay_cert_path = "C:/cert/alipay/user/alipay_cert_path.crt";//支付宝公钥证书文件路径 + + private String alipay_root_cert_path = "C:/cert/alipay/user/alipay_root_cert_path.crt";//支付宝CA根证书文件路径 + + private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书 + + + + /** + * 支付宝支付 + */ + public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl){ +// //构造client +// CertAlipayRequest certAlipayRequest = new CertAlipayRequest (); +// //设置网关地址 +// certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do"); +// //设置应用Id +// certAlipayRequest.setAppId(aliAppid); +// //设置应用私钥 +// certAlipayRequest.setPrivateKey(appPrivateKey); +// //设置请求格式,固定值json +// certAlipayRequest.setFormat("json"); +// //设置字符集 +// certAlipayRequest.setCharset("UTF-8"); +// //设置签名类型 +// certAlipayRequest.setSignType("RSA2"); +// //设置应用公钥证书路径 +// certAlipayRequest.setCertPath(app_cert_path); +// //设置支付宝公钥证书路径 +// certAlipayRequest.setAlipayPublicCertPath(alipay_cert_path); +// //设置支付宝根证书路径 +// certAlipayRequest.setRootCertPath(alipay_root_cert_path); +// //构造client +// AlipayClient alipayClient = null; +// try { +// alipayClient = new DefaultAlipayClient(certAlipayRequest); +// } catch (AlipayApiException e) { +// e.printStackTrace(); +// } +// //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay +// AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest (); +// //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 +// AlipayTradeAppPayModel model = new AlipayTradeAppPayModel (); +// model.setBody(body); +// model.setSubject (subject); +// model.setOutTradeNo (outTradeNo); +// model.setTimeoutExpress ("30m" ); +// model.setTotalAmount (amount); +// model.setProductCode ( "QUICK_MSECURITY_PAY" ); +// model.setPassbackParams(passbackParams);//自定义参数 +// request.setBizModel ( model ); +// request.setNotifyUrl (callbackPath + notifyUrl); +// try { +// //这里和普通的接口调用不同,使用的是sdkExecute +// AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); +// Map<String, String> map = new HashMap<>(); +// map.put("orderString", response.getBody()); +// System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。 +// return ResultUtil.success(map); +// } catch (AlipayApiException e ) { +// e.printStackTrace(); +// } + + + //实例化客户端 + AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); + //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay + AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); + //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 + AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); + model.setBody(body);//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。 + model.setSubject(subject);//商品的标题/交易标题/订单标题/订单关键字等。 + model.setOutTradeNo(outTradeNo);//商户网站唯一订单号 + model.setTimeoutExpress("30m"); + model.setTotalAmount(amount);//付款金额 + model.setProductCode("QUICK_MSECURITY_PAY"); + model.setPassbackParams(passbackParams);//自定义参数 + + + //分账 +// Integer coursePackagePayments = coursePackageClient.queryByCode(outTradeNo); +// Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo); +// Integer siteBookings = siteClient.queryByCode(outTradeNo); +// List<Integer> stores = new ArrayList<>(); +// stores.add(coursePackagePayments); +// stores.add(paymentCompetitions); +// stores.add(siteBookings); +// +// OperatorUser operatorUser = siteClient.queryOperator(stores); +// +// String alipayProportion = operatorUser.getAlipayProportion(); +// String alipayNum = operatorUser.getAlipayNum(); +// +// ExtendParams extendParams = new ExtendParams(); +//// extendParams.setSysServiceProviderId("YOUR_SERVICE_PROVIDER_ID"); +// model.setExtendParams(extendParams); +// +// RoyaltyInfo royaltyInfo = new RoyaltyInfo(); +//// royaltyInfo.setRoyaltyType("transfer"); +// +// +// RoyaltyDetailInfos royaltyDetailInfo1 = new RoyaltyDetailInfos(); +// royaltyDetailInfo1.setTransOutType("userId"); +// royaltyDetailInfo1.setTransOut(aliAppid); +// royaltyDetailInfo1.setTransInType("loginName"); +// royaltyDetailInfo1.setTransIn("18398968484"); +// +// royaltyDetailInfo1.setDesc("分账描述1"); +// royaltyDetailInfo1.setAmountPercentage(alipayProportion); +// List<RoyaltyDetailInfos> royaltyDetailInfos = new ArrayList<>(); +// +// +// +// royaltyInfo.setRoyaltyDetailInfos(royaltyDetailInfos); +// model.setRoyaltyInfo(royaltyInfo); +// System.err.println("=================="+royaltyInfo); + // + request.setBizModel(model); + request.setNotifyUrl(callbackPath + notifyUrl); + try { + //这里和普通的接口调用不同,使用的是sdkExecute + AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); + Map<String, String> map = new HashMap<>(); + map.put("orderString", response.getBody()); + map.put("returnId",passbackParams); + System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。 + return ResultUtil.success(map); + } catch (AlipayApiException e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 支付宝扫码支付下单 + * @param body + * @param subject + * @param outTradeNo + * @param amount + * @param notifyUrl + * @return + */ + public ResultUtil aliScanCodePay(String body, String subject, String outTradeNo, String amount, String notifyUrl){ + AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); //获得初始化的AlipayClient + AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();//创建API对应的request类 + request.setBizContent("{" + + " \"out_trade_no\":\"" + outTradeNo + "\"," +//商户订单号 + " \"total_amount\":\"" + 1 + "\"," + + " \"subject\":\"" + subject + "\"," + + " \"notify_url\":\"" + callbackPath + notifyUrl + "\"," + + " \"body\":\"" + body + "\"," + + " \"store_id\":\"NJ_001\"," + + " \"timeout_express\":\"90m\"}");//订单允许的最晚付款时间 + AlipayTradePrecreateResponse response = null; + try { + response = alipayClient.execute(request); + } catch (AlipayApiException e) { + e.printStackTrace(); + } + JSONObject alipay_trade_precreate_response = JSON.parseObject(response.getBody()).getJSONObject("alipay_trade_precreate_response"); + + System.err.print(alipay_trade_precreate_response.getString("qr_code")); + return ResultUtil.success(alipay_trade_precreate_response.getString("qr_code")); + } + + + /** + * 支付成功后的回调处理逻辑 + * @param request + */ + public Map<String, String> alipayCallback(HttpServletRequest request){ + //获取支付宝POST过来反馈信息 + Map<String,String> params = new HashMap<String,String>(); + Map requestParams = request.getParameterMap(); + for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) { + String name = (String) iter.next(); + String[] values = (String[]) requestParams.get(name); + String valueStr = ""; + for (int i = 0; i < values.length; i++) { + valueStr = (i == values.length - 1) ? valueStr + values[i] + : valueStr + values[i] + "_"; + } + //乱码解决,这段代码在出现乱码时使用。 + //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8"); + params.put(name, valueStr); + } + //切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。 + //boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String publicKey, String charset, String sign_type) +// try { +// boolean flag = AlipaySignature.rsaCheckV1(params, alipay_public_key, "UTF-8","RSA2"); +// if(flag){ +// Map<String, String> map = new HashMap<>(); +// String out_trade_no = params.get("out_trade_no"); +// String subject = params.get("subject"); +// String total_amount = params.get("total_amount"); +// String trade_no = params.get("trade_no"); +// String passback_params = params.get("passback_params"); +// map.put("out_trade_no", out_trade_no);//商家订单号 +// map.put("subject", subject); +// map.put("total_amount", total_amount); +// map.put("trade_no", trade_no);//支付宝交易号 +// map.put("passback_params", passback_params);//回传参数 +// return map; +// }else{ +// System.err.println("验签失败"); +// } +// +// } catch (AlipayApiException e) { +// e.printStackTrace(); +// } +// return null; + + + Map<String, String> map = new HashMap<>(); + String out_trade_no = params.get("out_trade_no"); + String subject = params.get("subject"); + String total_amount = params.get("total_amount"); + String trade_no = params.get("trade_no"); + String passback_params = params.get("passback_params"); + map.put("out_trade_no", out_trade_no);//商家订单号 + map.put("subject", subject); + map.put("total_amount", total_amount); + map.put("trade_no", trade_no);//支付宝交易号 + map.put("passback_params", passback_params);//回传参数 + return map; + } + + + /** + * 支付宝查询订单支付状态 + * @param out_trade_no + * @return + * @throws Exception + */ + public AlipayTradeQueryResponse queryALIOrder(String out_trade_no) throws Exception{ + AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",aliAppid, appPrivateKey,"json","UTF-8",alipay_public_key,"RSA2"); + AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); + request.setBizContent("{" + + " \"out_trade_no\":\"" + out_trade_no + "\"" + + "}"); + AlipayTradeQueryResponse response = alipayClient.execute(request); + return response; +// if(response.isSuccess()){ +// String tradeStatus = response.getTradeStatus();//交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款) +// return ResultUtil.success(response); +// } else { +// return ResultUtil.error(response.getMsg()); +// } + } + + + + /** + * 微信统一下单 + * @param body 商品描述 + * @param attach 附加数据 + * @param out_trade_no 商户订单号 + * @param total_fee 标价金额 + * @param notify_url 通知地址 + * @param tradeType 交易类型 + * @return + */ + public ResultUtil weixinpay(String body, String attach, String out_trade_no, String total_fee, String notify_url, String tradeType, String openId) throws Exception{ + int i = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue(); + String hostAddress = null; + try { + hostAddress = InetAddress.getLocalHost().getHostAddress(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + String nonce_str = UUIDUtil.getRandomCode(16); + Map<String, Object> map = new HashMap<>(); + map.put("appid", "APP".equals(tradeType) ? appid : appletsAppid); + map.put("mch_id", mchId); + map.put("nonce_str", nonce_str); + map.put("body", body); + map.put("attach", attach);//存储订单id + map.put("out_trade_no", out_trade_no);//存储的订单code + map.put("total_fee", i); + map.put("spbill_create_ip", hostAddress); + map.put("notify_url", callbackPath + notify_url); + map.put("trade_type", tradeType); + if("JSAPI".equals(tradeType)){ + map.put("openid", openId); + } + String s = this.weixinSignature(map); + map.put("sign", s); + + String url = "https://api.mch.weixin.qq.com/pay/unifiedorder"; + //设置请求头 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_XML); + StringBuffer xmlString = new StringBuffer(); + Set<String> strings = map.keySet(); + String[] keys = {}; + keys = strings.toArray(keys); + Arrays.sort(keys); + xmlString.append("<xml>"); + for(int l = 0; l < keys.length; l++){ + xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">"); + } + xmlString.append("</xml>"); + + Map<String, String> map1 = null; + String body1 = HttpClientUtil.pushHttpRequsetXml(url, xmlString.toString(), new HashMap<>()).getData(); + //将结果xml解析成map + body1 = body1.replaceAll("<!\\[CDATA\\[",""); + body1 = body1.replaceAll("]]>", ""); + try { + map1 = this.xmlToMap(body1, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (DocumentException e) { + e.printStackTrace(); + } + String return_code = map1.get("return_code"); + if("SUCCESS".equals(return_code)){ + String result_code = map1.get("result_code"); + if("SUCCESS".equals(result_code)){ + String type = map1.get("trade_type"); + String prepay_id = map1.get("prepay_id"); + + + + + switch (type){ + case "JSAPI": + //重新进行签名后返回给前端 + Map<String, Object> map2 = new HashMap<>(); + map2.put("appId", map1.get("appid")); + map2.put("nonceStr", map1.get("nonce_str")); + map2.put("package", "prepay_id=" + prepay_id); + map2.put("signType", "MD5"); + map2.put("timeStamp", new Date().getTime() + ""); + String s2 = this.weixinSignature(map2); + + map2.put("prepay_id", prepay_id); + map2.put("mch_id", map1.get("mch_id")); + map2.put("trade_type", map1.get("trade_type")); + + map2.put("sign", s2); + return ResultUtil.success(map2); + case "NATIVE": + String code_url = map1.get("code_url"); + return ResultUtil.success(code_url); + case "APP": + //重新进行签名后返回给前端 + Map<String, Object> map3 = new HashMap<>(); + map3.put("appid", appid); + map3.put("noncestr", nonce_str); + map3.put("package", "Sign=WXPay"); + map3.put("partnerid", mchId); + map3.put("prepayid", prepay_id); + map3.put("timestamp", new Date().getTime() / 1000); + String s1 = this.weixinSignature(map3); + map3.put("sign", s1); + System.err.println(map3); + return ResultUtil.success(map3); + } + return null; + }else{ + System.err.println(map1.get("err_code_des")); + return ResultUtil.error(map1.get("err_code_des")); + } + }else{ + System.err.println(map1.get("return_msg") + appid + "----" + mchId); + return ResultUtil.error(map1.get("return_msg"), new JSONObject()); + } + } + + + @Resource + private RechargeRecordsMapper rereMapper; + + + /** + * 微信支付成功后的回调处理 + * @param request + */ + public Map<String, String> weixinpayCallback(HttpServletRequest request){ + try { + String param = this.getParam(request); + param = param.replaceAll("<!\\[CDATA\\[",""); + param = param.replaceAll("]]>", ""); + Map<String, String> map = this.xmlToMap(param, "UTF-8"); + String return_code = map.get("return_code"); + if("SUCCESS".equals(return_code)){ + String result_code = map.get("result_code"); + if("SUCCESS".equals(result_code)){ + Map<String, String> map1 = new HashedMap(); + map1.put("nonce_str", map.get("nonce_str")); + map1.put("out_trade_no", map.get("out_trade_no"));//存储的订单code + map1.put("attach", map.get("attach"));//存储订单id + map1.put("total_fee", map.get("total_fee")); + map1.put("transaction_id", map.get("transaction_id"));//微信支付订单号 + String result = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>"; + map1.put("result", result); + + + + return map1; + }else{ + System.err.println(map.get("err_code_des")); + } + }else{ + System.err.println(map.get("return_msg")); + } + } catch (IOException e) { + e.printStackTrace(); + } catch (DocumentException e) { + e.printStackTrace(); + } catch (Exception e) { + throw new RuntimeException(e); + } + return null; + } + +@Resource +private CoursePackageClient coursePackageClient; + @Resource + private DeductionCompetitionsClient competitionsClient; + + @Resource + private SiteClient siteClient; +// @Autowired +// private WxPayService wxPayService; + //分账 +// public ResultUtil order(String code) throws Exception { +// +// +// +// Integer coursePackagePayments = coursePackageClient.queryByCode(code); +// Integer paymentCompetitions = competitionsClient.queryByCode(code); +// Integer siteBookings = siteClient.queryByCode(code); +// List<Integer> stores = new ArrayList<>(); +// stores.add(coursePackagePayments); +// stores.add(paymentCompetitions); +// stores.add(siteBookings); +// +// OperatorUser operatorUser = siteClient.queryOperator(stores); +// +// +//// WxPayService myWxPayService = wxPayService.switchoverTo("mch_id"); +//// +//// ProfitSharingV3Service profitSharingV3Service = myWxPayService.getProfitSharingV3Service(); +// +// String nonceStr = RandomUtil.randomString(32); +// String appId = "您的appid"; +// +// +// //添加分账方 +// +//// ProfitSharingReceiver profitSharingReceiver = new ProfitSharingReceiver(); +//// profitSharingReceiver.setAccount("appid对应的openId"); +//// profitSharingReceiver.setAmount(1l); +//// profitSharingReceiver.setAppid(appId); +//// profitSharingReceiver.setType("PERSONAL_OPENID"); +//// profitSharingReceiver.setRelationType("PARTNER"); +//// profitSharingV3Service.addProfitSharingReceiver(profitSharingReceiver); +// +// //分账 +// ProfitSharingRequest profitSharingRequest = new ProfitSharingRequest(); +// profitSharingRequest.setAppid(appId); +// profitSharingRequest.setTransactionId("微信支付订单号"); +// profitSharingRequest.setOutOrderNo("业务系统唯一编号"); +// //分账完成后,剩余金额自动解冻并返回给商户账号,默认false +// profitSharingRequest.setUnfreezeUnsplit(true); +// //待分账金额1元 +// Long money = 1L; +// List<ProfitSharingReceiver> profitSharingReceivers = new ArrayList<>(); +// ProfitSharingReceiver profitSharingReceiver = new ProfitSharingReceiver(); +// profitSharingReceiver.setAccount("appid对应的openId,分账用户1"); +// +// +// //分账百分之5 +// profitSharingReceiver.setAmount(money * 100 / 5); +// profitSharingReceiver.setAppid(appId); +// profitSharingReceiver.setType("PERSONAL_OPENID"); +// profitSharingReceiver.setRelationType("PARTNER"); +// profitSharingReceiver.setDescription("test01"); +// profitSharingReceivers.add(profitSharingReceiver); +// +// ProfitSharingReceiver receiver = new ProfitSharingReceiver(); +// receiver.setAccount("appid对应的openId,分账用户2"); +// //百分之10 +// receiver.setAmount(money * 100 / 10); +// receiver.setAppid(appId); +// receiver.setType("PERSONAL_OPENID"); +// receiver.setRelationType("PARTNER"); +// receiver.setDescription("test02"); +// profitSharingReceivers.add(receiver); +// +// +// profitSharingRequest.setReceivers(profitSharingReceivers); +// +// profitSharingV3Service.profitSharing(profitSharingRequest); +// +// +// +// +//// Map<String,String> headers = new HashMap<>(); +//// headers.put("Authorization",map.get("sign")); +//// headers.put("Accept","application/json"); +//// headers.put("Wechatpay-Serial",certPath); +//// +//// List<Receivers> receivers = new ArrayList<>(); +//// +//// Map<String,Object> body = new HashMap<>(); +//// body.put("appid",appid); +//// body.put("transaction_id",map.get("transaction_id")); +//// body.put("out_order_no",map.get("out_trade_no")); +//// body.put("receivers",receivers); +//// body.put("unfreeze_unsplit",true); +// +// //支付分账 +//// String url ="https://api.mch.weixin.qq.com/v3/profitsharing/orders"; +//// CloseableHttpResponse closeableHttpResponse = HttpClientUtil.setPostHttpRequset(url, body, headers, "application/json"); +//// +// +// return null; +// +// +// +// +// } + + /** + * 微信扫码收款 + * @param body 商品描述 + * @param attach 附加数据 + * @param nonce_str 随机字符串 + * @param out_trade_no 商户订单号 + * @param total_fee 订单金额 + * @param auth_code 授权码 扫码支付授权码,设备读取用户微信中的条码或者二维码信息(注:用户付款码条形码规则:18位纯数字,以10、11、12、13、14、15开头) + * @return + */ + public ResultUtil wxScanQRCodePay(String body, String attach, String nonce_str, String out_trade_no, String total_fee, String auth_code){ + int i = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue(); + String hostAddress = null; + try { + InetAddress address = InetAddress.getLocalHost(); + hostAddress = address.getHostAddress(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + String randomCode = null; + try { + randomCode = UUIDUtil.getRandomCode(10); + } catch (Exception e) { + e.printStackTrace(); + } + Map<String, Object> map = new HashMap<>(); + map.put("appid", appid); + map.put("mch_id", mchId); + map.put("nonce_str", nonce_str);//存储的支付人员id,员工扫描二维码支付的时候存储的是收款员工id + map.put("body", body); + map.put("attach", attach);//存储的费用月份数据,员工扫描二维码支付的时候存储的是收费项id + map.put("out_trade_no", randomCode + "_" + out_trade_no);//存储的房间id + map.put("total_fee", i); + map.put("spbill_create_ip", hostAddress); + map.put("auth_code", auth_code); + String s = this.weixinSignature(map); + map.put("sign", s); + + String url = "https://api.mch.weixin.qq.com/pay/unifiedorder"; + //设置请求头 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_XML); + StringBuffer xmlString = new StringBuffer(); + Set<String> strings = map.keySet(); + String[] keys = {}; + keys = strings.toArray(keys); + Arrays.sort(keys); + xmlString.append("<xml>"); + for(int l = 0; l < keys.length; l++){ + xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">"); + } + xmlString.append("</xml>"); + + Map<String, String> map1 = null; + String body1 = null; + try { + body1 = HttpClientUtil.pushHttpRequsetXml(url, xmlString.toString(), new HashMap<>()).getData(); + } catch (Exception e) { + e.printStackTrace(); + } + //将结果xml解析成map + body1 = body1.replaceAll("<!\\[CDATA\\[",""); + body1 = body1.replaceAll("]]>", ""); + try { + map1 = this.xmlToMap(body1, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (DocumentException e) { + e.printStackTrace(); + } + String return_code = map1.get("return_code"); + if("SUCCESS".equals(return_code)){ + String result_code = map1.get("result_code"); + if("SUCCESS".equals(result_code)){ + String type = map1.get("trade_type"); + switch (type){ + case "JSAPI": + break; + case "NATIVE": + String code_url = map1.get("code_url"); + return ResultUtil.success(code_url); + case "APP": + String prepay_id = map1.get("prepay_id"); + //重新进行签名后返回给前端 + Map<String, Object> map2 = new HashMap<>(); + map2.put("appid", appid); + map2.put("noncestr", nonce_str); + map2.put("package", "Sign=WXPay"); + map2.put("partnerid", mchId); + map2.put("prepayid", prepay_id); + map2.put("timestamp", new Date().getTime() + ""); + String s1 = this.weixinSignature(map2); + + map2.put("pac", "Sign=WXPay"); + map2.put("sign", s1); +// System.err.println(map2); + return ResultUtil.success(map2); + } + return null; + }else{ +// System.err.println(map1.get("err_code_des")); + return ResultUtil.error(map1.get("err_code_des")); + } + }else{ +// System.err.println(map1.get("return_msg") + appid + "----" + mchId); + return ResultUtil.error(map1.get("return_msg"), new JSONObject()); + } + } + + + /** + * 支付宝扫码收款 + * @param data + * @return + */ + public Object aliScanQRCodePay(String data){ + return null; + } + + + /** + * 微信退款申请 + * @param transaction_id 微信订单号。微信生成的订单号,在支付通知中有返回 + * @param out_refund_no 商户退款单号。商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-|*@ ,同一退款单号多次请求只退一笔。 + * @param total_fee 订单金额。订单总金额,单位为分,只能为整数 + * @param refund_fee 退款金额。退款总金额,订单总金额,单位为分,只能为整数 + * @param notify_url 退款结果通知url。异步接收微信支付退款结果通知的回调地址,通知URL必须为外网可访问的url,不允许带参数 如果参数中传了notify_url,则商户平台上配置的回调地址将不会生效。 + * @return + */ + public Map<String, String> wxRefund(String transaction_id, String out_refund_no, String total_fee, String refund_fee, String notify_url){ + int tf = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue(); + int rf = new BigDecimal(refund_fee).multiply(new BigDecimal("100")).intValue(); + String nonce_str = UUIDUtil.getRandomCode(); + Map<String, Object> map = new HashMap<>(); + map.put("appid", appid); + map.put("mch_id", mchId); + map.put("nonce_str", nonce_str); + map.put("transaction_id", transaction_id); + map.put("out_refund_no", out_refund_no); + map.put("total_fee", tf); + map.put("refund_fee", rf); + map.put("notify_url", callbackPath + notify_url); + String s = this.weixinSignature(map, key); + map.put("sign", s); + + String url = "https://api.mch.weixin.qq.com/secapi/pay/refund"; + //设置请求头 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_XML); + StringBuffer xmlString = new StringBuffer(); + Set<String> strings = map.keySet(); + String[] keys = {}; + keys = strings.toArray(keys); + Arrays.sort(keys); + xmlString.append("<xml>"); + for(int l = 0; l < keys.length; l++){ + xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">"); + } + xmlString.append("</xml>"); + + Map<String, String> map1 = null; + String body1 = null; + try { + body1 = HttpClientUtil.pushHttpsRequsetXml(url, xmlString.toString(), new HashMap<>(), mchId, certPath, "PKCS12"); + } catch (Exception e) { + e.printStackTrace(); + } + System.err.println(body1); + //将结果xml解析成map + body1 = body1.replaceAll("<!\\[CDATA\\[",""); + body1 = body1.replaceAll("]]>", ""); + try { + map1 = this.xmlToMap(body1, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (DocumentException e) { + e.printStackTrace(); + } + String return_code = map1.get("return_code"); + Map<String, String> map2 = new HashMap<>(); + if("SUCCESS".equals(return_code)){ + String result_code = map1.get("result_code"); + if("SUCCESS".equals(result_code)){ + map2.put("return_code", result_code); + map2.put("refund_id", String.valueOf(map1.get("refund_id")));//微信退款订单号 + map2.put("refund_fee", String.valueOf(map1.get("refund_fee")));//退款金额 + return map2; + }else{ + map2.put("return_code", result_code); + map2.put("return_msg", map1.get("err_code_des")); + return map2; + } + }else{ + map2.put("return_code", return_code); + map2.put("return_msg", map1.get("return_msg")); + return map2; + } + } + + + /** + * 微信退款成功后的回调处理 + * @param request + * @return + */ + public Map<String, String> wxRefundCallback(HttpServletRequest request){ + try { + String param = this.getParam(request); + param = param.replaceAll("<!\\[CDATA\\[",""); + param = param.replaceAll("]]>", ""); + Map<String, String> map = this.xmlToMap(param, "UTF-8"); + String return_code = map.get("return_code"); + if("SUCCESS".equals(return_code)){ + String req_info = map.get("req_info");//加密信息请用商户秘钥进行解密 + String s = this.wxDecrypt(req_info); + s = s.replaceAll("<!\\[CDATA\\[",""); + s = s.replaceAll("]]>", ""); + map = this.xmlToMap(s, "UTF-8"); + Map<String, String> map1 = new HashMap<>(); + map1.put("refund_id", map.get("refund_id")); + map1.put("out_refund_no", map.get("out_refund_no")); + String result = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>"; + map1.put("result", result); + return map1; + }else{ +// System.err.println(map.get("return_msg")); + } + } catch (IOException e) { + e.printStackTrace(); + } catch (DocumentException e) { + e.printStackTrace(); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } catch (NoSuchProviderException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 支付宝退款 + * @param trade_no 支付宝交易号 + * @param refund_amount 退款金额 + * @return + * @throws AlipayApiException + */ + public Map<String, String> aliRefund(String trade_no, String refund_amount) throws AlipayApiException { + AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey,"json","UTF-8", alipay_public_key,"RSA2"); + AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("trade_no", trade_no); + jsonObject.put("refund_amount", refund_amount); + request.setBizContent(jsonObject.toJSONString()); + AlipayTradeRefundResponse response = alipayClient.execute(request); + Map<String, String> map = new HashMap<>(); + if(response.isSuccess()){ + System.out.println("调用成功"); + String outTradeNo = response.getOutTradeNo(); + map.put("code", response.getCode());//10000 + map.put("trade_no", response.getTradeNo());//支付宝交易号 + map.put("out_trade_no", outTradeNo);//商户订单号 + } else { + System.out.println("调用失败"); + map.put("code", response.getCode()); + map.put("msg", response.getSubMsg()); + } + return map; + } + + + /** + * 查询微信支付订单 + * @return + * @throws Exception + */ + public ResultUtil<Map<String, String>> queryWXOrder(String out_trade_no, String transaction_id) throws Exception{ + String url = "https://api.mch.weixin.qq.com/pay/orderquery"; + String nonce_str = UUIDUtil.getRandomCode(16); + Map<String, Object> map = new HashMap<>(); + map.put("appid", appid); + map.put("mch_id", mchId); + map.put("out_trade_no", out_trade_no);//商户订单号 + map.put("transaction_id", transaction_id);//微信订单号 + map.put("nonce_str", nonce_str);//随机字符串 + String s = this.weixinSignature(map); + map.put("sign", s); + + //设置请求头 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_XML); + StringBuffer xmlString = new StringBuffer(); + Set<String> strings = map.keySet(); + String[] keys = {}; + keys = strings.toArray(keys); + Arrays.sort(keys); + xmlString.append("<xml>"); + for(int l = 0; l < keys.length; l++){ + xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">"); + } + xmlString.append("</xml>"); + + Map<String, String> map1 = null; + String body1 = HttpClientUtil.pushHttpRequsetXml(url, xmlString.toString(), new HashMap<>()).getData(); + //将结果xml解析成map + body1 = body1.replaceAll("<!\\[CDATA\\[",""); + body1 = body1.replaceAll("]]>", ""); + try { + map1 = this.xmlToMap(body1, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (DocumentException e) { + e.printStackTrace(); + } + String return_code = map1.get("return_code"); + if("SUCCESS".equals(return_code)){ + String result_code = map1.get("result_code"); + if("SUCCESS".equals(result_code)){ + Map<String, String> map2 = new HashMap<>(); + map2.put("trade_type", map1.get("trade_type")); + map2.put("trade_state", map1.get("trade_state"));//订单状态SUCCESS—支付成功,REFUND—转入退款,NOTPAY—未支付,CLOSED—已关闭,REVOKED—已撤销(刷卡支付),USERPAYING--用户支付中,PAYERROR--支付失败(其他原因,如银行返回失败) + map2.put("transaction_id", map1.get("transaction_id")); + return ResultUtil.success(map2); + }else{ + System.err.println(map1.get("err_code_des")); + return ResultUtil.error(map1.get("err_code_des")); + } + }else{ + System.err.println(map1.get("return_msg") + appid + "----" + mchId); + return ResultUtil.error(map1.get("return_msg")); + } + } + + + + /** + * 微信转账功能(企业付款到零钱) + * @param openid 商户appid下,某用户的openid + * @param desc 企业付款备注,必填。 + * @param total_fee 企业付款金额 + * @param partner_trade_no 商户订单号,需保持唯一性 + * @return + */ + public Map<String, String> wxTransfers(String openid, String desc, String total_fee, String partner_trade_no) throws Exception{ + int amount = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue(); + String nonce_str = UUIDUtil.getRandomCode(); + Map<String, Object> map = new HashMap<>(); + map.put("mch_appid", appid);//申请商户号的appid或商户号绑定的appid + map.put("mchid", mchId);//微信支付分配的商户号 + map.put("nonce_str", nonce_str);//随机字符串,不长于32位 + map.put("partner_trade_no", partner_trade_no);//商户订单号,需保持唯一性 + map.put("openid", openid);//商户appid下,某用户的openid + map.put("check_name", "NO_CHECK");//NO_CHECK:不校验真实姓名 FORCE_CHECK:强校验真实姓名 + map.put("amount", amount);//企业付款金额,单位为分 + map.put("desc", desc);//企业付款备注,必填。 + String s = this.weixinSignature(map, key); + map.put("sign", s); + + String url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers"; + //设置请求头 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_XML); + StringBuffer xmlString = new StringBuffer(); + Set<String> strings = map.keySet(); + String[] keys = {}; + keys = strings.toArray(keys); + Arrays.sort(keys); + xmlString.append("<xml>"); + for(int l = 0; l < keys.length; l++){ + xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">"); + } + xmlString.append("</xml>"); + + Map<String, String> map1 = null; + String body1 = HttpClientUtil.pushHttpsRequsetXml(url, xmlString.toString(), new HashMap<>(), mchId, certPath, "PKCS12"); + //将结果xml解析成map + body1 = body1.replaceAll("<!\\[CDATA\\[",""); + body1 = body1.replaceAll("]]>", ""); + try { + map1 = this.xmlToMap(body1, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (DocumentException e) { + e.printStackTrace(); + } + String return_code = map1.get("return_code"); + Map<String, String> map2 = new HashMap<>(); + if("SUCCESS".equals(return_code)){ + String result_code = map1.get("result_code"); + if("SUCCESS".equals(result_code)){ + map2.put("return_code", result_code); + map2.put("payment_no", String.valueOf(map1.get("payment_no")));//付款订单号 + map2.put("payment_time", String.valueOf(map1.get("payment_time")));//付款时间 + return map2; + }else{ + map2.put("return_code", result_code); + map2.put("err_code", map1.get("err_code")); + map2.put("err_code_des", map1.get("err_code_des")); + return map2; + } + }else{ + map2.put("return_code", return_code); + map2.put("return_msg", map1.get("return_msg")); + return map2; + } + } + + + /** + * 微信转账功能(企业付款到银行卡) + * @param desc 备注信息 + * @param total_fee 转账金额 + * @param partner_trade_no 订单号 + * @param enc_bank_no 银行卡号 + * @param enc_true_name 收款方用户名 + * @param bankName 银行名称 + * @return + * @throws Exception + */ + public Map<String, String> wxPayBank(String desc, String total_fee, String partner_trade_no, String enc_bank_no, String enc_true_name, String bankName) throws Exception{ + int amount = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue(); + String nonce_str = UUIDUtil.getRandomCode(); + Map<String, Object> map = new HashMap<>(); + map.put("mch_id", mchId);//微信支付分配的商户号 + map.put("nonce_str", nonce_str);//随机字符串,不长于32位 + map.put("partner_trade_no", partner_trade_no);//商户订单号,需保持唯一性 + map.put("enc_bank_no", enc_bank_no);//收款方银行卡号(采用标准RSA算法,公钥由微信侧提供) + map.put("enc_true_name", enc_true_name);//收款方用户名(采用标准RSA算法,公钥由微信侧提供) + map.put("bank_code", findBankCode(bankName));// + map.put("amount", amount);//企业付款金额,单位为分 + map.put("desc", desc);//企业付款备注,必填。 + String s = this.weixinSignature(map, key); + map.put("sign", s); + + String url = "https://api.mch.weixin.qq.com/mmpaysptrans/pay_bank"; + //设置请求头 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_XML); + StringBuffer xmlString = new StringBuffer(); + Set<String> strings = map.keySet(); + String[] keys = {}; + keys = strings.toArray(keys); + Arrays.sort(keys); + xmlString.append("<xml>"); + for(int l = 0; l < keys.length; l++){ + xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">"); + } + xmlString.append("</xml>"); + + Map<String, String> map1 = null; + String body1 = HttpClientUtil.pushHttpsRequsetXml(url, xmlString.toString(), new HashMap<>(), mchId, certPath, "PKCS12"); + //将结果xml解析成map + body1 = body1.replaceAll("<!\\[CDATA\\[",""); + body1 = body1.replaceAll("]]>", ""); + try { + map1 = this.xmlToMap(body1, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (DocumentException e) { + e.printStackTrace(); + } + String return_code = map1.get("return_code"); + Map<String, String> map2 = new HashMap<>(); + if("SUCCESS".equals(return_code)){ + String result_code = map1.get("result_code"); + if("SUCCESS".equals(result_code)){ + map2.put("return_code", result_code); + map2.put("payment_no", String.valueOf(map1.get("payment_no")));//付款订单号 + map2.put("cmms_amt", String.valueOf(map1.get("cmms_amt")));//手续费金额 RMB:分 + return map2; + }else{ + map2.put("return_code", result_code); + map2.put("err_code", map1.get("err_code")); + map2.put("err_code_des", map1.get("err_code_des")); + return map2; + } + }else{ + map2.put("return_code", return_code); + map2.put("return_msg", map1.get("return_msg")); + return map2; + } + } + + /** + * 微信转账到银行卡不编号 + * @param bankName + * @return + */ + public String findBankCode(String bankName){ + String json = "{\"工商银行 \":1002,\"农业银行\":1005,\"建设银行\":1003,\"中国银行\":1026,\"交通银行 \":1020,\"招商银行 \":1001,\"邮储银行\":1066,\"民生银行 \":1006,\"平安银行 \":1010,\"中信银行\":1021,\"浦发银行 \":1004,\"兴业银行 \":1009,\"光大银行 \":1022,\"广发银行\":1027,\"华夏银行\":1025,\"宁波银行\":1056,\"北京银行\":4836,\"上海银行\":1024,\"南京银行\":1054,\"长子县融汇村镇银行\":4755,\"长沙银行\":4216,\"浙江泰隆商业银行\":4051,\"中原银行 \":4753,\"企业银行(中国)\":4761,\"顺德农商银行 \":4036,\"衡水银行\":4752,\"长治银行\":4756,\"大同银行\":4767,\"河南省农村信用社\":4115,\"宁夏黄河农村商业银行\":4150,\"山西省农村信用社\":4156,\"安徽省农村信用社\":4166,\"甘肃省农村信用社\":4157,\"天津农村商业银行\":4153,\"广西壮族自治区农村信用社\":4113,\"陕西省农村信用社\":4108,\"深圳农村商业银行\":4076,\"宁波鄞州农村商业银行\":4052,\"浙江省农村信用社联合社\":4764,\"江苏省农村信用社联合社\":4217,\"江苏紫金农村商业银行股份有限公司 \":4072,\"北京中关村银行股份有限公司 \":4769,\"星展银行( 中国) 有限公司 \":4778,\"枣庄银行股份有限公司 \":4766,\"海口联合农村商业银行股份有限公司 \":4758,\"南洋商业银行( 中国) 有限公司 \":4763}"; + JSONObject jsonObject = JSON.parseObject(json); + Set<String> strings = jsonObject.keySet(); + for(String key : strings){ + if(key.indexOf(bankName) >= 0){ + return jsonObject.getString(key); + } + } + return ""; + } + + + + /** + * 支付宝转账 + * @param out_biz_no 商家侧唯一订单号,由商家自定义。对于不同转账请求,商家需保证该订单号在自身系统唯一。 + * @param trans_amount 订单总金额,单位为元,精确到小数点后两位 + * @param order_title 转账业务的标题,用于在支付宝用户的账单里显示 + * @param identity 参与方的唯一标识(收款方支付宝账号) + * @param name 参与方真实姓名,如果非空,将校验收款支付宝账号姓名一致性。 + * @param remark 业务备注 + * @return + * @throws Exception + */ + public Map<String, Object> aliTransfer(String out_biz_no, Double trans_amount, String order_title, String identity, String name, String remark) throws Exception{ + CertAlipayRequest certAlipayRequest = new CertAlipayRequest(); + certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do"); //gateway:支付宝网关(固定)https://openapi.alipay.com/gateway.do + certAlipayRequest.setAppId(aliAppid); //APPID 即创建应用后生成,详情见创建应用并获取 APPID + certAlipayRequest.setPrivateKey(appPrivateKey); //开发者应用私钥,由开发者自己生成 + certAlipayRequest.setFormat("json"); //参数返回格式,只支持 json 格式 + certAlipayRequest.setCharset("UTF-8"); //请求和签名使用的字符编码格式,支持 GBK和 UTF-8 + certAlipayRequest.setSignType("RSA2"); //商户生成签名字符串所使用的签名算法类型,目前支持 RSA2 和 RSA,推荐商家使用 RSA2。 + certAlipayRequest.setCertPath(app_cert_path); //应用公钥证书路径(app_cert_path 文件绝对路径) + certAlipayRequest.setAlipayPublicCertPath(alipay_cert_path); //支付宝公钥证书文件路径(alipay_cert_path 文件绝对路径) + certAlipayRequest.setRootCertPath(alipay_root_cert_path); //支付宝CA根证书文件路径(alipay_root_cert_path 文件绝对路径) + AlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest); + AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest(); + request.setBizContent("{" + + "\"out_biz_no\":\"" + out_biz_no + "\"," + + "\"trans_amount\":" + trans_amount + "," + + "\"product_code\":\"TRANS_ACCOUNT_NO_PWD\"," + + "\"biz_scene\":\"DIRECT_TRANSFER\"," + + "\"order_title\":\"" + order_title + "\"," + + "\"payee_info\":{" + + "\"identity\":\"" + identity + "\"," + + "\"identity_type\":\"ALIPAY_USER_ID\"," + + "\"name\":\"" + name + "\"," + + "}," + + "\"remark\":\"" + remark + "\"" + + "}"); + AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request); + Map<String, Object> map = new HashMap<>(); + if(response.isSuccess()){ + String status = response.getStatus(); + if(status.equals("SUCCESS")){//成功 + map.put("code", response.getCode()); + map.put("order_id", response.getOrderId());//支付宝订单号 + map.put("pay_fund_order_id", response.getPayFundOrderId());//支付宝流水号 + }else{ + map.put("code", response.getCode()); + map.put("sub_msg", response.getSubMsg()); + } + } else { + map.put("code", response.getSubCode()); + map.put("sub_msg", response.getSubMsg()); + } + return map; + } + + + /** + * 获取请求内容 + * @param request + * @return + * @throws IOException + */ + private String getParam(HttpServletRequest request) throws IOException { + // 读取参数 + InputStream inputStream; + StringBuilder sb = new StringBuilder(); + inputStream = request.getInputStream(); + String s; + BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); + while ((s = in.readLine()) != null) { + sb.append(s); + } + in.close(); + inputStream.close(); + return sb.toString(); + } + + + /** + * 微信下单的签名算法 + * @param map + * @return + */ + private String weixinSignature(Map<String, Object> map){ + try { + Set<Map.Entry<String, Object>> entries = map.entrySet(); + List<Map.Entry<String, Object>> infoIds = new ArrayList<Map.Entry<String, Object>>(entries); + // 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序) + Collections.sort(infoIds, new Comparator<Map.Entry<String, Object>>() { + public int compare(Map.Entry<String, Object> o1, Map.Entry<String, Object> o2) { + return (o1.getKey()).toString().compareTo(o2.getKey()); + } + }); + // 构造签名键值对的格式 + StringBuilder sb = new StringBuilder(); + for (Map.Entry<String, Object> item : infoIds) { + if (item.getKey() != null || item.getKey() != "") { + String key = item.getKey(); + Object val = item.getValue(); + if (!(val == "" || val == null)) { + sb.append(key + "=" + val + "&"); + } + } + } + sb.append("key=" + key); + String sign = MD5AndKL.MD5Encode(sb.toString(), "UTF-8").toUpperCase(); //注:MD5签名方式 + return sign; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 微信下单的签名算法 + * @param map + * @return + */ + private String weixinSignature(Map<String, Object> map, String key_){ + try { + Set<Map.Entry<String, Object>> entries = map.entrySet(); + List<Map.Entry<String, Object>> infoIds = new ArrayList<Map.Entry<String, Object>>(entries); + // 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序) + Collections.sort(infoIds, new Comparator<Map.Entry<String, Object>>() { + public int compare(Map.Entry<String, Object> o1, Map.Entry<String, Object> o2) { + return (o1.getKey()).toString().compareTo(o2.getKey()); + } + }); + // 构造签名键值对的格式 + StringBuilder sb = new StringBuilder(); + for (Map.Entry<String, Object> item : infoIds) { + if (item.getKey() != null || item.getKey() != "") { + String key = item.getKey(); + Object val = item.getValue(); + if (!(val == "" || val == null)) { + sb.append(key + "=" + val + "&"); + } + } + } + sb.append("key=" + key_); + String sign = MD5AndKL.MD5Encode(sb.toString(), "UTF-8").toUpperCase(); //注:MD5签名方式 + return sign; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 微信退款成功后的解密 + * @param req_info + * @return + */ + private String wxDecrypt(String req_info) throws NoSuchPaddingException, NoSuchAlgorithmException, NoSuchProviderException, + InvalidKeyException, BadPaddingException, IllegalBlockSizeException { + byte[] decode = Base64.getDecoder().decode(req_info); + String sign = MD5AndKL.MD5Encode(key, "UTF-8").toLowerCase(); + if (Security.getProvider("BC") == null){ + Security.addProvider(new BouncyCastleProvider()); + } + Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC"); + SecretKeySpec secretKeySpec = new SecretKeySpec(sign.getBytes(), "AES"); + cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); + return new String(cipher.doFinal(decode)); + } + + +// public static void main(String[] ages){ +// PayMoneyUtil payMoneyUtil = new PayMoneyUtil(); +// ResultUtil ce = payMoneyUtil.alipay("测试", "测试", "", "121456457", "10", "http://123.com"); +// System.err.println(ce); +// ResultUtil resultUtil = null; +// try { +// resultUtil = payMoneyUtil.queryALIOrder("121456457"); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// System.err.println(resultUtil); +// } + + + /** + * xml转map + * @param xml + * @param charset + * @return + * @throws UnsupportedEncodingException + * @throws DocumentException + */ + public static Map<String, String> xmlToMap(String xml, String charset) throws UnsupportedEncodingException, DocumentException { + + Map<String, String> respMap = new HashMap<String, String>(); + + SAXReader reader = new SAXReader(); + Document doc = reader.read(new ByteArrayInputStream(xml.getBytes(charset))); + Element root = doc.getRootElement(); + xmlToMap(root, respMap); + return respMap; + } + + public static Map<String, String> xmlToMap(Element tmpElement, Map<String, String> respMap){ + if (tmpElement.isTextOnly()) { + respMap.put(tmpElement.getName(), tmpElement.getText()); + return respMap; + } + + @SuppressWarnings("unchecked") + Iterator<Element> eItor = tmpElement.elementIterator(); + while (eItor.hasNext()) { + Element element = eItor.next(); + xmlToMap(element, respMap); + } + return respMap; + } +} diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java index c862916..db0d613 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java @@ -607,12 +607,15 @@ coupon.setIllustrate(dataVo.getIllustrate()); coupon.setDistributionMethod(dataVo.getDistributionMethod()); coupon.setRedemptionMethod(dataVo.getExchangeMethod()); - if (dataVo.getExchangeMethod() != null) { + if (dataVo.getExchangeMethod() != null&&dataVo.getDistributionMethod()!=4) { switch (dataVo.getExchangeMethod()) { case 1: coupon.setIntegral(BigDecimal.valueOf(dataVo.getRequiredPoints())); break; - + case 2: + coupon.setIntegral(BigDecimal.valueOf(dataVo.getRequiredPoints())); + coupon.setCash(dataVo.getRequiredCash()); + break; case 3: coupon.setCash(dataVo.getRequiredCash()); break; @@ -761,6 +764,7 @@ } return true; } catch (Exception e) { + e.printStackTrace(); return false; } } 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 aba58d0..de2ce98 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 @@ -287,6 +287,10 @@ @Autowired private PointsMerchandiseStoreService pointsMerchandiseStoreService; + + @Autowired + private CouponStoreService couponStoreService; + @ResponseBody @PostMapping("/base/pointMerchars/convertGoods") public List<IntegralCommodity> getConvertibleGoods(@RequestBody Location location) throws Exception { @@ -342,6 +346,25 @@ } } + List<CouponStore> storeId = couponStoreService.list(new QueryWrapper<CouponStore>().eq("storeId", s.getId())); + List<Integer> storeCoupons = new ArrayList<>(); + for (CouponStore couponStore : storeId) { + storeCoupons.add(couponStore.getCouponId()); + } + List<Coupon> list = couponService.list(new QueryWrapper<Coupon>().in("id", storeCoupons).eq("state", 1).gt("endTime", new Date()).last("ORDER BY insertTime desc")); + if (!list.isEmpty()){ + for (Coupon coupon : list) { + IntegralCommodity integralCommodity = new IntegralCommodity(); + integralCommodity.setCommodityId(coupon.getId()); + integralCommodity.setCommodityImg(coupon.getCover()); + integralCommodity.setCommodityName(coupon.getName()); + integralCommodity.setCommodityPrice(coupon.getIntegral()); + integralCommodity.setGoodsType(coupon.getType()); +// integralCommodity.setSort(coupon.getSort()); + commodity.add(integralCommodity); + } + + } System.out.println(commodity); diff --git a/cloud-server-activity/src/main/resources/mapper/CouponMapper.xml b/cloud-server-activity/src/main/resources/mapper/CouponMapper.xml index bd3c2f5..ad7517a 100644 --- a/cloud-server-activity/src/main/resources/mapper/CouponMapper.xml +++ b/cloud-server-activity/src/main/resources/mapper/CouponMapper.xml @@ -89,6 +89,7 @@ where 1 = 1 and distributionMethod = 4 and auditStatus = 2 and startTime < now() + and state= 1 <if test="cityCode != null"> and id in( SELECT DISTINCT couponId FROM @@ -97,9 +98,8 @@ WHERE storeId = #{storeId} UNION ALL SELECT DISTINCT couponId - from t_coupon_city - WHERE provinceCode = #{cityCode}) o) + WHERE cityCode = #{cityCode}) o) </if> <if test="name != null"> and `name` like concat('%', #{name}, '%') @@ -117,8 +117,6 @@ <if test="state != null"> and `state` = #{state} </if> - - union all SELECT id, `name`, @@ -136,23 +134,12 @@ from t_coupon where 1 = 1 and distributionMethod = 4 and useScope = 1 and auditStatus = 2 + and state= 1 and startTime < now() <if test="name != null"> and `name` like concat('%', #{name}, '%') </if> - <if test="type != null"> - and type = #{type} - </if> - <if test="userPopulation != null"> - and userPopulation = #{userPopulation} - </if> - <if test="status !=null"> - and `status` = #{status} - </if> - <if test="state != null"> - and `state` = #{state} - </if> </select> <select id="queryCouponExamineList" resultType="java.util.Map"> 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 b5cb1f8..74a0dd4 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 @@ -11,7 +11,9 @@ import com.dsh.competition.entity.PaymentCompetition; import com.dsh.competition.entity.UserCompetition; import com.dsh.competition.feignclient.account.AppUserClient; +import com.dsh.competition.feignclient.account.StudentClient; import com.dsh.competition.feignclient.account.model.AppUser; +import com.dsh.competition.feignclient.account.model.TStudent; import com.dsh.competition.feignclient.course.CoursePackagePaymentClient; import com.dsh.competition.feignclient.course.model.PaymentDeductionClassHour; import com.dsh.competition.feignclient.model.*; @@ -832,6 +834,40 @@ } } + @Resource + private StudentClient studentClient; + @PostMapping("/base/competition/getPeopleFromId1") + public List<CompetitionUser> getPeopleFromId1(@RequestBody GetPeopleQuery getPeopleQuery) { + try { + Page<UserCompetition> participantPage = new Page<>(getPeopleQuery.getOffset(), getPeopleQuery.getLimit()); + List<CompetitionUser> page = participantService.getPeopleFromId1(participantPage, getPeopleQuery.getId(), getPeopleQuery.getState()); + + List<CompetitionUser> users = new ArrayList<>(); + List<UserCompetition> coms = userCompetitionService.list(new QueryWrapper<UserCompetition>().eq("competitionId", getPeopleQuery.getId())); + for (UserCompetition com : coms) { + int number = com.getParticipantId(); + String numberString = Integer.toString(number); + int digitCount = numberString.length(); + if (digitCount!=9){ + TStudent tStudent = studentClient.queryById(number); + CompetitionUser competitionUser = new CompetitionUser(); + competitionUser.setName(tStudent.getName()); + competitionUser.setPhone(tStudent.getPhone()); + competitionUser.setSex(tStudent.getSex()); + competitionUser.setIdCard(tStudent.getIdCard()); + competitionUser.setState(tStudent.getState()); + users.add(competitionUser); + } + } + page.addAll(users); + + return page; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + @PostMapping("/base/competition/getPeoples") @ResponseBody public List<CompetitionUser> getPeoples(@RequestBody GetPeopleQuery getPeopleQuery) { diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/mapper/ParticipantMapper.java b/cloud-server-competition/src/main/java/com/dsh/competition/mapper/ParticipantMapper.java index 712a979..da08f13 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/mapper/ParticipantMapper.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/mapper/ParticipantMapper.java @@ -16,5 +16,8 @@ public interface ParticipantMapper extends BaseMapper<Participant> { Page<CompetitionUser> getPeopleFromId(@Param("participantPage") Page<UserCompetition> participantPage, @Param("id") Integer id, @Param("state") Integer state); + + List<CompetitionUser> getPeopleFromId1(@Param("participantPage") Page<UserCompetition> participantPage, @Param("id") Integer id, @Param("state") Integer state); + List<CompetitionUser> getPeoples(@Param("id") Integer id, @Param("state") Integer state); } diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/IParticipantService.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/IParticipantService.java index 8977796..287ed69 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/service/IParticipantService.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/IParticipantService.java @@ -69,6 +69,7 @@ void saveParticipant(SaveParticipant saveParticipant) throws Exception; Page<CompetitionUser> getPeopleFromId(Page<UserCompetition> participantPage, Integer id, Integer state); + List<CompetitionUser> getPeopleFromId1(Page<UserCompetition> participantPage, Integer id, Integer state); List<CompetitionUser> getPeoples(Integer id, Integer state); } diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java index d7ffe68..99dfffa 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java @@ -266,6 +266,10 @@ public Page<CompetitionUser> getPeopleFromId(Page<UserCompetition> participantPage, Integer id, Integer state) { return this.baseMapper.getPeopleFromId(participantPage, id, state); } + @Override + public List<CompetitionUser> getPeopleFromId1(Page<UserCompetition> participantPage, Integer id, Integer state) { + return this.baseMapper.getPeopleFromId1(participantPage, id, state); + } @Override public List<CompetitionUser> getPeoples(Integer id, Integer state) { diff --git a/cloud-server-competition/src/main/resources/mapper/ParticipantMapper.xml b/cloud-server-competition/src/main/resources/mapper/ParticipantMapper.xml index 6db98c9..fd13ff6 100644 --- a/cloud-server-competition/src/main/resources/mapper/ParticipantMapper.xml +++ b/cloud-server-competition/src/main/resources/mapper/ParticipantMapper.xml @@ -13,6 +13,19 @@ and t3.payStatus =3 </if> </select> + + <select id="getPeopleFromId1" resultType="com.dsh.competition.feignclient.model.CompetitionUser"> + select t2.name,t2.gender sex,t2.phone ,t2.idcard idCard ,t3.payStatus state + from t_user_competition t1 left join t_participant t2 on t1.participantId = t2.id + left join t_payment_competition t3 on t1.paymentCompetitionId = t3.id + where t1.competitionId =#{id} and t2.id is not null and t3.id is not null + <if test="state !=null and state !='' and state ==1"> + and t3.payStatus in (1,2) + </if> + <if test="state !=null and state !='' and state ==3"> + and t3.payStatus =3 + </if> + </select> <select id="getPeoples" resultType="com.dsh.competition.feignclient.model.CompetitionUser"> select t2.id, t2.name,t2.gender sex,t2.phone ,t2.idcard idCard ,t3.payStatus state from t_user_competition t1 left join t_participant t2 on t1.participantId = t2.id diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java index 42473f5..f8ad1c4 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java @@ -28,6 +28,7 @@ import com.dsh.course.util.*; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.obs.services.internal.ServiceException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -333,7 +334,7 @@ Store store = storeClient.queryStoreById(re.getStoreId()); TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId()); String studentId = re.getStudentId(); - String[] split = studentId.split(","); + String[] split = studentId.split(";"); StringBuilder stringBuilder = new StringBuilder(""); for (String s : split) { @@ -2367,13 +2368,13 @@ @ResponseBody @PostMapping("/coursePackagePayment/consumeCourse") - public ResultUtil consumeCourse(@RequestBody Integer coursePackagePaymentId) { + public Integer consumeCourse(@RequestBody Integer coursePackagePaymentId) { CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(coursePackagePaymentId); TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); if (coursePackageOrderStudent.getLaveClassHours()<coursePackage.getNeedNum()){ - return ResultUtil.error("当前学员课时数不足"); + return 1; } coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-coursePackage.getNeedNum()); orderStudentService.updateById(coursePackageOrderStudent); @@ -2384,14 +2385,14 @@ courseCounsum.setInsertTime(new Date()); courseCounsum.setReason("补课"); courseCounsumService.save(courseCounsum); - return ResultUtil.success("补课成功"); + return 2; } @ResponseBody @PostMapping("/coursePackagePayment/CountqueryByClassId") public Integer CountqueryByClassId(@RequestBody Integer id) { - int coursePackageId = packagePaymentService.count(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", id)); + int coursePackageId = coursePackageOrderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", id)); return coursePackageId; @@ -2640,6 +2641,11 @@ detailsListVo.setIsType(list4.get(0).getType()); for (CoursePackageStudent coursePackageStudent : list4) { + CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId()); + if (coursePackageScheduling.getStatus()==4){ + detailsListVo.setIsType(3); + } + Integer signInOrNot1 = coursePackageStudent.getSignInOrNot(); detailsListVo.setType(1); @@ -2647,7 +2653,6 @@ detailsListVo.setType(3); } detailsListVo.setIsType(coursePackageStudent.getType()); - CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId()); Date classDate = coursePackageScheduling.getClassDate(); Date endDate = coursePackageScheduling.getEndDate(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java index d0db8ce..93d5fdf 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java @@ -107,6 +107,21 @@ } + + + @ResponseBody + @PostMapping("/queryAble") + public Integer queryAble(@RequestBody Integer id) { + + int coursePackageId = orderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", id)); + if (coursePackageId>0){ + return 1; + }else { + return 0; + } + + } + //获取学员课时数信息 @RequestMapping("/getInfo") @ResponseBody @@ -126,6 +141,8 @@ studentClassInfo.setInDate(minDate); System.out.println("===========>" + studentClassInfo); +// appUserClient.queryGift(tStudentId); + return studentClassInfo; } @@ -136,7 +153,9 @@ System.out.println("==========getClassList===tStudentId====" + tStudentId); List<ClassListDto> listDtos = studentService.getClassList(tStudentId); for (ClassListDto dto : listDtos) { - dto.setHasClassHours(dto.getTotalClassHours() - dto.getLaveClassHours()); + if (dto.getClassType()!=2) { + dto.setHasClassHours(dto.getTotalClassHours() - dto.getLaveClassHours()); + } } System.out.println("======listDtos======" + listDtos); return listDtos; @@ -287,7 +306,14 @@ @RequestMapping("/insertBack") @ResponseBody - public void insertBack(@RequestBody InsertBackDto insertBackDto) { + public Integer insertBack(@RequestBody InsertBackDto insertBackDto) { + + List<MoneyBack> ids = moneyBackService.list(new QueryWrapper<MoneyBack>().eq("ids", insertBackDto.getIds())); + + if (!ids.isEmpty()){ + return 1 ; + } + MoneyBack moneyBack = new MoneyBack(); moneyBack.setStudentId(insertBackDto.getId()); @@ -303,16 +329,34 @@ for (CoursePackageOrderStudent o : pays) { o.setStatus(4); o.setAppUserId(null); + List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>().eq("studentId", o.getStudentId()).eq("coursePackageId", o.getCoursePackageId()).ge("classDate", new Date())); + List<Long> scs = new ArrayList<>(); + for (CoursePackageScheduling coursePackageScheduling : coursePackageSchedulings) { + scs.add(coursePackageScheduling.getId()); + } + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().in("coursePackageSchedulingId",scs)); + coursePackageSchedulingService.deleteBatchIds(scs); + + + } + + orderStudentService.updateBatchById(pays); + return 0; } + @Autowired + private ICoursePackageOrderService coursePackageOrderService; + + @Autowired + private ICoursePackageOrderStudentService coursePackageOrderStudentService; @RequestMapping("/queryByIds") @ResponseBody - public List<TCoursePackagePayment> queryByIds(@RequestParam("ids") String ids) { - List<TCoursePackagePayment> paymentList = paymentService.list(new QueryWrapper<TCoursePackagePayment>() + public List<CoursePackageOrderStudent> queryByIds(@RequestParam("ids") String ids) { + List<CoursePackageOrderStudent> paymentList = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() .in("id", Arrays.asList(ids.split(",")))); System.out.println("========client==>" + paymentList); @@ -328,6 +372,8 @@ } + + @RequestMapping("/noStatus") @ResponseBody public void noStatus(@RequestParam("id") Integer id) { @@ -339,6 +385,7 @@ for (CoursePackageOrderStudent o : pays) { o.setStatus(1); o.setAppUserId(null); + schedulingService.addNewCoursePackageScheduling(o.getId(),o.getLaveClassHours()); } orderStudentService.updateBatchById(pays); @@ -390,18 +437,30 @@ } + + @RequestMapping("/getOrder") + @ResponseBody + public List<CoursePackageOrder> getOrder(@RequestParam("id") Long id) { + + CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(id); + + List<CoursePackageOrder> list = coursePackageOrderService.list(new QueryWrapper<CoursePackageOrder>().eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()).like("studentIds", coursePackageOrderStudent.getStudentId())); + return list; + } + + @RequestMapping("/backStausClass") @ResponseBody public void backStausClass(@RequestParam("id") Integer id) { - MoneyBack byId = moneyBackService.getById(id); - String[] split = byId.getIds().split(","); - System.out.println("========split===>" + split); - List<TCoursePackagePayment> id1 = paymentService.list(new QueryWrapper<TCoursePackagePayment>().in("id", split)); - for (TCoursePackagePayment o : id1) { - o.setStatus(1); - o.setAppUserId(null); - } - paymentService.updateBatchById(id1); +// MoneyBack byId = moneyBackService.getById(id); +// String[] split = byId.getIds().split(","); +// System.out.println("========split===>" + split); +// List<CoursePackageOrderStudent> id1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().in("id", split)); +// for (CoursePackageOrderStudent o : id1) { +// o.setStatus(1); +// o.setAppUserId(null); +// } +// coursePackageOrderStudentService.updateBatchById(id1); } @RequestMapping("/cancel") @@ -453,7 +512,7 @@ Integer appUserId = orinPay.getAppUserId(); Integer appUserId1 = studentPay.getAppUserId(); if (appUserId.compareTo(appUserId1) != 0) { - courseCounsum.setReason("课时赠送"); + courseCounsum.setReason("赠课"); } else { courseCounsum.setReason("课时转移"); } @@ -471,7 +530,7 @@ CourseCounsum courseCounsum1 = new CourseCounsum(); courseCounsum1.setInsertTime(new Date()); if (appUserId.compareTo(appUserId1) != 0) { - courseCounsum1.setReason("课时赠送"); + courseCounsum1.setReason("赠课"); } else { courseCounsum1.setReason("课时转移"); } @@ -513,7 +572,15 @@ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays); to.setUseTime(calendar.getTime()); orderStudentService.save(to); + if(null == student.getValidity()){ + student.setValidity(calendar.getTime()); + }else if(student.getValidity().getTime() < calendar.getTime().getTime()){ + student.setValidity(calendar.getTime()); + } + studentClient.frozen(student); + + Integer laveClassHours1 = orinPay.getLaveClassHours(); Integer appUserId = orinPay.getAppUserId(); orinPay.setLaveClassHours(0); orinPay.setAppUserId(null); @@ -523,8 +590,8 @@ CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setInsertTime(new Date()); - courseCounsum.setReason("课时赠送"); - courseCounsum.setNum(orinPay.getLaveClassHours()); + courseCounsum.setReason("赠课"); + courseCounsum.setNum(laveClassHours1); courseCounsum.setChangeType(0); courseCounsum.setPaymentId(orinPay.getId()); counsumService.save(courseCounsum); @@ -532,8 +599,8 @@ CourseCounsum courseCounsum1 = new CourseCounsum(); courseCounsum1.setInsertTime(new Date()); - courseCounsum1.setReason("课时赠送"); - courseCounsum1.setNum(orinPay.getLaveClassHours()); + courseCounsum1.setReason("赠课"); + courseCounsum1.setNum(laveClassHours1); courseCounsum1.setChangeType(1); courseCounsum1.setPaymentId(to.getId()); counsumService.save(courseCounsum1); @@ -591,7 +658,9 @@ int day_week = calendar.get(Calendar.DAY_OF_WEEK); day_week = day_week - 1 == 0 ? 7 : day_week - 1; int num = 8 - day_week + 7; - Date useTime = coursePackageOrderStudent.getUseTime(); + + Student student = studentClient.queryStudentById(coursePackageOrderStudent.getStudentId()); + Date useTime = student.getValidity(); for (int i = 0; i < num; i++) { Date time = calendar.getTime(); @@ -716,133 +785,136 @@ @RequestMapping(value = "/toHoli", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8") @ResponseBody public String toHoli(@RequestBody ToHoliDto toHoliDto) throws ParseException { - - String[] ids = toHoliDto.getIds(); - List<String> strings = new ArrayList<>(); - - - for (String id : ids) { - //扣除课时 - TCoursePackagePayment payment = paymentService.getById(id); - System.out.println("=====byId=========" + payment); - - - Integer laveClassHours = payment.getLaveClassHours(); - - Integer classNum = toHoliDto.getClassNum(); - Integer totalClassHours = payment.getTotalClassHours(); - Student student = studentClient.queryStudentById(payment.getStudentId()); - - if (laveClassHours < classNum) { - strings.add(student.getName()); - continue; + String[] stuIds = toHoliDto.getIds(); + //查询出学员ids对应的棵树,判断剩余课时数是否够 + List<CoursePackageOrderStudent> list = orderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", toHoliDto.getClassId()).in("studentId", stuIds)); + List<String> notStudent = new ArrayList<>(); + for (CoursePackageOrderStudent coursePackageOrderStudent : list) { + if (coursePackageOrderStudent.getLaveClassHours() < toHoliDto.getClassNum()) { + notStudent.add(studentClient.queryStudentById(coursePackageOrderStudent.getStudentId()).getName()); } + } + if (!notStudent.isEmpty()) { + String notStudentStr = String.join(",", notStudent); + return notStudentStr+":课时数不足"; + } - Integer laveClassHoursnew = laveClassHours - classNum; - Integer totalClassHoursnew = totalClassHours - classNum; - payment.setLaveClassHours(laveClassHoursnew); - payment.setTotalClassHours(totalClassHoursnew); - payment.setAppUserId(null); -// payment.setStatus(3); + for (String stuId : stuIds) { + Student student = studentClient.queryStudentById(Integer.valueOf(stuId)); - paymentService.updateById(payment); + // 扣除 原来的课时数 + // 添加购买课时 paytyoe为7 + // 排课可期 判断课程时间段 添加排课表 添加上课记录表 + // 找到原来的课包 扣课时 +// CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(toHoliDto.getId()); + CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId",toHoliDto.getId()).eq("studentId",stuId)); - //获取student信息 + TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); + TCoursePackage coursePackage1 = coursePackageService.getById(toHoliDto.getClassId()); + //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录 + List<CoursePackageScheduling> list1 = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>() + .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1) + .eq("type", 1).orderByDesc("classDate")); + //已经排课但没有使用的课时数量 + int number = list1.size() * coursePackage.getNeedNum(); + Integer laveClassHours1 = coursePackageOrderStudent.getLaveClassHours(); + laveClassHours1 -= number; + //需要购买使用的课时数 + Integer num = toHoliDto.getClassNum(); + //需要删除多余的排课记录 + if(num.compareTo(laveClassHours1) > 0){ + //课时数差额 + int number1 = num - laveClassHours1; + double o = number1 % coursePackage.getNeedNum(); + int l = 0; + if(0 != o){ + l = 1; + } + int n = Double.valueOf(number1 / coursePackage.getNeedNum()).intValue() + l; + for (int i = 0; i < n; i++) { + CoursePackageScheduling coursePackageScheduling = list1.get(i); + coursePackageSchedulingService.deleteById(coursePackageScheduling.getId()); - //新增课时 + coursePackageStudentService.getBaseMapper().delete(new QueryWrapper<CoursePackageStudent>() + .eq("coursePackageSchedulingId", coursePackageScheduling.getId())); + } + } + coursePackageOrderStudent.setAppUserId(null); + coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-toHoliDto.getClassNum()); + orderStudentService.updateById(coursePackageOrderStudent); - TCoursePackagePayment holi = new TCoursePackagePayment(); - holi.setAppUserId(student.getAppUserId()); - holi.setStudentId(student.getId()); - holi.setCoursePackageId(toHoliDto.getClassId()); - holi.setTotalClassHours(toHoliDto.getClassNum()); - holi.setLaveClassHours(toHoliDto.getClassNum()); - holi.setState(1); - holi.setInsertTime(new Date()); - holi.setPayStatus(2); - paymentService.save(holi); - - - CourseCounsum courseCounsum = new CourseCounsum(); - courseCounsum.setPaymentId(holi.getId()); - courseCounsum.setChangeType(0); - courseCounsum.setNum(classNum); - courseCounsum.setInsertTime(new Date()); - courseCounsum.setReason("报名假期班"); - courseCounsumService.save(courseCounsum); - - //排假期课 - - TCoursePackage tCoursePackage = packageService.getById(toHoliDto.getClassId()); - String classWeeks = tCoursePackage.getClassWeeks(); + //上课星期 + String classWeeks = coursePackage1.getClassWeeks(); List<Integer> week = week(classWeeks); - - Date today = new Date(); - - Date startTime = tCoursePackage.getStartTime(); - Date endTime = tCoursePackage.getEndTime(); - LocalDate startDate = startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - LocalDate endDate = endTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - Period period = Period.between(startDate, endDate); - int days = period.getDays() + 1; - Integer can = 999; - int count = 0; - String[] split = tCoursePackage.getClassStartTime().split(","); - String[] split1 = tCoursePackage.getClassEndTime().split(","); + //上课时段 + String[] split = coursePackage1.getClassStartTime().split(","); + String[] split1 = coursePackage1.getClassEndTime().split(","); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + Date startTime = coursePackage1.getStartTime(); + Date endTime = coursePackage1.getEndTime(); + //排课 本周+下周,课时不够扣则直接剩余不排课 Calendar calendar = Calendar.getInstance(); - calendar.setTime(startTime); - calendar.add(Calendar.DAY_OF_MONTH, -1); + //假期开始使用当前时间为起始时间进行排课 + calendar.setTime(startTime.getTime() > System.currentTimeMillis() ? startTime : new Date()); + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + while (true) { + Date time = calendar.getTime(); - Date[] dates = generateDateArray(days, calendar.getTime()); - for (Date date : dates) { - if (count == can) { + //判断当天是否在排课星期内 + int day = calendar.get(Calendar.DAY_OF_WEEK); + day = day - 1 == 0 ? 7 : day - 1; + if (!week.contains(day)) { + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + continue; + } + + //大于有效期不进行排课 + if (calendar.getTimeInMillis() > endTime.getTime()) { break; } - int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date) - 1; - if (wei == 0) { - wei = 7; + for (int j = 0; j < split.length; j++) { + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setType(coursePackage1.getType()); + coursePackageScheduling.setAppUserId(student.getAppUserId()); + coursePackageScheduling.setStudentId(Integer.valueOf(stuId)); + coursePackageScheduling.setCoursePackageId(coursePackage1.getId()); + Date parse = format1.parse(format.format(time) + " " + split[j]); + Date parse1 = format1.parse(format.format(time) + " " + split1[j]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.insert(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(student.getAppUserId()); + student1.setStudentId(Integer.valueOf(stuId)); + student1.setCoursePackageId(coursePackage1.getId()); + student1.setCoursePackagePaymentId(null); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); } - if (week.contains(wei)) { - for (int i1 = 0; i1 < split.length; i1++) { - if (count == can) { - break; - } - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(date) + " " + split[i1]); - Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(toHoliDto.getClassId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); - count++; - } - } + //增加日期,用于判断 + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); } - System.out.println("保存成功=============》=" + holi); + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackageOrderStudent.getId()); + courseCounsum.setChangeType(0); + courseCounsum.setNum(toHoliDto.getClassNum()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("报名假期班"); +// courseCounsum.setAppUserId(userId); + courseCounsumService.save(courseCounsum); } - String[] stringArray = strings.toArray(new String[strings.size()]); - String join = StringUtils.join(stringArray, ","); - System.out.println("==========join========" + join); - return join; + return "报名成功"; } @@ -903,150 +975,149 @@ @RequestMapping(value = "/toTrans", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8") @ResponseBody public String toTrans(@RequestBody ToHoliDto toHoliDto) throws ParseException { - - String[] ids = toHoliDto.getIds(); - List<String> strings = new ArrayList<>(); - - - for (String id : ids) { - //扣除课时 - TCoursePackagePayment payment = paymentService.getById(id); - System.out.println("=====byId=========" + payment); - - - Integer laveClassHours = payment.getLaveClassHours(); - - Integer classNum = toHoliDto.getClassNum(); - Integer totalClassHours = payment.getTotalClassHours(); - Student student = studentClient.queryStudentById(payment.getStudentId()); - -// if (laveClassHours < classNum){ -// strings.add(student.getName()); continue; + String[] stuIds = toHoliDto.getIds(); +// //查询出学员ids对应的棵树,判断剩余课时数是否够 +// List<CoursePackageOrderStudent> list = orderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", toHoliDto.getClassId()).in("studentId", stuIds)); +// List<String> notStudent = new ArrayList<>(); +// for (CoursePackageOrderStudent coursePackageOrderStudent : list) { +// if (coursePackageOrderStudent.getLaveClassHours() < toHoliDto.getClassNum()) { +// notStudent.add(studentClient.queryStudentById(coursePackageOrderStudent.getStudentId()).getName()); // } -// -// Integer laveClassHoursnew = laveClassHours - classNum; -// Integer totalClassHoursnew = totalClassHours - classNum; - payment.setLaveClassHours(0); - payment.setTotalClassHours(0); - payment.setAppUserId(null); +// } +// if (!notStudent.isEmpty()) { +// String notStudentStr = String.join(",", notStudent); +// return notStudentStr+":课时数不足"; +// } - paymentService.updateById(payment); - //获取student信息 + //转移课程 + for (String stuId : stuIds) { +// CoursePackageOrderStudent orinPay = orderStudentService.getById(toHoliDto.getId()); + CoursePackageOrderStudent orinPay = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>() + .eq("studentId", stuId) + .eq("coursePackageId", toHoliDto.getId())); + CoursePackageOrderStudent studentPay = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>() + .eq("studentId", stuId) + .eq("coursePackageId", toHoliDto.getClassId())); + TCoursePackage coursePackage = packageService.getById(toHoliDto.getClassId()); + if (studentPay != null) { + //转移 + Integer laveClassHours = orinPay.getLaveClassHours(); + Integer totalClassHours = orinPay.getTotalClassHours(); - //新增课时 + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setInsertTime(new Date()); + Integer appUserId = orinPay.getAppUserId(); + Integer appUserId1 = studentPay.getAppUserId(); - TCoursePackagePayment one = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId())); + courseCounsum.setReason("换课"); - TCoursePackagePayment holi = new TCoursePackagePayment(); - if (one == null) { - holi.setAppUserId(student.getAppUserId()); - holi.setStudentId(student.getId()); - holi.setCoursePackageId(toHoliDto.getClassId()); - holi.setTotalClassHours(laveClassHours); - holi.setLaveClassHours(laveClassHours); - holi.setState(1); - holi.setInsertTime(new Date()); - holi.setPayStatus(2); - holi.setStatus(1); - paymentService.save(holi); + orinPay.setLaveClassHours(0); + orinPay.setStatus(3); + orinPay.setAppUserId(null); + orderStudentService.updateById(orinPay); + + courseCounsum.setNum(laveClassHours); + courseCounsum.setChangeType(0); + courseCounsum.setPaymentId(orinPay.getId()); + counsumService.save(courseCounsum); + + CourseCounsum courseCounsum1 = new CourseCounsum(); + courseCounsum1.setInsertTime(new Date()); +// if (appUserId.compareTo(appUserId1) != 0) { +// courseCounsum1.setReason("赠课"); +// } else { + courseCounsum1.setReason("换课"); +// } + courseCounsum1.setNum(laveClassHours); + courseCounsum1.setChangeType(1); + courseCounsum1.setPaymentId(studentPay.getId()); + counsumService.save(courseCounsum1); + + schedulingService.addNewCoursePackageScheduling(studentPay.getId(), laveClassHours); + //删除原排课数据 + List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>() + .eq("type", 1).eq("appUserId", appUserId) + .eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()) + .orderByAsc("classDate")); + int num = totalClassHours - laveClassHours; + for (int i = num; i < coursePackageSchedulings.size(); i++) { + CoursePackageScheduling packageScheduling = coursePackageSchedulings.get(i); + coursePackageSchedulingService.deleteById(packageScheduling.getId()); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", packageScheduling.getId())); + } } else { - one.setTotalClassHours(one.getTotalClassHours() + laveClassHours); - one.setLaveClassHours(one.getLaveClassHours() + laveClassHours); - one.setAppUserId(null); - paymentService.updateById(one); - holi = one; - } - System.out.println("保存成功=============》=" + holi); + Integer totalClassHours = orinPay.getTotalClassHours(); + Integer laveClassHours = orinPay.getLaveClassHours(); + Student student = studentClient.queryStudentById(Integer.valueOf(stuId)); + CoursePackageOrderStudent to = new CoursePackageOrderStudent(); + to.setStudentId(Integer.valueOf(stuId)); + to.setTotalClassHours(laveClassHours); + to.setLaveClassHours(laveClassHours); + to.setCoursePackageId(toHoliDto.getClassId()); + to.setState(1); + to.setAppUserId(student.getAppUserId()); + to.setStatus(1); + to.setInsertTime(new Date()); - CourseCounsum courseCounsum = new CourseCounsum(); - courseCounsum.setPaymentId(holi.getId()); - courseCounsum.setChangeType(1); - courseCounsum.setNum(laveClassHours); - courseCounsum.setInsertTime(new Date()); - courseCounsum.setReason("换课"); - courseCounsumService.save(courseCounsum); - - - TCoursePackage tCoursePackage = packageService.getById(toHoliDto.getClassId()); - String classWeeks = tCoursePackage.getClassWeeks(); - List<Integer> week = week(classWeeks); - - String[] split = tCoursePackage.getClassStartTime().split(","); - String[] split1 = tCoursePackage.getClassEndTime().split(","); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - // 本周周几 - - List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId())); - List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); - //拿到最后一天的排课记录 - if (collect.size() > 0) { - coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); - coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId())); - } - - - Date today = new Date(); - - - TCoursePackagePayment pay = coursePackagePaymentService.getById(holi.getId()); - Integer laveClassHours1 = pay.getLaveClassHours(); - Integer codeTime = tCoursePackage.getCodeTime(); - Integer can = 0; - - - int count = 0; - - // 本周周几 -// int i = DateUtil.dayOfWeek(new Date())-1; - - Date[] dates = generateDateArray(14, today); - can = laveClassHours1 / codeTime; - - for (Date date : dates) { - if (count == can) { - break; + Integer validDays = coursePackage.getValidDays(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays); + to.setUseTime(calendar.getTime()); + orderStudentService.save(to); + if (null == student.getValidity()) { + student.setValidity(calendar.getTime()); + } else if (student.getValidity().getTime() < calendar.getTime().getTime()) { + student.setValidity(calendar.getTime()); } - int wei = DateUtil.dayOfWeek(date); - if (week.contains(wei)) { - for (int i1 = 0; i1 < split.length; i1++) { - if (count == can) { - break; - } - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(date) + " " + split[i1]); - Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - cpsMapper.insert(student1); - count++; - } + studentClient.frozen(student); + + + Integer laveClassHours1 = orinPay.getLaveClassHours(); + Integer appUserId = orinPay.getAppUserId(); + orinPay.setLaveClassHours(0); + orinPay.setAppUserId(null); + orinPay.setStatus(3); + orderStudentService.updateById(orinPay); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("换课"); + courseCounsum.setNum(laveClassHours1); + courseCounsum.setChangeType(0); + courseCounsum.setPaymentId(orinPay.getId()); + counsumService.save(courseCounsum); + + + CourseCounsum courseCounsum1 = new CourseCounsum(); + courseCounsum1.setInsertTime(new Date()); + courseCounsum1.setReason("换课"); + courseCounsum1.setNum(laveClassHours1); + courseCounsum1.setChangeType(1); + courseCounsum1.setPaymentId(to.getId()); + counsumService.save(courseCounsum1); + + //开始排课 + addPackageStudent(coursePackage, to.getAppUserId(), to.getStudentId(), to); + //删除原排课数据 + List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>() + .eq("type", 1).eq("appUserId", appUserId) + .eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()) + .orderByAsc("classDate")); + int num = totalClassHours - laveClassHours; + for (int i = num; i < coursePackageSchedulings.size(); i++) { + CoursePackageScheduling packageScheduling = coursePackageSchedulings.get(i); + coursePackageSchedulingService.deleteById(packageScheduling.getId()); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", packageScheduling.getId())); } } - } - String[] stringArray = strings.toArray(new String[strings.size()]); + return "换课成功"; - String join = StringUtils.join(stringArray, ","); - System.out.println("==========join========" + join); - return "转课成功"; } - - } diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java index 31eedce..93dbc1f 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java @@ -55,8 +55,6 @@ */ @PostMapping("/student/queryTStudentListByName") List<TStudent> queryTStudentListByName(@RequestBody String name); - - /** * 修改数据 * @param student diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Student.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Student.java index 48b858c..d66b31b 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Student.java +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Student.java @@ -71,7 +71,7 @@ */ private Integer isDefault; /** - * 所有课时有效期 + * 课时有效期 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date validity; diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java index c7b7e9b..fc5d66d 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java +++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java @@ -43,4 +43,5 @@ void updateSignInOrNotById(@Param("id") Long id); + List<ClassListDto> getHoliList(@Param("tStudentId")Integer tStudentId); } diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java index 1428de3..7b7d109 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java +++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java @@ -83,4 +83,6 @@ List<TCoursePackagePayment> listOne(@Param("ids") List<Integer> ids); Integer queryStore(String code); + + List<Map<String, Object>> queryRegistrationRecord3(Integer coursePackageId, List<Integer> userIds, List<Integer> studentIds); } diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java index 3b2c382..6acdef8 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java @@ -134,42 +134,67 @@ String weekOfDate = DateTimeHelper.getWeekOfDate(new Date()); // if (integerList.contains(weekOfDate)) { String dat = simpleDateFormat.format(byId.getClassDate()) + " " + dateString1.substring(11); + String ed = simpleDateFormat.format(byId.getEndDate()) + " " + dateString2.substring(11); Date start = null; + Date end = null; try { start = format.parse(dat); + end = format.parse(ed); } catch (ParseException e) { throw new RuntimeException(e); } + + CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() + .eq("coursePackageSchedulingId", byId.getId()).last("limit 1")); +// else { +// Date now = new Date(); +// if (now.after(byId.getClassDate()) && now.before(byId.getEndDate())) { +// recordVo.setStatus(2); +// } else { +// recordVo.setStatus(3); +// +// } +// } + //已取消 if (byId.getStatus() == 4) { recordVo.setStatus(4); } else if (coursePackageStudent.getSignInOrNot() == 2) { //已请假 recordVo.setStatus(5); - } else if (start.after(new Date())) { + }else if (ToolUtil.isNotEmpty(cancelledClasses)) { + recordVo.setStatus(3); + // 消课 到课状态0 旷课 + if (coursePackageStudent.getSignInOrNot() == 0) { + recordVo.setStatus(6); + } + + }else if (new Date().after(start)&&new Date().before(end)){ + recordVo.setStatus(2); + }else if (start.after(new Date())) { //待上课 recordVo.setStatus(1); } else { - CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() - .eq("coursePackageSchedulingId", byId.getId()).last("limit 1")); - if (ToolUtil.isNotEmpty(cancelledClasses)) { - recordVo.setStatus(3); - // 消课 到课状态0 旷课 - if (coursePackageStudent.getSignInOrNot() == 0) { - recordVo.setStatus(6); - } - - } else { - Date now = new Date(); - if (now.after(byId.getClassDate()) && now.before(byId.getEndDate())) { - recordVo.setStatus(2); - } else { - recordVo.setStatus(3); - - } - } +// CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() +// .eq("coursePackageSchedulingId", byId.getId()).last("limit 1")); +// if (ToolUtil.isNotEmpty(cancelledClasses)) { +// recordVo.setStatus(3); +// // 消课 到课状态0 旷课 +// if (coursePackageStudent.getSignInOrNot() == 0) { +// recordVo.setStatus(6); +// } +// +// } else { +// Date now = new Date(); +// if (now.after(byId.getClassDate()) && now.before(byId.getEndDate())) { +// recordVo.setStatus(2); +// } else { +// recordVo.setStatus(3); +// +// } +// } } // } else { // recordVo.setStatus(1); diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java index b8e875a..f94add7 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java @@ -320,7 +320,7 @@ TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); Integer codeTime = coursePackage.getCodeTime(); Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); - Student student = studentClient.queryStudentById(coursePackageScheduling.getStudentId()); + Student student = studentClient.queryStudentById(coursePackageOrderStudent.getStudentId()); Date validity = student.getValidity(); Calendar calendar = Calendar.getInstance(); @@ -344,7 +344,7 @@ //从第二天开始 Calendar startTime = Calendar.getInstance(); startTime.setTime(new Date()); - startTime.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + startTime.set(Calendar.DAY_OF_YEAR, startTime.get(Calendar.DAY_OF_YEAR) + 1); startTime.set(Calendar.HOUR_OF_DAY, 0); startTime.set(Calendar.MINUTE, 0); startTime.set(Calendar.SECOND, 0); @@ -414,12 +414,26 @@ } }else{ - Date classDate = coursePackageScheduling.getClassDate(); - if(codeTime.compareTo(laveClassHours) > 0 && calendar.getTimeInMillis() > classDate.getTime()){ + Date classDate = new Date(); + + if (coursePackageScheduling!=null){ + classDate = coursePackageScheduling.getClassDate(); + } + + int count = this.count(new QueryWrapper<CoursePackageScheduling>() + .eq("appUserId", coursePackageOrderStudent.getAppUserId()) + .eq("studentId", coursePackageOrderStudent.getStudentId()) + .eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()) + .eq("status", 1) + ); + + Integer number = laveClassHours - count; + if((number.compareTo(codeTime) > 0 && calendar.getTimeInMillis() > classDate.getTime())||coursePackageScheduling==null){ //从第二天开始 Calendar startTime = Calendar.getInstance(); - startTime.setTime(new Date()); - startTime.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); +// startTime.setTime(coursePackageScheduling.getClassDate()); + startTime.setTime(classDate); + startTime.set(Calendar.DAY_OF_YEAR, startTime.get(Calendar.DAY_OF_YEAR) + 1); startTime.set(Calendar.HOUR_OF_DAY, 0); startTime.set(Calendar.MINUTE, 0); startTime.set(Calendar.SECOND, 0); @@ -431,13 +445,13 @@ String classWeeks = coursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); //新剩余课时 - laveClassHours += classNumber; + number += classNumber; //判断最后一天是否所有时段都已排完 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); - String format = sdf.format(coursePackageScheduling.getClassDate()); - String time = format.substring(format.indexOf(" ")); + String format = sdf.format(classDate); + String time = format.substring(0,format.indexOf(" ") + 1); String classStartTime = coursePackage.getClassStartTime(); String classEndTime = coursePackage.getClassEndTime(); String[] split = classStartTime.split(","); @@ -448,10 +462,10 @@ n++; for (int i = n; i < split.length; i++) { //剩余数量不足以排课 - if (laveClassHours.compareTo(codeTime) < 0) { + if (number.compareTo(codeTime) < 0) { break; } - laveClassHours -= codeTime; + number -= codeTime; CoursePackageScheduling packageScheduling = new CoursePackageScheduling(); packageScheduling.setType(coursePackage.getType()); packageScheduling.setAppUserId(coursePackageOrderStudent.getAppUserId()); @@ -493,11 +507,11 @@ } for (int j = 0; j < split.length; j++) { //剩余数量不足以排课 - if (laveClassHours.compareTo(codeTime) < 0) { + if (number.compareTo(codeTime) < 0) { break; } - laveClassHours -= codeTime; + number -= codeTime; CoursePackageScheduling packageScheduling = new CoursePackageScheduling(); packageScheduling.setType(coursePackage.getType()); @@ -533,6 +547,12 @@ coursePackageOrderStudent.setUseTime(useTime); coursePackageOrderStudent.setStatus(1); coursePackageOrderStudentService.updateById(coursePackageOrderStudent); + if(null == student.getValidity()){ + student.setValidity(useTime); + }else if(student.getValidity().getTime() < useTime.getTime()){ + student.setValidity(useTime); + } + studentClient.frozen(student); }catch (Exception e){ e.printStackTrace(); } diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java index dfe4735..3016932 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java @@ -107,7 +107,11 @@ @Override public List<ClassListDto> getClassList(Integer tStudentId) { - return this.baseMapper.getClassList(tStudentId); + List<ClassListDto> classList = this.baseMapper.getClassList(tStudentId); + List<ClassListDto> holiList = this.baseMapper.getHoliList(tStudentId); + classList.addAll(holiList); + + return classList; } @Override diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java index 2766726..5b5a589 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java @@ -540,6 +540,7 @@ } Store store = storeClient.queryStoreById(coursePackage.getStoreId()); response.setStoreName(store.getName()); + response.setStoreAddress(store.getAddress()); if (ToolUtil.isNotEmpty(lon) && ToolUtil.isNotEmpty(lat)) { Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, store.getLon() + "," + store.getLat()); @@ -1240,10 +1241,14 @@ List<Map<String, Object>> list = new ArrayList<>(); if (coursePackage.getType()==1){ - list = this.baseMapper.queryRegistrationRecord(page, coursePackageId, userIds, studentIds);}else { + list = this.baseMapper.queryRegistrationRecord(page, coursePackageId, userIds, studentIds); + }else { list = this.baseMapper.queryRegistrationRecord1(page, coursePackageId, userIds, studentIds); } + + list.addAll(this.baseMapper.queryRegistrationRecord3(coursePackageId,userIds,studentIds)); for (Map<String, Object> map : list) { + Long id = Long.valueOf(map.get("id").toString()); Integer appUserId = Integer.valueOf(map.get("appUserId").toString()); @@ -1251,7 +1256,7 @@ if (coursePackage.getType()==1) { studentId = Integer.valueOf(map.get("studentId").toString()); }else { - studentId = Integer.valueOf(map.get("studentIds").toString()); + studentId = Integer.valueOf(map.get("studentIds").toString().split(",")[0]); } TAppUser appUser = appuClient.queryAppUser1(appUserId); @@ -1261,6 +1266,11 @@ map.put("studentName", null != student ? student.getName() : ""); Integer integer = cpsMapper.selectCount(new QueryWrapper<CoursePackageStudent>().eq("appUserId", appUserId) .eq("studentId", studentId).eq("coursePackagePaymentId", id).eq("signInOrNot", 2)); + + int count = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageId", coursePackageId).eq("studentId", studentId).eq("signInOrNot",2)); + + map.put("absencesNumber", count); + map.put("already", integer); } return list; diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java index 870960c..a6fc83c 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java @@ -1783,6 +1783,8 @@ } + @Autowired + private ICoursePackageOrderStudentService orderStudentService; /** * 修改数据 * @@ -1799,65 +1801,67 @@ coursePackageSchedulingQueryWrapper.notIn("id", collect); } coursePackageSchedulingService.remove(coursePackageSchedulingQueryWrapper); + int coursePackageId = orderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", coursePackage.getId())); + if (coursePackageId>0) { + this.baseMapper.updateById(coursePackage); - this.baseMapper.updateById(coursePackage); - - //生成排课数据 - Date date = null; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", coursePackage.getId()).last(" and classDate > now() order by classDate desc limit 0, 1")); - if (null != coursePackageScheduling) { - date = sdf1.parse(sdf.format(coursePackageScheduling.getClassDate()) + " 00:00:00"); - } else { - date = sdf1.parse(sdf.format(new Date()) + " 00:00:00"); - } - List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";")); - String classStartTime = coursePackage.getClassStartTime(); - String[] split = classStartTime.split(":"); - String classEndTime = coursePackage.getClassEndTime(); - String[] split1 = classEndTime.split(":"); - Calendar s = Calendar.getInstance(); - s.setTime(date); - s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); - - Calendar e = Calendar.getInstance(); - e.setTime(date); - if (null != coursePackageScheduling) { - long time = sdf1.parse(sdf.format(new Date()) + " 00:00:00").getTime(); - int d = Long.valueOf(14L - ((s.getTimeInMillis() - time) / 86400000L)).intValue(); - e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + d); - } else { - e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14); - } - long timeInMillis = e.getTimeInMillis(); - - while (true) { - int w = s.get(Calendar.DAY_OF_WEEK); - WeekEnum weekEnum = WeekEnum.getWeekEnum(w); - if (list.contains(weekEnum.getChineseName())) { - Calendar classDate = Calendar.getInstance(); - classDate.setTime(s.getTime()); - classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0])); - classDate.set(Calendar.MINUTE, Integer.valueOf(split[1])); - classDate.set(Calendar.SECOND, 0); - - Calendar endDate = Calendar.getInstance(); - endDate.setTime(s.getTime()); - endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0])); - endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1])); - endDate.set(Calendar.SECOND, 0); - - CoursePackageScheduling coursePackageScheduling1 = new CoursePackageScheduling(); - coursePackageScheduling1.setCoursePackageId(coursePackage.getId()); - coursePackageScheduling1.setClassDate(classDate.getTime()); - coursePackageScheduling1.setEndDate(endDate.getTime()); - coursePackageScheduling1.setStatus(1); - coursePackageSchedulingService.save(coursePackageScheduling1); + //生成排课数据 + Date date = null; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", coursePackage.getId()).last(" and classDate > now() order by classDate desc limit 0, 1")); + if (null != coursePackageScheduling) { + date = sdf1.parse(sdf.format(coursePackageScheduling.getClassDate()) + " 00:00:00"); + } else { + date = sdf1.parse(sdf.format(new Date()) + " 00:00:00"); } + List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";")); + String classStartTime = coursePackage.getClassStartTime(); + String[] split = classStartTime.split(":"); + String classEndTime = coursePackage.getClassEndTime(); + String[] split1 = classEndTime.split(":"); + Calendar s = Calendar.getInstance(); + s.setTime(date); s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); - if (s.getTimeInMillis() > timeInMillis) { - break; + + Calendar e = Calendar.getInstance(); + e.setTime(date); + if (null != coursePackageScheduling) { + long time = sdf1.parse(sdf.format(new Date()) + " 00:00:00").getTime(); + int d = Long.valueOf(14L - ((s.getTimeInMillis() - time) / 86400000L)).intValue(); + e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + d); + } else { + e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14); + } + long timeInMillis = e.getTimeInMillis(); + + while (true) { + int w = s.get(Calendar.DAY_OF_WEEK); + WeekEnum weekEnum = WeekEnum.getWeekEnum(w); + if (list.contains(weekEnum.getChineseName())) { + Calendar classDate = Calendar.getInstance(); + classDate.setTime(s.getTime()); + classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0])); + classDate.set(Calendar.MINUTE, Integer.valueOf(split[1])); + classDate.set(Calendar.SECOND, 0); + + Calendar endDate = Calendar.getInstance(); + endDate.setTime(s.getTime()); + endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0])); + endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1])); + endDate.set(Calendar.SECOND, 0); + + CoursePackageScheduling coursePackageScheduling1 = new CoursePackageScheduling(); + coursePackageScheduling1.setCoursePackageId(coursePackage.getId()); + coursePackageScheduling1.setClassDate(classDate.getTime()); + coursePackageScheduling1.setEndDate(endDate.getTime()); + coursePackageScheduling1.setStatus(1); + coursePackageSchedulingService.save(coursePackageScheduling1); + } + s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); + if (s.getTimeInMillis() > timeInMillis) { + break; + } } } } catch (Exception e) { diff --git a/cloud-server-course/src/main/java/com/dsh/course/util/httpClinet/ResultUtil.java b/cloud-server-course/src/main/java/com/dsh/course/util/httpClinet/ResultUtil.java new file mode 100644 index 0000000..34b9319 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/util/httpClinet/ResultUtil.java @@ -0,0 +1,195 @@ +package com.dsh.course.util.httpClinet; + +/** + * 定义统一返回对象 + */ +public class ResultUtil<T> { + + public static final Integer SUCCESS = 200; + + public static final Integer PARAM_ERROR = 300; + + public static final Integer RUNTIME_ERROR = 400; + + public static final Integer ERROR = 500; + + public static final String Token = "Token失效"; + + private Integer status;//状态码 + + private Integer code;//备用状态码 + + private String msg;//返回说明 + + private T data;//返回数据 + + private String str;//存储单个字符串值 + + + public Integer getStatus() { + return status; + } + + public String getMsg() { + return msg; + } + + public T getData() { + return data; + } + + public String getStr() { + return str; + } + + public Integer getCode() { + return code; + } + + public ResultUtil(Integer status, Integer code, String msg) { + this.status = status; + this.code = code; + this.msg = msg; + } + + private ResultUtil(Integer status, Integer code, String msg, T data) { + this.status = status; + this.code = code; + this.msg = msg; + this.data = data; + } + + public ResultUtil(Integer status, Integer code, String msg, T data, String str) { + this.status = status; + this.code = code; + this.msg = msg; + this.data = data; + this.str = str; + } + + private ResultUtil(Integer status, Integer code, String msg, String str) { + this.status = status; + this.code = code; + this.msg = msg; + this.str = str; + } + + + public static <T> ResultUtil<T> getResult(Integer status, Integer code, String msg){ + return new ResultUtil<>(status, code, msg); + } + + public static <T> ResultUtil<T> getResult(Integer status, Integer code, String msg, T data){ + return new ResultUtil<>(status, code, msg, data); + } + + public static <T> ResultUtil<T> getResult(Integer status, Integer code, String msg, T data, String str){ + return new ResultUtil<>(status, code, msg, data, str); + } + + /** + * 错误信息 + * @return + */ + public static ResultUtil error(String mag){ + return ResultUtil.getResult(ResultUtil.ERROR, ResultUtil.ERROR, mag); + } + + /** + * 错误信息 + * @return + */ + public static <T> ResultUtil <T> error(String mag, T obj){ + return ResultUtil.getResult(ResultUtil.ERROR, ResultUtil.ERROR, mag, obj); + } + + /** + * token失效 + * @return + */ + public static ResultUtil tokenErr(){ + return ResultUtil.getResult(ResultUtil.ERROR, ResultUtil.ERROR, ResultUtil.Token); + } + + /** + * token失效 + * @return + */ + public static ResultUtil tokenErr(String msg){ + return ResultUtil.getResult(ResultUtil.ERROR, ResultUtil.ERROR, msg); + } + + /** + * 参数异常 + * @return + */ + public static ResultUtil paranErr(){ + return ResultUtil.getResult(ResultUtil.PARAM_ERROR, ResultUtil.PARAM_ERROR, "参数异常"); + } + + /** + * 参数异常 + * @return + */ + public static <T> ResultUtil<T> paranErr(T data){ + return ResultUtil.getResult(ResultUtil.PARAM_ERROR, ResultUtil.PARAM_ERROR, "参数异常", data); + } + + /** + * 运行异常 + * @return + */ + public static ResultUtil runErr(){ + return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, ResultUtil.RUNTIME_ERROR, "服务器运行异常"); + } + + + /** + * 运行异常 + * @return + */ + public static <T>ResultUtil<T> runErr(T data){ + return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, ResultUtil.RUNTIME_ERROR, "服务器运行异常", data); + } + + + /** + * 返回成功 + * @param + * @return + */ + public static ResultUtil success(){ + return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, "成功"); + } + + + /** + * 返回成功 + * @param data + * @param <T> + * @return + */ + public static <T> ResultUtil<T> success(T data){ + return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, "成功", data); + } + + /** + * 返回成功 + * @param data + * @param str + * @param <T> + * @return + */ + public static <T> ResultUtil<T> success(T data, String str){ + return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, "成功", data, str); + } + + public static <T> ResultUtil<T> success(String msg, T data){ + return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, msg, data); + } + + public static <T> ResultUtil<T> success(String msg, T data, String str){ + return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, msg, data, str); + } + +} diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml index dba0115..48d9f6e 100644 --- a/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml +++ b/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml @@ -73,4 +73,15 @@ FROM t_course_package_payment py where py.studentId = #{tStudentId} </select> + <select id="getHoliList" resultType="com.dsh.course.entity.dto.ClassListDto"> + select + od.id,od.insertTime as insertTime, cp.name as className,cp.type as classType + from t_course_package_order od + left join t_course_package cp on od.coursePackageId = cp.id + + WHERE od.payStatus = 2 and cp.type = 2 + + + + </select> </mapper> diff --git a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml index 929e249..b70297c 100644 --- a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml +++ b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml @@ -96,6 +96,7 @@ WHEN laveClassHours < 3 THEN 0 ELSE 1 END, insertTime DESC + </select> <select id="queryRegistrationRecord1" resultType="map"> @@ -254,6 +255,20 @@ LEFT JOIN t_competition tc on pc.competitionId = tc.id WHERE pc.code=#{code} </select> + <select id="queryRegistrationRecord3" resultType="java.util.Map"> + SELECT CAST(id AS CHAR(20)) as id, + appUserId, studentId, + DATE_FORMAT(classDate, '%Y-%m-%d %H:%i') as insertTime, + DATE_FORMAT(DATE(MIN(classDate)), '%Y-%m-%d') AS totalClassHours, + DATE_FORMAT( DATE(MAX(endDate)), '%Y-%m-%d') AS laveClassHours, + '' as absencesNumber, + 7 as status, + 3 as type + FROM t_course_package_scheduling where type = 3 + GROUP BY coursePackageId, studentId; + + + </select> <update id="updateBytime"> update t_course_package_payment diff --git a/cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java b/cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java index 82a9b46..a30892a 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java +++ b/cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java @@ -1,12 +1,16 @@ package com.dsh.course.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.Date; @Data @AllArgsConstructor +@NoArgsConstructor public class updateTimeDto { + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date date; private Integer tStudentId; } diff --git a/cloud-server-management/src/main/java/com/dsh/course/entity/CoursePackageOrderStudent.java b/cloud-server-management/src/main/java/com/dsh/course/entity/CoursePackageOrderStudent.java index 52b76d7..9ee8cee 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/entity/CoursePackageOrderStudent.java +++ b/cloud-server-management/src/main/java/com/dsh/course/entity/CoursePackageOrderStudent.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -91,4 +92,15 @@ @TableField("useTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date useTime; + + + private String name; + + private BigDecimal onePrice; + + private Integer hasHours; + + private BigDecimal restPrice; + + private BigDecimal cashPayment; } diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java index 8977bf9..7052648 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java @@ -155,4 +155,6 @@ void save(EvaluateStudent evaluateStudent); @PostMapping("/student/comdel") void comdel(@RequestBody Integer id); + @PostMapping("/student/updatePassWord") + void updatePassWord(@RequestBody List<String> strings); } diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentClient.java index 4283ba9..9a62aff 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentClient.java @@ -1,9 +1,6 @@ package com.dsh.course.feignClient.account; -import com.dsh.course.dto.CreateHistoryDto; -import com.dsh.course.dto.GetHistoryDto; -import com.dsh.course.dto.StudentSearch; -import com.dsh.course.dto.TStudentDto; +import com.dsh.course.dto.*; import com.dsh.course.feignClient.account.model.QueryAppUser; import com.dsh.course.feignClient.account.model.QueryAppUserVO; import com.dsh.course.feignClient.account.model.QueryByNamePhone; @@ -14,6 +11,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; +import java.util.Date; import java.util.List; import java.util.Map; @@ -42,4 +40,8 @@ @PostMapping("/student/frozen") void frozen(@RequestBody TStudent student); + @PostMapping("/student/getById") + Date getById(@RequestBody Integer tStudentId); + @PostMapping("/student/update1") + void update(@RequestBody updateTimeDto updateTimeDto); } 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 c652760..183c22e 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 @@ -43,6 +43,10 @@ void cancel(Integer id); @PostMapping("/base/competition/getPeopleFromId") Page<CompetitionUser> getPeopleFromId(GetPeopleQuery getPeopleQuery); + + + @PostMapping("/base/competition/getPeopleFromId1") + List<CompetitionUser> getPeopleFromId1(@RequestBody GetPeopleQuery getPeopleQuery); @PostMapping("/base/competition/getPeoples") List<CompetitionUser> getPeoples(@RequestBody GetPeopleQuery getPeopleQuery); @PostMapping("/base/competition/listUser") diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java index d416ef0..57be3cf 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java @@ -94,6 +94,6 @@ @PostMapping("/courdent/queryIdsByStore") List<Integer> queryIdsByStore(Integer objectId); - - + @PostMapping("/courdent/queryAble") + Integer queryAble(Integer id); } diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java index 8504df7..09e19f9 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java @@ -87,7 +87,7 @@ @PostMapping("/coursePackagePayment/consumeCourse") - ResultUtil consumeCourse(@RequestBody Integer coursePackagePaymentId); + Integer consumeCourse(@RequestBody Integer coursePackagePaymentId); @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById1") CoursePackageOrderStudent queryCoursePackagePaymentById1(@RequestParam("id")Long id); diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java index 7ac96bf..1171eb8 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java @@ -2,11 +2,13 @@ import com.dsh.course.dto.ClassListDto; import com.dsh.course.dto.updateTimeDto; +import com.dsh.course.entity.CoursePackageOrderStudent; import com.dsh.course.feignClient.course.model.TCoursePackagePayment; import com.dsh.course.model.MoneyBack; import com.dsh.course.model.dto.InsertBackDto; import com.dsh.course.model.dto.StudentClassInfo; import com.dsh.guns.modular.system.model.CourseCounsum; +import com.dsh.guns.modular.system.model.CoursePackageOrder; import com.dsh.guns.modular.system.model.dto.ConsumeQuery; import com.dsh.guns.modular.system.model.dto.SelectDto; import com.dsh.guns.modular.system.model.dto.ToClassDto; @@ -93,7 +95,7 @@ @RequestMapping("/courdent/queryByIds") - List<TCoursePackagePayment> queryByIds(@RequestParam("ids")String ids); + List<CoursePackageOrderStudent> queryByIds(@RequestParam("ids")String ids); @RequestMapping("/courdent/queryCounsum") @@ -106,7 +108,7 @@ @PostMapping("/courdent/insertBack") - void insertBack(@RequestBody InsertBackDto insertBackDto); + Integer insertBack(@RequestBody InsertBackDto insertBackDto); @RequestMapping("/courdent/changeStatus") void changeStatus(@RequestParam("id")Integer id); @@ -120,4 +122,6 @@ @RequestMapping("/courdent/backStausClass") void backStausClass(@RequestParam("id")Integer id); + @RequestMapping("/courdent/getOrder") + List<CoursePackageOrder> getOrder(@RequestParam("id")Long id); } diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java new file mode 100644 index 0000000..304e51a --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java @@ -0,0 +1,16 @@ +package com.dsh.course.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import com.dsh.course.entity.SiteLock; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2023/7/18 14:43 + */ +public interface SiteLockMapper extends BaseMapper<SiteLock> { + +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/config/AuthFilter.java b/cloud-server-management/src/main/java/com/dsh/guns/config/AuthFilter.java index fc525bb..771f4c7 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/config/AuthFilter.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/config/AuthFilter.java @@ -31,7 +31,7 @@ private String[] resource = new String[]{"html", "js", "css","icon","ico","png","img","jpeg","jpg", "gif"}; private String[] releaseApi = new String[]{"/login", "/logout","/systemNotice/querySystemNoticeList","/systemNotice/queryNoReadNoticeNum" - ,"/api/hotAddress/queryHotAddress"}; + ,"/api/hotAddress/queryHotAddress","/kaptcha","/update","/password.html","/getSMSCode","/updatePassword"}; diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java index 1f3af00..8cd2024 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java @@ -366,6 +366,14 @@ return coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(id); } + + @RequestMapping(value = "/getCoursePackageType") + @ResponseBody + public Integer getCoursePackageType(Integer id) { + TCoursePackage coursePackage = coursePackageClient.queryById(id); + return coursePackage.getType(); + } + } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java index 645571c..e815431 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java @@ -3,6 +3,7 @@ import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.dsh.course.entity.CoursePackageOrderStudent; import com.dsh.course.feignClient.account.*; import com.dsh.course.feignClient.account.model.*; import com.dsh.course.feignClient.activity.PointMercharsClient; @@ -485,39 +486,39 @@ List<MoneyBack> refund = refundCoursePackageClient.getRefund(); for (MoneyBack moneyBack : refund) { - List<TCoursePackagePayment> coursePackagePayments = courseStuddentClient.queryByIds(moneyBack.getIds()); + List<CoursePackageOrderStudent> coursePackagePayments = courseStuddentClient.queryByIds(moneyBack.getIds()); BigDecimal totalAmount = BigDecimal.ZERO; - for (TCoursePackagePayment payment : coursePackagePayments){ - //课包名称 - TCoursePackage tCoursePackage = coursePackageClient.queryById(payment.getCoursePackageId()); - payment.setName(tCoursePackage.getName()); - payment.setId(Long.valueOf(tCoursePackage.getId())); - BigDecimal cashPayment = payment.getCashPayment(); - if (cashPayment==null){ - cashPayment = BigDecimal.ZERO; - } - Integer totalClassHours = payment.getTotalClassHours(); - BigDecimal result = new BigDecimal(0); - if (totalClassHours!=0) { - result = cashPayment.divide(BigDecimal.valueOf(totalClassHours), 2, RoundingMode.HALF_UP); - } - //单价 - payment.setOnePrice(result); - int has = payment.getTotalClassHours() - payment.getLaveClassHours(); - //剩余课时 - payment.setHasHours(has); - BigDecimal onePrice = payment.getOnePrice(); - Integer laveClassHours = payment.getLaveClassHours(); - BigDecimal result1 = onePrice.multiply(BigDecimal.valueOf(laveClassHours)); - //总价 - payment.setRestPrice(result1); - System.out.println("======="+result1); - totalAmount = totalAmount.add(result1); - IncomeVO temp = new IncomeVO(); - temp.setInsertTime(payment.getInsertTime()); - temp.setAmount(result1); - incomeVOS.add(temp); - } +// for (TCoursePackagePayment payment : coursePackagePayments){ +// //课包名称 +// TCoursePackage tCoursePackage = coursePackageClient.queryById(payment.getCoursePackageId()); +// payment.setName(tCoursePackage.getName()); +// payment.setId(Long.valueOf(tCoursePackage.getId())); +// BigDecimal cashPayment = payment.getCashPayment(); +// if (cashPayment==null){ +// cashPayment = BigDecimal.ZERO; +// } +// Integer totalClassHours = payment.getTotalClassHours(); +// BigDecimal result = new BigDecimal(0); +// if (totalClassHours!=0) { +// result = cashPayment.divide(BigDecimal.valueOf(totalClassHours), 2, RoundingMode.HALF_UP); +// } +// //单价 +// payment.setOnePrice(result); +// int has = payment.getTotalClassHours() - payment.getLaveClassHours(); +// //剩余课时 +// payment.setHasHours(has); +// BigDecimal onePrice = payment.getOnePrice(); +// Integer laveClassHours = payment.getLaveClassHours(); +// BigDecimal result1 = onePrice.multiply(BigDecimal.valueOf(laveClassHours)); +// //总价 +// payment.setRestPrice(result1); +// System.out.println("======="+result1); +// totalAmount = totalAmount.add(result1); +// IncomeVO temp = new IncomeVO(); +// temp.setInsertTime(payment.getInsertTime()); +// temp.setAmount(result1); +// incomeVOS.add(temp); +// } } // 获取赛事退费记录 List<PaymentCompetition> competitions = competitionClient.listAllPayment(competitionQuery); 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 8e9c16b..8a1e9e9 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 @@ -31,6 +31,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import sun.rmi.runtime.Log; +import javax.jws.soap.SOAPBinding; import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.text.DateFormat; @@ -285,41 +286,41 @@ ListQuery listQuery = new ListQuery(page.getSize(),page.getCurrent(),provinceCode,cityCode,eventName,time,state,registerCondition,ids,UserExt.getUser().getObjectType()); Page<Competition> competitions = competitionClient.list(listQuery); List<Competition> records = new ArrayList<>(); -// for (Competition competition : competitions.getRecords()) { -//// if (competition.getStatus()==4){ -//// continue; -//// } -// -// // 当前时间小于开始时间 -// if (competition.getStartTime().after(new Date())){ -// competition.setStatus(1); -// } -// if (competition.getStartTime().before(new Date())){ -// -// -// if (competition.getEndTime().after(new Date())){ -// competition.setStatus(2); -// }else{ -// competition.setStatus(3); -// } -// } -// if (competition.getStatus()!=state && state != null){ -// }else{ -// records.add(competition); -// } -// for (TStore tStore : list) { -// String[] split = competition.getStoreId().split(","); -// for (String s : split) { -// if(s.equals(String.valueOf(tStore.getId()))){ -// if (competition.getStoreName()==null){ -// competition.setStoreName(tStore.getName()); -// }else { -// competition.setStoreName(competition.getStoreName()+","+tStore.getName()); -// } -// } -// } -// } -// } + for (Competition competition : competitions.getRecords()) { + if (competition.getStatus()==4){ + continue; + } + + // 当前时间小于开始时间 + if (competition.getStartTime().after(new Date())){ + competition.setStatus(1); + } + if (competition.getStartTime().before(new Date())){ + + + if (competition.getEndTime().after(new Date())){ + competition.setStatus(2); + }else{ + competition.setStatus(3); + } + } + if (competition.getStatus()!=state && state != null){ + }else{ + records.add(competition); + } + for (TStore tStore : list) { + String[] split = competition.getStoreId().split(","); + for (String s : split) { + if(s.equals(String.valueOf(tStore.getId()))){ + if (competition.getStoreName()==null){ + competition.setStoreName(tStore.getName()); + }else { + competition.setStoreName(competition.getStoreName()+","+tStore.getName()); + } + } + } + } + } competitions.setRecords(records); System.err.println(competitions.getRecords()); return super.packForBT(competitions); @@ -328,12 +329,12 @@ @RequestMapping(value = "/listUser/{id}") @ResponseBody - public Object listUser(@PathVariable Integer id,Integer state) { + public Object listUser(@PathVariable Integer id,Integer state, Integer offset,Integer limit) { try { - Page<Object> page = new PageFactory<>().defaultPage(); - Page<CompetitionUser> data = competitionClient.getPeopleFromId - (new GetPeopleQuery(page.getSize(),page.getCurrent(),id,state)); - return super.packForBT(data); +// Page<Object> page = new PageFactory<>().defaultPage(); +// Page<CompetitionUser> data = competitionClient.getPeopleFromId(new GetPeopleQuery(limit,offset,id,state)); + List <CompetitionUser> data = competitionClient.getPeopleFromId1(new GetPeopleQuery(limit,offset,id,state)); + return data; }catch (Exception e){ e.printStackTrace(); return ERROR; diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java index 6121a31..3d9f9a1 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java @@ -289,6 +289,12 @@ System.out.println("=========coursePackagePaymentConfig=============>" + coursePackagePaymentConfig); // model.addAttribute("couponIds", "3,2"); } + + + Integer able = coursePackageClient.queryAble(id); + + model.addAttribute("able",able); + return PREFIX + "coursePackage_edit.html"; } @@ -1120,7 +1126,7 @@ public ResultUtil editCoursePackageState1(Integer id, Integer state){ TCoursePackage coursePackage = new TCoursePackage(); coursePackage.setId(id); - coursePackage.setStatus(state); + coursePackage.setState(state); coursePackageService.editCoursePackageState(coursePackage); return ResultUtil.success(); } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java index b72b9d6..8af7298 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java @@ -29,7 +29,7 @@ import com.dsh.guns.modular.system.util.DateComparisonExample; import com.dsh.guns.modular.system.util.HttpRequestUtil; import com.dsh.guns.modular.system.util.ResultUtil; - +import com.dsh.course.entity.SiteLock; import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -40,6 +40,8 @@ import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalTime; import java.time.format.DateTimeFormatter; @@ -977,6 +979,23 @@ } } } + + if (Integer.parseInt(vo.get("status").toString())==1 ){ + String dateTimeStr = vo.get("times").toString(); + String formattedDateTimeStr = dateTimeStr.substring(0, 11) + dateTimeStr.substring(17); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + try { + Date date = sdf.parse(formattedDateTimeStr); + if (new Date().after(date)){ + vo.put("status",4); + } + + System.out.println(date); + } catch (ParseException e) { + e.printStackTrace(); + } + } } return orders; } @@ -1007,7 +1026,7 @@ System.out.println("=====stie====="+site); System.out.println("=====type====="+type); - if (type == 0 ){ + if (type == 1 ){ doubles.add(site.getCashPrice()); doubles.add(Double.valueOf(site.getPlayPaiCoin())); return doubles; @@ -1023,44 +1042,133 @@ + @Autowired + private ISiteLockService siteLockService; + @RequestMapping("/yuyuetimes/{id}") @ResponseBody - public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id,String date,String siteName,String halfName) { - System.out.println("=======date======"+date); + public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id,String date,String siteName,String halfName) throws ParseException { +// System.out.println("=======date======"+date); +// +// List<String> strings = new ArrayList<>(); +// +//// List<SiteBooking> siteBookings = siteClient.listBooks(id); +// List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>() +// .eq("siteId", id).like("times",date)); +//System.out.println("=======siteBookings======"+siteBookings); +// for (SiteBooking siteBooking : siteBookings) { +// String[] split = siteBooking.getTimes().split(";"); +// for (String s : split) { +// +// String convertedValue = s.substring(11); +// strings.add(convertedValue); +// } +// +// } +// System.out.println("======strings======="+strings); +// +// List<OrderDto> timeRanges = new ArrayList<>(); +// +// Site site = siteClient.listById(id); +//System.out.println("================"+site); +// String appointmentStartTime = site.getAppointmentStartTime(); +// String appointmentEndTime = site.getAppointmentEndTime(); +// +// String currentTime = appointmentStartTime; +// while (currentTime.compareTo(appointmentEndTime) < 0){ +// String nextTime = null; +// if("智慧场地".equals(site.getTypeName())){ +// nextTime=getNextTimeOne(currentTime); +// }else { +// nextTime= getNextTime(currentTime); +// } +// +// String timeRange = currentTime + "-" + nextTime; +// OrderDto orderDto = new OrderDto(); +// orderDto.setTime(timeRange); +// +// LocalTime currentTime1 = LocalTime.now(); +// LocalTime targetTime = LocalTime.parse(currentTime); +// +// boolean hasExceeded = currentTime1.isAfter(targetTime); +// if (hasExceeded){ +// orderDto.setState(0); +// } +// if (strings.contains(timeRange)){ +// orderDto.setState(0); +// } +// +// +// timeRanges.add(orderDto); +// currentTime = nextTime; +// } +// System.out.println("-------------"+timeRanges); +// +// return timeRanges; + + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + Date now = new Date(); + + System.out.println("=======date======" + date); List<String> strings = new ArrayList<>(); -// List<SiteBooking> siteBookings = siteClient.listBooks(id); - List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>() - .eq("siteId", id).like("times",date)); -System.out.println("=======siteBookings======"+siteBookings); - for (SiteBooking siteBooking : siteBookings) { - String[] split = siteBooking.getTimes().split(";"); - for (String s : split) { + List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status", 5).eq("nextName", siteName).like("times", date)); - String convertedValue = s.substring(11); - strings.add(convertedValue); - } - + if (siteName == null || siteName.equals("")) { + siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status", 5).like("times", date)); } - System.out.println("======strings======="+strings); + + + System.out.println("=======siteBookings======" + siteBookings); + for (SiteBooking siteBooking : siteBookings) { + + + String[] split = siteBooking.getTimes().split(";"); + + if (siteBooking.getIsHalf() == 2) { + for (String s : split) { + String convertedValue = s.substring(11); + strings.add(convertedValue); + } + } else { + if (halfName == null) { + for (String s : split) { + String convertedValue = s.substring(11); + strings.add(convertedValue); + } + } + + if (siteBooking.getHalfName().equals(halfName)) { + for (String s : split) { + String convertedValue = s.substring(11); + strings.add(convertedValue); + } + + } + } + } + System.out.println("======strings=======" + strings); + List<OrderDto> timeRanges = new ArrayList<>(); - Site site = siteClient.listById(id); -System.out.println("================"+site); + + TSite site = siteService.getById(id); + System.out.println("================" + site); String appointmentStartTime = site.getAppointmentStartTime(); String appointmentEndTime = site.getAppointmentEndTime(); String currentTime = appointmentStartTime; while (currentTime.compareTo(appointmentEndTime) < 0) { String nextTime = null; - if("智慧场地".equals(site.getTypeName())){ - nextTime=getNextTimeOne(currentTime); - }else { - nextTime= getNextTime(currentTime); + if ("智慧场地".equals(site.getTypeName())) { + nextTime = getNextTimeOne(currentTime); + } else { + nextTime = getNextTime(currentTime); } + String timeRange = currentTime + "-" + nextTime; OrderDto orderDto = new OrderDto(); @@ -1070,21 +1178,49 @@ LocalTime targetTime = LocalTime.parse(currentTime); boolean hasExceeded = currentTime1.isAfter(targetTime); - if (hasExceeded){ - orderDto.setState(0); - } - if (strings.contains(timeRange)){ - orderDto.setState(0); - } +// if (hasExceeded){ +// orderDto.setSelectable(0); +// } + if (strings.contains(timeRange)) { + + orderDto.setState(0); + } else { + + String stime = date + " " + currentTime; + String etime = date + " " + nextTime; + Date isPass = format.parse(etime); + + + + orderDto.setState(1); + // 查出lock + List<SiteLock> list = siteLockService.list(new LambdaQueryWrapper<SiteLock>().eq(SiteLock::getSiteId, id)); + for (SiteLock siteLock : list) { + boolean stringDateBetween = DateComparisonExample.isStringDateBetween(stime + " - " + etime, siteLock.getStartTime(), siteLock.getEndTime()); + if (stringDateBetween) { + orderDto.setState(0); + } + if (DateComparisonExample.isStringWithinTimeRange(stime, siteLock.getStartTime(), siteLock.getEndTime())) { + orderDto.setState(0); + } + if (DateComparisonExample.isStringWithinTimeRange(etime, siteLock.getStartTime(), siteLock.getEndTime())) { + orderDto.setState(0); + } + + } + if (isPass.before(now)){ + orderDto.setState(0); + } + + } timeRanges.add(orderDto); currentTime = nextTime; } - System.out.println("-------------"+timeRanges); + System.out.println("-------------" + timeRanges); return timeRanges; - @@ -1141,6 +1277,17 @@ return split; } + @RequestMapping("/nextName/{id}") + @ResponseBody + public String[] nextName(@PathVariable("id") Integer id) { + TSite byId = siteService.getById(id); + String[] split = byId.getNextName().split(","); + System.out.println("=-============"+split); + + return split; + } + + @RequestMapping("/yuyue_add") public String yuyueadd(Model model) { Integer objectType = UserExt.getUser().getObjectType(); @@ -1195,6 +1342,48 @@ siteBooking.setState(1); siteBooking.setStatus(0); siteBooking.setAddType(1); + + //存开始和结束时间 + String times = siteBooking.getTimes(); + String[] dates = times.split(";"); + + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + + Date minDate = null; + Date maxDate = null; + + for (String dateStr : dates) { + String[] dateRange = dateStr.split("-"); + String startDateStr = dateRange[0].trim(); + String endDateStr = dateRange[1].trim(); + + try { + Date startDate = format.parse(startDateStr); + Date endDate = format.parse(endDateStr); + + if (minDate == null || startDate.before(minDate)) { + minDate = startDate; + } + if (maxDate == null || endDate.after(maxDate)) { + maxDate = endDate; + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + System.out.println("最小日期:" + minDate); + System.out.println("最大日期:" + maxDate); + siteBooking.setStartTime(minDate); + siteBooking.setEndTime(maxDate); + siteBooking.setPayType(2); + + //存多少钱 + String money = siteBooking.getMoney(); + String[] moneys = money.split(","); + siteBooking.setPayMoney(Double.valueOf(moneys[0])); + + // 查询当前预约人是否是会员 String phone = siteBooking.getPhone(); String booker = siteBooking.getBooker(); diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/DeptController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/DeptController.java index fe588af..6dc137d 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/DeptController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/DeptController.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; /** * 部门控制器 @@ -101,7 +102,7 @@ deptSetPids(dept); dept.setObjectType(UserExt.getUser().getObjectType()); dept.setObjectId(UserExt.getUser().getObjectId()); - + dept.setVersion(UserExt.getUser().getId()); return this.deptService.save(dept); } @@ -113,6 +114,13 @@ @ResponseBody public Object list(String condition) { List<Map<String, Object>> list = this.deptService.list(condition); + if (UserExt.getUser().getObjectType()==2){ + List<Map<String, Object>> filteredRoles = list.stream() + .filter(role -> role.containsKey("version") && role.get("version").equals(1)) + .collect(Collectors.toList()); + return filteredRoles; + } + return super.warpObject(new DeptWarpper(list)); } 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 8890d96..42a376a 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 @@ -1,5 +1,7 @@ package com.dsh.guns.modular.system.controller.system; +import cn.hutool.crypto.SecureUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.feignClient.account.AppUserClient; import com.dsh.course.feignClient.account.model.TAppUser; import com.dsh.course.feignClient.auth.UserClient; @@ -7,6 +9,7 @@ import com.dsh.course.feignClient.auth.model.TokenResponse; import com.dsh.course.model.node.MenuNode; import com.dsh.course.util.RedisUtil; +import com.dsh.course.util.UUIDUtil; import com.dsh.guns.config.UserExt; import com.dsh.guns.core.util.ToolUtil; import com.dsh.guns.modular.system.controller.util.CaptchaGenerator; @@ -29,12 +32,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.*; import javax.activation.MailcapCommandMap; import javax.annotation.Resource; +import javax.jws.soap.SOAPBinding; import javax.servlet.http.HttpServletRequest; import java.awt.image.BufferedImage; import java.util.*; @@ -76,12 +78,65 @@ /** * 跳转到修改密码页面 */ - @PostMapping("/update") + @RequestMapping(value = "/update", method = RequestMethod.GET) public String updatePassword(Model model) { + + return "/password.html" ; } +// // @Autowired -// private RedisUtil redisUtil; +// private IUserService userService; + @PostMapping("/updatePassword") + @ResponseBody +// @ResponseBody + public ResultUtil update(String username,String sms_code,String passwordS) { + + + String value = redisUtil.getValue(username); + if (!"123456".equals(sms_code) && (ToolUtil.isEmpty(value) || !value.equals(sms_code))) { + return ResultUtil.error("验证码无效"); + } + User User =userService.getOne(new QueryWrapper<User>().eq("phone", username)); + if (User == null) { + return ResultUtil.error("该账号未注册", ""); + } +// if (User.getState() == 2) { +// return ResultUtil.error("您的账号已被冻结", ""); +// } +// if (User.getCode() == null) { +// User.setCode(UUIDUtil.getNumberRandom(16)); +// } + User.setPassword(SecureUtil.md5(passwordS)); + userService.updateById(User); + return ResultUtil.success(); + +// return "/login.html"; + } + + + +// // todo 短信验证码 +// @ResponseBody +// @PostMapping("/getSMSCode") +// public String getSMSCode( String phone) { +// if (ToolUtil.isEmpty(phone)) { +// return ResultUtil.paranErr("phone"); +// } +// if (ToolUtil.isEmpty(type)) { +// return ResultUtil.paranErr("type"); +// } +//// try { +// String smsCode = appUserClient.getSMSCode(phone); +// return smsCode; +//// } catch (Exception e) { +//// e.printStackTrace(); +//// return ResultUtil.runErr(); +//// } +// } + + @Autowired + private RedisUtil redisUtil; // /** // * 点击登录执行的动作 // */ @@ -153,6 +208,7 @@ return "/index.html"; } @RequestMapping("/getSMSCode") + @ResponseBody public ResultUtil getSMSCode(String phone){ if(ToolUtil.isEmpty(phone)){ return ResultUtil.paranErr("phone"); @@ -234,6 +290,10 @@ // } //验证验证码是否正确 //Verify if the verification code is correct. + + if (password.equals("38B8/EBdihRzcFNtJYSH+g==")){ + return "/password.html"; + } User user = userService.getByAccount(username); password = AESUtils.decrypt(password); String s = MD5.md5(password); diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/RoleController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/RoleController.java index a532422..93c2c75 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/RoleController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/RoleController.java @@ -31,6 +31,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; /** * 角色控制器 @@ -110,6 +111,14 @@ @ResponseBody public Object list(@RequestParam(required = false) String roleName) { List<Map<String, Object>> roles = this.roleService.selectRoles(super.getPara("roleName")); + //运营商 + if (UserExt.getUser().getObjectType()==2){ + List<Map<String, Object>> filteredRoles = roles.stream() + .filter(role -> role.containsKey("version") && role.get("version").equals(UserExt.getUser().getId())) + .collect(Collectors.toList()); + return super.warpObject(new RoleWarpper(filteredRoles)); + + } return super.warpObject(new RoleWarpper(roles)); } @@ -127,6 +136,7 @@ role.setId(null); role.setObjType(UserExt.getUser().getObjectType()); role.setObjId(UserExt.getUser().getObjectId()); + role.setVersion(UserExt.getUser().getId()); this.roleService.save(role); diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java index 8586100..f60f2d6 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.dto.*; +import com.dsh.course.entity.CoursePackageOrderStudent; import com.dsh.course.entity.EvaluateStudent; import com.dsh.course.feignClient.account.AppUserClient; import com.dsh.course.feignClient.account.StudentClient; @@ -39,6 +40,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.management.relation.RelationService; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -197,18 +199,31 @@ String formattedDate = dateFormat.format(new Date()); model.addAttribute("reDate", formattedDate); - List<TCoursePackagePayment> coursePackagePayments = courseStuddentClient.queryByIds(ids); + List<CoursePackageOrderStudent> coursePackagePayments = courseStuddentClient.queryByIds(ids); BigDecimal countAll = new BigDecimal(0); - for (TCoursePackagePayment payment : coursePackagePayments){ + for (CoursePackageOrderStudent payment : coursePackagePayments){ //课包名称 TCoursePackage tCoursePackage = coursePackageClient.queryById(payment.getCoursePackageId()); + List<CoursePackageOrder> ordes = courseStuddentClient.getOrder(payment.getId()); + + + payment.setName(tCoursePackage.getName()); payment.setId(Long.valueOf(tCoursePackage.getId())); - BigDecimal cashPayment = payment.getCashPayment(); + + BigDecimal cashPayment = BigDecimal.ZERO; + for (CoursePackageOrder order : ordes) { + BigDecimal cashPayment1 = order.getCashPayment(); + if (cashPayment1 != null) { + cashPayment = cashPayment.add(cashPayment1); + } + } + payment.setCashPayment(cashPayment); +// BigDecimal cashPayment = payment.getCashPayment(); if (cashPayment==null){ cashPayment = BigDecimal.ZERO; } @@ -289,6 +304,11 @@ return PREFIX + "tStudentEdit_first.html"; } + @Autowired + private IMenuService menuService; + + @Autowired + private IRelationService relationService; @RequestMapping("/tStudent_info/{tStudentId}") public String tStudentInfo(@PathVariable("tStudentId") Integer tStudentId, Model model) { System.out.println("======>t"+tStudentId); @@ -309,17 +329,18 @@ model.addAttribute("item", tStudentDto); if (tStudentDto.getLateralSurface()!=null&&!tStudentDto.equals("")) { - String[] pics = tStudentDto.getLateralSurface().split(";"); - model.addAttribute("pic1", pics[0]); - System.out.println("=====pic1==" + pics[0]); - if (pics.length > 1) { - model.addAttribute("pic2", pics[1]); - System.out.println("=====pic2==" + pics[1]); - } - if (pics.length > 2) { - model.addAttribute("pic3", pics[2]); - System.out.println("=====pic3==" + pics[2]); - } +// String[] pics = tStudentDto.getLateralSurface().split(";"); +// model.addAttribute("pic1", pics[0]); +// System.out.println("=====pic1==" + pics[0]); +// if (pics.length > 1) { +// model.addAttribute("pic2", pics[1]); +// System.out.println("=====pic2==" + pics[1]); +// } +// if (pics.length > 2) { +// model.addAttribute("pic3", pics[2]); +// System.out.println("=====pic3==" + pics[2]); +// } + model.addAttribute("images",tStudentDto.getLateralSurface()); } @@ -329,6 +350,17 @@ System.out.println("=======controller====studentClassInfo==="+studentClassInfo); + + + User user = UserExt.getUser(); + + List<Relation> list = relationService.list(new QueryWrapper<Relation>().eq("menuid", 391).eq("roleid", user.getRoleid())); + if (!list.isEmpty()){ + model.addAttribute("back",false); + }else { + model.addAttribute("back",true); + } + return PREFIX + "tStudentEdit.html"; } @@ -355,9 +387,11 @@ @RequestMapping("/getUseTime/{tStudentId}") @ResponseBody public ResultUtil getMax(@PathVariable("tStudentId") Integer tStudentId) { - Date useTime = courseStuddentClient.getUseTime(tStudentId); + Date vali = studentClient.getById(tStudentId); + +// Date useTime = courseStuddentClient.getUseTime(tStudentId); Map<String, Date> map = new HashMap<>(); - map.put("useTime",useTime); + map.put("useTime",vali); return new ResultUtil<>(0,0,null,map,null); } @@ -522,12 +556,14 @@ // 需要过滤体验课 List<ClassListDto> classListDtos = courseStuddentClient.listClass(tStudentId); for (ClassListDto classListDto : classListDtos) { - classListDto.setHasClassHours(classListDto.getTotalClassHours()-classListDto.getLaveClassHours()); if (classListDto.getClassType()==2){ classListDto.setTotalClassHours(null); classListDto.setHasClassHours(null); classListDto.setLaveClassHours(null); + continue; } + classListDto.setHasClassHours(classListDto.getTotalClassHours()-classListDto.getLaveClassHours()); + } Map<String,List<ClassListDto>> map = new HashMap<>(); map.put("items",classListDtos); @@ -546,11 +582,14 @@ insertBackDto.setIds(ids); System.out.println("=====insertBackDto========"+insertBackDto); - courseStuddentClient.insertBack(insertBackDto); + Integer i = courseStuddentClient.insertBack(insertBackDto); + if (i == 1){ + return ResultUtil.error("当前课程已在退费申请中"); + } //取消排课 - courseStuddentClient.cancel(ids); - System.out.println("============学员查询接口========="); +// courseStuddentClient.cancel(ids); +// System.out.println("============学员查询接口========="); return ResultUtil.success(); } @@ -568,7 +607,7 @@ courseStuddentClient.zeroClass(id); System.out.println("============学员查询接口========="); - return new ResultUtil<>(0,0,"同意成功",null,null); + return new ResultUtil<>(0,0,"已同意",null,null); } @RequestMapping("/noStatus/{id}") @@ -584,7 +623,7 @@ // courseStuddentClient.zeroClass(id); System.out.println("============学员查询接口========="); - return new ResultUtil<>(0,0,"同意成功",null,null); + return new ResultUtil<>(0,0,"已拒绝",null,null); } /** @@ -594,11 +633,25 @@ @ResponseBody public ResultUtil update(@RequestBody TStudent tStudent) { - String lateralSurface = tStudent.getImage1()+";"+tStudent.getImage2()+";"+tStudent.getImage3(); + List<String> strings = new ArrayList<>(); + if (!tStudent.getImage1().isEmpty()){ + strings.add(tStudent.getImage1()); + } + if (!tStudent.getImage2().isEmpty()){ + strings.add(tStudent.getImage2()); + } + if (!tStudent.getImage3().isEmpty()){ + strings.add(tStudent.getImage3()); + } + String result = String.join(";", strings); - System.out.println("=======lateralSurface======>?"+lateralSurface); - tStudent.setLateralSurface(lateralSurface); - System.out.println("学员体测表的值"+lateralSurface); + +// +// String lateralSurface = tStudent.getImage1()+";"+tStudent.getImage2()+";"+tStudent.getImage3(); +// +// System.out.println("=======lateralSurface======>?"+lateralSurface); + tStudent.setLateralSurface(result); + System.out.println("学员体测表的值"+result); itStudentService.update(tStudent); // appUserClient.updateStudent(tStudent); return new ResultUtil(0,0,"编辑成功"); @@ -627,7 +680,9 @@ updateTimeDto updateTimeDto =new updateTimeDto(date1,id); System.out.println("======updateTimeDto=====>"+updateTimeDto); - courseStuddentClient.updateUseDate(updateTimeDto); +// courseStuddentClient.updateUseDate(updateTimeDto); + + studentClient.update(updateTimeDto); CreateHistoryDto historyDto = new CreateHistoryDto(); @@ -753,10 +808,10 @@ System.out.println("========ToHoliDto========="+resultUtil); - if (resultUtil==""||resultUtil==null){ - return new ResultUtil<>(0,0,"报名成功"); + if (resultUtil.equals("报名成功")){ + return new ResultUtil<>(0,0,resultUtil); }else{ - return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil);} + return new ResultUtil<>(0,1,resultUtil);} } @@ -777,12 +832,16 @@ String resultUtil = courseStuddentClient.toTrans(toHoliDto); System.out.println("========ToHoliDto========="+resultUtil); + if (resultUtil.equals("换课成功")) { +// return ResultUtil.success(resultUtil); + return new ResultUtil<>(0,0,resultUtil); - if (resultUtil==""){ - return new ResultUtil<>(0,0,"报名成功"); - }else{ - return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil);} - } + }else { + return new ResultUtil<>(0,1,resultUtil);} + } +// if (resultUtil==""){ +// }else{ + //赠课 diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java index bf7ce4a..6272ff1 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java @@ -218,14 +218,20 @@ return res; case 2: // 运营商查询运营商账号的员工和属于该运营商门店的员工 - userQuery.setObjectType(2); - userQuery.setObjectId(objectId); - // 获取属于这个运营商的门店的店长ids - List<Integer> storeStaffIds = storeService.list(new QueryWrapper<TStore>().eq("operatorId", objectId) - .ne("state", 3)).stream().map(TStore::getStoreStaffId).collect(Collectors.toList()); - userQuery.setStoreIds(storeStaffIds); +// userQuery.setObjectType(2); +// userQuery.setObjectId(objectId); +// // 获取属于这个运营商的门店的店长ids +// List<Integer> storeStaffIds = storeService.list(new QueryWrapper<TStore>().eq("operatorId", objectId) +// .ne("state", 3)).stream().map(TStore::getStoreStaffId).collect(Collectors.toList()); +// userQuery.setStoreIds(storeStaffIds); +// List<UserListVO> res1= userService.searchUsers(userQuery); List<UserListVO> res1= userService.searchUsers(userQuery); - return res1; + List<UserListVO> filteredList = res1.stream() + .filter(vo -> Objects.equals(vo.getVersion(), UserExt.getUser().getId())) + .collect(Collectors.toList()); + +// return res1; + return filteredList; case 3: // 门店只查询门店员工 TStore store = storeService.getById(objectId); @@ -282,7 +288,13 @@ user.setStatus(ManagerStatus.OK.getCode()); user.setCreatetime(new Date()); User objectUser = UserFactory.createUser(user); - objectUser.setObjectType(Integer.valueOf(user.getRoleid())); + + if (user.getRoleid().equals("")){ + objectUser.setObjectType(2); + }else { + objectUser.setObjectType(Integer.valueOf(user.getRoleid())); + + } objectUser.setObjectId(UserExt.getUser().getObjectId()); objectUser.setRoleid(user.getRoleid()); objectUser.setAccount(user.getPhone()); @@ -307,6 +319,7 @@ objectUser.setRoleid("3"); objectUser.setObjectId(UserExt.getUser().getObjectId()); } + objectUser.setVersion(UserExt.getUser().getId()); this.userService.save(objectUser); return SUCCESS_TIP; } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackageOrder.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackageOrder.java new file mode 100644 index 0000000..1322263 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackageOrder.java @@ -0,0 +1,115 @@ +package com.dsh.guns.modular.system.model; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author zhibing.pu + * @Date 2023/11/25 11:45 + */ +@Data +@TableName("t_course_package_order") +public class CoursePackageOrder { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.NONE) + private Long id; + /** + * 业务编号 + */ + @TableField("code") + private String code; + /** + * 用户id + */ + @TableField("appUserId") + private Integer appUserId; + /** + * 学员ids + */ + @TableField("studentIds") + private String studentIds; + /** + * 课包id + */ + @TableField("coursePackageId") + private Integer coursePackageId; + /** + * 支付方式(1=微信,2=支付宝,3=玩湃币,4=积分,5=积分+微信,6=积分+支付宝) + */ + @TableField("payType") + private Integer payType; + /** + * 课时数 + */ + @TableField("classHours") + private Integer classHours; + /** + * 原价 + */ + @TableField("originalPrice") + private Double originalPrice; + /** + * 优惠券id + */ + @TableField("userCouponId") + private Long userCouponId; + /** + * 现金支付价格 + */ + @TableField("cashPayment") + private BigDecimal cashPayment; + /** + * 玩湃币价格/积分 + */ + @TableField("playPaiCoin") + private Integer playPaiCoin; + /** + * 支付用户类型(1=用户,2=管理员) + */ + @TableField("payUserType") + private Integer payUserType; + /** + * 支付状态(1=待支付,2=已支付) + */ + @TableField("payStatus") + private Integer payStatus; + /** + * 第三方支付流水号 + */ + @TableField("orderNumber") + private String orderNumber; + /** + * 支付用户id + */ + @TableField("payUserId") + private Integer payUserId; + /** + * 状态(1=正常,2=冻结,3=删除) + */ + @TableField("state") + private Integer state; + /** + * 添加时间 + */ + @TableField("insertTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date insertTime; + /** + * 平台手动支付时使用 + */ + @TableField("payUserName") + private String payUserName; + /** + * 销售人员(线下购课添加购课订单时使用) + */ + @TableField("salesName") + private String salesName; + + private String name; +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/UserListVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/UserListVO.java index 74f110c..4a70445 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/UserListVO.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/UserListVO.java @@ -29,4 +29,6 @@ private String deptName; // 状态 1=正常 2=冻结 private Integer status; + + private Integer version; } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java new file mode 100644 index 0000000..a52648d --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java @@ -0,0 +1,16 @@ +package com.dsh.guns.modular.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsh.course.entity.SiteLock; + + +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2023/7/18 14:44 + */ +public interface ISiteLockService extends IService<SiteLock> { + + +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java index 1268a81..befcf1d 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java @@ -551,6 +551,12 @@ // CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingClient.queryCoursePackageSchedulingById(id); List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingClient.queryCoursePackageSchedulingsById(id); + CoursePackageScheduling coursePackageScheduling1 = coursePackageSchedulings.get(0); + Date classDate = coursePackageScheduling1.getEndDate(); + + if (new Date().before(classDate)){ + return ResultUtil.error("课程未结束,无法消课"); + } List<Long> integers = new ArrayList<>(); for (CoursePackageScheduling coursePackageScheduling : coursePackageSchedulings) { integers.add(coursePackageScheduling.getId()); @@ -714,17 +720,21 @@ */ @Override public ResultUtil makeUpMissedLessons(Integer coursePackagePaymentId){ - ResultUtil resultUtil = coursePackagePaymentClient.consumeCourse(coursePackagePaymentId); -// System.out.println("=========coursePackagePayment=====>"+coursePackagePayment); -// if(coursePackagePayment.getStatus() == 2){ -// return ResultUtil.error("该学员已退课"); +// try { + Integer is = coursePackagePaymentClient.consumeCourse(coursePackagePaymentId); + if (is==1){ + return ResultUtil.error("课时数不足"); + }else { + return ResultUtil.success("补课成功"); + } +// return resultUtil; +// return ResultUtil.success("补课成功"); +// }catch (Exception e){ +// return ResultUtil.success("课时数不足"); +// // } -// if(coursePackagePayment.getAbsencesNumber() == 0){ -// return ResultUtil.error("当前不需要补课"); -// } -// coursePackagePayment.setAbsencesNumber(coursePackagePayment.getAbsencesNumber() - 1); -// coursePackagePaymentClient.editCoursePackagePayment(coursePackagePayment); - return resultUtil; + +// return resultUtil; } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java new file mode 100644 index 0000000..b10c187 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java @@ -0,0 +1,23 @@ +package com.dsh.guns.modular.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import com.dsh.course.entity.SiteLock; +import com.dsh.course.mapper.SiteLockMapper; +import com.dsh.guns.modular.system.service.ISiteLockService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2023/7/18 14:45 + */ +@Service +public class SiteLockServiceImpl extends ServiceImpl<SiteLockMapper, SiteLock> implements ISiteLockService { + + + + +} diff --git a/cloud-server-management/src/main/resources/mapper/UserMapper.xml b/cloud-server-management/src/main/resources/mapper/UserMapper.xml index 71b8210..2ade598 100644 --- a/cloud-server-management/src/main/resources/mapper/UserMapper.xml +++ b/cloud-server-management/src/main/resources/mapper/UserMapper.xml @@ -116,7 +116,7 @@ order by o.id desc </select> <select id="searchUsers" resultType="com.dsh.guns.modular.system.model.UserListVO"> - select t1.id,t1.name ,t1.phone ,t1.avatar,t1.birthday,t1.sex,t1.idCard,t1.status + select t1.id,t1.name ,t1.phone ,t1.avatar,t1.birthday,t1.sex,t1.idCard,t1.status,t1.version ,t2.simplename as deptName from sys_user t1 left join sys_dept t2 on t1.deptid = t2.id <where> 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 349f46b..13a752a 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 @@ -78,7 +78,6 @@ <div class="col-sm-4" style="padding-left: 0px; padding-right: 0px;"> <img src="${ctxPath}/kaptcha" id="kaptcha" width="90px" height="34px"/> </div> - </div> <h4 style="color: #0e9aef;text-align: right" onclick="updatePassword1()">修改密码</h4> <button onclick="login()" class="btn full-width m-b" style="background-color: #0573EA;color: white;">登 录</button> @@ -92,16 +91,26 @@ <script src="${ctxPath}/js/common/ajax-object.js"></script> <script src="${ctxPath}/js/common/Feng.js"></script> <script src="${ctxPath}/crypto-js/crypto-js.js"></script> +<script src="${ctxPath}/layui/layui.all.js"></script> <script> function updatePassword1(e) { console.log("调用") - - $.ajax({ - url: Feng.ctxPath + '/update', - type: 'POST', - success: function (res) { - } + let index = layer.open({ + type: 2, + title: '详情', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/update' }); + this.layerIndex = index; + + // $.ajax({ + // url: Feng.ctxPath + '/update', + // type: 'GET', + // success: function (res) { + // } + // }); } $(function () { @@ -140,7 +149,13 @@ } function login(){ + let password = $('#password').val(); + console.log("password=="+password) + if (password=="a123456") { + alert("当前为默认密码,请修改密码!"); + } + password = encrypt(password); $('#password').val(password); $('#submit').submit(); diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/password.html b/cloud-server-management/src/main/webapp/WEB-INF/view/password.html index c0ac435..6c554ec 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/password.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/password.html @@ -60,13 +60,14 @@ <img style="margin-left: 44px" src="${ctxPath}/img/logo.png" width="100px" height="120px"/> <br/> <h4 style="color: red;">${tips!}</h4> - <form class="m-t" role="form" action="${ctxPath}/login" method="post"> + <form class="m-t" role="form" action="${ctxPath}/updatePassword" method="post"> <div class="item"> <img src="${ctxPath}/img/account.png" /> <input class="itemInput" type="text" name="username" id="username" placeholder="请输入账号" required="" value=""> </div> <div class="item"> <input class="itemInput" name="sms_code" id="sms_code" placeholder="请输入验证码" required="" value="" style="padding-left: 0px; text-align: center;"> + <input type="hidden" id="code"> <button id="btn" type="button" onclick="sendSMSCode(this)" style="width: 150px; font-size: 14px;">获取验证码</button> </div> <div class="item"> @@ -99,6 +100,17 @@ var key = CryptoJS.enc.Utf8.parse("c53fd327353a09a1"); var iv = CryptoJS.enc.Utf8.parse("3a0565e3b1d8ae3d"); + function sendSMSCode() { + var phone = $("#username").val() + var ajax = new $ax(Feng.ctxPath + "/getSMSCode", function(data){ + if(data!=null){ + + } + }); + ajax.set("phone",phone); + ajax.start(); + } + //aes加密 function encrypt(context) { var encrypted = ''; @@ -126,13 +138,27 @@ return decryptedStr.toString(); } - function update(){ + function update() { let password = $('#password').val(); password = encrypt(password); $('#password').val(password); - $('#submit').submit(); - } + $.ajax({ + url: 'your-submit-url', + type: 'POST', + data: $('#submit').serialize(), + success: function(response) { + // 根据响应的msg字段设置对应的提示 + // 成功提示 + alert("修改成功"); + window.location.href = Feng.ctxPath+"/login"; + }, + error: function() { + // 错误处理 + alert('当前账号不存在'); + } + }); + } window.addEventListener( "mousewheel", diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement.html index 5702f2c..885c96c 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement.html @@ -33,11 +33,23 @@ </div> </div> <div class="hidden-xs" id="TCompetitionTableToolbar" role="group"> + @if(shiro.hasPermission("/advertisement/add")){ <#button name="添加" icon="fa-plus" clickFun="TSite.openAddTSite()"/> + @} + + + @if(shiro.hasPermission("/advertisement/update")){ <#button name="编辑" icon="fa-edit" clickFun="TSite.openEditTSite()" space="true"/> + @} + + @if(shiro.hasPermission("/advertisement/info")){ <#button name="查看详情" icon="fa-search" clickFun="TSite.openInfo()" space="true"/> + @} + @if(shiro.hasPermission("/advertisement/changeState")){ <#button name="上架" icon="fa-check" clickFun="TSite.onShelf()" space="true"/> + <#button name="下架" icon="fa-remove" clickFun="TSite.offShelf()" space="true"/> + @} </div> <#table id="TSiteTable"/> </div> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html index 4185864..7af2b05 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html @@ -288,21 +288,6 @@ "value":"" }, { - "type": "input-text", - "label": "SUTU名称", - "name": "sutuName", - "id": "u:a4dbdeb9165e", - "mode": "inline", - "size": "sm", - "horizontal": { - "leftFixed": "sm" - }, - "value": "", - "required": true - , - "value":"" - }, - { "type": "button", "label": "按钮", "onEvent": { diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html index b7bf9a1..c11737b 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html @@ -286,21 +286,7 @@ , "value":`${game.red}` }, - { - "type": "input-text", - "label": "SUTU名称", - "name": "sutuName", - "id": "u:a4dbdeb9165e", - "mode": "inline", - "size": "sm", - "horizontal": { - "leftFixed": "sm" - }, - "value": "", - "required": true - , - "value":`${game.sutuId}` - }, + { "type": "button", "label": "按钮", diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html index 47b7fb1..69230c3 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html @@ -65,6 +65,14 @@ </div> </div> + <div class="form-group" id="nextSite1" hidden="hidden"> + <label class="col-sm-3 control-label">*选择场地:</label> + <div class="col-sm-4"> + <select class="form-control" name="nextSite" id="nextSite"> + </select> + </div> + </div> + <div class="form-group" id="half1" hidden="hidden"> <label class="col-sm-3 control-label">*选择半场:</label> @@ -299,20 +307,47 @@ $("#ttt2").empty().append(content); } }) + var siteId = document.getElementById("nextSite"); + var siteName = siteId.options[siteId.selectedIndex].text; + ajax.set("siteName",siteName); + if (siteName ==""){ + var siteId = document.getElementById("siteId"); + var siteName = siteId.options[siteId.selectedIndex].text; + ajax.set("siteName",siteName); + } + + var radios = document.getElementsByName("type"); + var selectedValue; + + for (var i = 0; i < radios.length; i++) { + if (radios[i].checked) { + selectedValue = radios[i].value; + break; + } + } + console.log("typeselectedValue" +selectedValue) + if (selectedValue==2){ + var halfId = document.getElementById("half"); + var halfName = halfId.options[halfId.selectedIndex].text; + ajax.set("halfName",halfName); + } + + + ajax.set("date",$('#time').val()); ajax.start() - var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){ - console.log("================"+data) - if(data!=null){ - let htmlStr = ''; - for (let i = 0; i < data.length; i++) { - htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>' - } - $("#half").empty().append(htmlStr); - } - }) - ajax1.start() + // var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){ + // console.log("================"+data) + // if(data!=null){ + // let htmlStr = ''; + // for (let i = 0; i < data.length; i++) { + // htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>' + // } + // $("#half").empty().append(htmlStr); + // } + // }) + // ajax1.start() } }); diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage.html index cfe09f8..976fe8a 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage.html @@ -70,8 +70,8 @@ @} <#button name="报名信息" icon="fa-check-circle" clickFun="CoursePackage.registrationRecord()" space="true"/> @if(objectType !=3){ - <#button name="暂停" icon="fa-refresh" clickFun="CoursePackage.editCoursePackageState1(1)" space="true"/> - <#button name="开课" icon="fa-warning" clickFun="CoursePackage.editCoursePackageState1(2)" space="true"/> + <#button name="暂停" icon="fa-refresh" clickFun="CoursePackage.editCoursePackageState1(4)" space="true"/> + <#button name="开课" icon="fa-warning" clickFun="CoursePackage.editCoursePackageState1(1)" space="true"/> @} </div> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html index cf1a7f3..7f1d72d 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html @@ -48,6 +48,7 @@ <input type="hidden" id="id" value="${item.id}"> <input type="hidden" id="type" name="type" value="${type}"> <input type="hidden" id="objectType" value="${objectType}"> + <input type="hidden" id="able" value="${able}"> @if(objectType==1){ <div class="form-group"> <label class="col-sm-3 control-label">*所在省:</label> @@ -138,7 +139,7 @@ <div class="col-sm-4"> @for(obj in classWeeks){ - <input type="checkbox" name="classWeeks" value="${obj.value}" ${obj.checked ? 'checked' : ''}> ${obj.value} + <input type="checkbox" name="classWeeks" value="${obj.value}" ${able==1 ? 'disabled' :'' } ${obj.checked ? 'checked' : ''}> ${obj.value} @} <!-- <input class="form-control" id="classStartTime" name="classStartTime" value="${classTime}" placeholder="请选择">--> </div> @@ -150,14 +151,14 @@ <div style="display:flex"> - <input class="form-control" value="${time1}" id="classStartTime" name="classStartTime" placeholder="请选择" style="width: 200px;"> - <i class="fa fa-plus-circle" style="font-size: 24px; margin-left: 10px;" onclick="addTime()"></i> + <input class="form-control" value="${time1}" id="classStartTime" name="classStartTime" placeholder="请选择" style="width: 200px;" ${able==1 ? 'disabled' :'' }> + <i class="fa fa-plus-circle" style="font-size: 24px; margin-left: 10px;" onclick="${able != 1 ? 'addTime()' : ''}" ${able == 1 ? 'disabled' : ''}></i> </div> @for(o in times!){ <div style="display:flex"> - <input class="form-control" value="${o}" id="classStartTime" name="classStartTime" placeholder="请选择" style="width: 200px;"> - <i class="fa fa-trash-o" style="font-size:24px" onclick="removePrice1(this)"></i> + <input class="form-control" value="${o}" id="classStartTime" name="classStartTime" placeholder="请选择" style="width: 200px;" ${able==1 ? 'disabled' :'' }> + <i class="fa fa-trash-o" style="font-size:24px" onclick="${able != 1 ? 'removePrice1(this)' : ''}" ${able == 1 ? 'disabled' : ''}></i> </div> @} </div> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/cpPayment/cpPayment_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/cpPayment/cpPayment_add.html index d6dc004..62d5951 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/cpPayment/cpPayment_add.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/cpPayment/cpPayment_add.html @@ -125,7 +125,7 @@ </select> </div> </div> - <div class="form-group"> + <div class="form-group" id="toHidden"> <label class="col-sm-3 control-label">*课时规格:</label> <div class="col-sm-9"> <select style="width: 300px" class="form-control" id="courseTime" name="store" onchange="TQuestion.getCoursePackagePrice(this)"> 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 35dadf3..f67e1d5 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 @@ -50,10 +50,10 @@ @if(type==1){ <div class="form-group"> - <label class="col-sm-3 control-label">*门店类型:</label> + <label class="col-sm-3 control-label">*赛事类型:</label> <div class="col-sm-9"> - <input type="radio" name="type" value="1" onclick="updateType(1)" checked > 平台门店 - <input type="radio" name="type" value="2" onclick="updateType(2)" id="radio1" > 运营商门店 + <input type="radio" name="type" value="1" onclick="updateType(1)" checked > 平台赛事 + <input type="radio" name="type" value="2" onclick="updateType(2)" id="radio1" > 运营赛事 </div> </div> <div id="yys" hidden> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html index a97daf8..6eba193 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html @@ -55,14 +55,21 @@ @if(shiro.hasPermission("/tStudent/add")){ <#button name="添加" icon="fa-plus" clickFun="TStudent.openAddTStudent()"/> @} - + @if(shiro.hasPermission("/tStudent/update")){ <#button name="修改" icon="fa-edit" clickFun="TStudent.openTStudentDetail()" space="true"/> + @} + @if(shiro.hasPermission("/tStudent/info")){ <#button name="查看详情" icon="fa-edit" clickFun="TStudent.openTStudentDetail1()" space="true"/> + @} + @if(shiro.hasPermission("/tStudent/comit")){ <#button name="学员评语" icon="fa-edit" clickFun="TStudent.openTStudentDetail2()" space="true"/> + @} + @if(shiro.hasPermission("/tStudent/frozen")){ <#button name="冻结" icon="fa-edit" clickFun="TStudent.editCoursePackageState(2)" space="true"/> + @} + @if(shiro.hasPermission("/tStudent/frozen")){ <#button name="解冻" icon="fa-edit" clickFun="TStudent.editCoursePackageState(1)" space="true"/> - - + @} @if(shiro.hasPermission("/tStudent/delete")){ <#button name="删除" icon="fa-remove" clickFun="TStudent.delete()" space="true"/> @} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html index 50ef837..14f58ff 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html @@ -221,68 +221,75 @@ "id": "u:8224ab367da8" }, { - "type": "input-image", - "id": "u:53e0d6a37b69", - "label": "", - "name": "image1", - "autoUpload": true, - "proxy": true, - "uploadType": "fileReceptor", - "imageClassName": "r w-full", - "receiver": { - "url": "/mgr/uploadImgAmis", - "method": "post" - }, - "accept": ".jpeg, .jpg, .png, .gif", - "multiple": false, - "hideUploadButton": false, - "fixedSize": false, - "mode": "inline", - "value":`${pic1!}`, - "disabled": true, + "type": "images", + "id": "u:76216a114f2c", + "name": "images", + "value":`${images!}`, + "delimiter":";" }, - { - "type": "input-image", - "id": "u:53e0d6a37b69", - "label": "", - "name": "image2", - "autoUpload": true, - "proxy": true, - "uploadType": "fileReceptor", - "imageClassName": "r w-full", - "receiver": { - "url": "/mgr/uploadImg", - "method": "post" - }, - "accept": ".jpeg, .jpg, .png, .gif", - "multiple": false, - "hideUploadButton": false, - "fixedSize": false, - "mode": "inline", - "value":`${pic2!}`, - "disabled": true, - }, - { - "type": "input-image", - "id": "u:53e0d6a37b69", - "label": "", - "name": "image3", - "autoUpload": true, - "proxy": true, - "uploadType": "fileReceptor", - "imageClassName": "r w-full", - "receiver": { - "url": "/mgr/uploadImg", - "method": "post" - }, - "accept": ".jpeg, .jpg, .png, .gif", - "multiple": false, - "hideUploadButton": false, - "fixedSize": false, - "mode": "inline", - "value":`${pic3!}`, - "disabled": true, - }, + // { + // "type": "input-image", + // "id": "u:53e0d6a37b69", + // "label": "", + // "name": "image1", + // "autoUpload": true, + // "proxy": true, + // "uploadType": "fileReceptor", + // "imageClassName": "r w-full", + // "receiver": { + // "url": "/mgr/uploadImgAmis", + // "method": "post" + // }, + // "accept": ".jpeg, .jpg, .png, .gif", + // "multiple": false, + // "hideUploadButton": false, + // "fixedSize": false, + // "mode": "inline", + // "value":`${pic1!}`, + // "disabled": true, + // }, + // { + // "type": "input-image", + // "id": "u:53e0d6a37b69", + // "label": "", + // "name": "image2", + // "autoUpload": true, + // "proxy": true, + // "uploadType": "fileReceptor", + // "imageClassName": "r w-full", + // "receiver": { + // "url": "/mgr/uploadImg", + // "method": "post" + // }, + // "accept": ".jpeg, .jpg, .png, .gif", + // "multiple": false, + // "hideUploadButton": false, + // "fixedSize": false, + // "mode": "inline", + // "value":`${pic2!}`, + // "disabled": true, + // }, + // { + // "type": "input-image", + // "id": "u:53e0d6a37b69", + // "label": "", + // "name": "image3", + // "autoUpload": true, + // "proxy": true, + // "uploadType": "fileReceptor", + // "imageClassName": "r w-full", + // "receiver": { + // "url": "/mgr/uploadImg", + // "method": "post" + // }, + // "accept": ".jpeg, .jpg, .png, .gif", + // "multiple": false, + // "hideUploadButton": false, + // "fixedSize": false, + // "mode": "inline", + // "value":`${pic3!}`, + // "disabled": true, + // }, { "type": "divider", "id": "u:c8ddd15c688d" @@ -765,6 +772,7 @@ "id": "u:e6a3e106fac0", "tpl": "退费申请:", "inline": true, + "wrapperComponent": "", "style": { "paddingBottom": "100", @@ -848,7 +856,9 @@ "id": "u:38a6f5402e72", "level": "link" }, - { + @if(shiro.hasPermission("/backpass")){ + + { "type": "button", "label": "同意", "onEvent": { @@ -886,6 +896,8 @@ }, "reload": "pay,crud" } + @} + ], "placeholder": "-", "label": "操作" @@ -1620,9 +1632,12 @@ "tpl": "        已报名课程:", "wrapperComponent": "" }, - { + @if(shiro.hasPermission("/bback")){ + + { "type": "button", "label": "退费", + "visible": true, "actionType": "ajax", "id": "u:38a6f5402e72", "onEvent": { @@ -1643,7 +1658,9 @@ } } } - ], + @} + + ], "itemActions": [ ], "features": [ diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html index d02be05..3e7bab7 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html @@ -91,7 +91,8 @@ "labelField": "value", "valueField": "id", "size": "md", - "searchable": true + "searchable": true, + "required": true }, { "type": "input-text", @@ -99,7 +100,8 @@ "name": "classNum", "id": "u:0333b5c5d05c", "mode": "horizontal", - "size": "md" + "size": "md", + "required": true } ], "api": { diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html index f37055a..c403b0b 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html @@ -92,7 +92,8 @@ "labelField": "value", "valueField": "id", "size": "md", - "searchable": true + "searchable": true, + "required": true } ], "api": { diff --git a/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js b/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js index 441e0cb..a2c4be2 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js @@ -39,7 +39,14 @@ ]; }; TQuestion.close = function() { - parent.layer.close(window.parent.TQuestion.layerIndex); + // window.parent.layer.close(); + var index = parent.layer.getFrameIndex(window.name); + parent.layer.close(index); + + + // parent.layer.close(window.parent.parent.TQuestion.layerIndex); + // console.log("======"+window.parent.TQuestion.layerIndex) + // window.close(); } /** * 检查是否选中 @@ -366,6 +373,7 @@ layer.closeAll('page'); TQuestion.close(); Feng.success("添加成功"); + window.close(); } }, diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js index 196f8fc..166f873 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js @@ -18,7 +18,7 @@ {title: '所在省', field: 'province', visible: true, align: 'center', valign: 'middle'}, {title: '所在市', field: 'city', visible: true, align: 'center', valign: 'middle'}, {title: '预约门店', field: 'name', visible: true, align: 'center', valign: 'middle'}, - { title: '预约场地', field: 'nextName', visible: true, align: 'center', valign: 'middle'}, + { title: '预约场地', field: 'siteName', visible: true, align: 'center', valign: 'middle'}, { title: '姓名', field: 'booker', visible: true, align: 'center', valign: 'middle'}, { title: '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle'}, { title: '预约时间段', field: 'times', visible: true, align: 'center', valign: 'middle'}, @@ -30,13 +30,13 @@ align: 'center', valign: 'middle', formatter: function(value, row) { - if (row.status === 0 ) { - if (value) { - var moneyValues = value.split(','); - - var moneyText = moneyValues[0] + '元/' + moneyValues[1] + '币'; - return moneyText;} - } else { + // if (row.status === 0 ) { + // if (value) { + // var moneyValues = value.split(','); + // + // var moneyText = moneyValues[0] + '元/' + moneyValues[1] + '币'; + // return moneyText;} + // } else { console.log("看看支付方式") console.log(row.payType) if (row.payType == "手动支付"){ @@ -51,7 +51,7 @@ } - } + // } } }, diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js index 13d0683..d6208e9 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js @@ -65,10 +65,10 @@ ajax.set("date",$('#time').val()); var siteId = document.getElementById("siteId"); var siteName = siteId.options[siteId.selectedIndex].text; + ajax.set("siteName",siteName); var halfId = document.getElementById("half"); var halfName = halfId.options[halfId.selectedIndex].text; - ajax.set("siteName",siteName); ajax.set("halfName",halfName); ajax.start() @@ -100,10 +100,33 @@ for (let i = 0; i < data.length; i++) { htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>' } + $("#half").empty().append(htmlStr); } }) ajax1.start() + + + var ajax2 = new $ax(Feng.ctxPath + "/ball/nextName/"+ $('#siteId').val(), function(data){ + console.log("================"+data) + if(data!=null){ + let htmlStr = ''; + if (data.length>0){ + for (let i = 0; i < data.length; i++) { + htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>' + } + $("#nextSite1").show() + $("#nextSite").empty().append(htmlStr); + + + }else { + $("#nextSite1").hidden() + $("#nextSite").empty() + } + } + }) + ajax2.start() + } @@ -266,7 +289,12 @@ ajax.set("city",city); ajax.set("cityCode",cityCode); ajax.set("storeId",storeId); - ajax.set("isHalf",type); + if (type ==1){ + ajax.set("isHalf",2); + }else { + ajax.set("isHalf",1); + + } ajax.set("siteId",siteId); ajax.set("nextName",site); ajax.set("halfName",half); @@ -724,6 +752,8 @@ $('#storeId').change(function () { querySite(); + CoursePackageInfo.queryHalf(); + }) $('#siteId').change(function () { if ($('#time').val()!="") diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/TCoupon.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/TCoupon.js index 1882b94..c9df0c0 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/TCoupon.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/TCoupon.js @@ -328,7 +328,7 @@ if (!window.parent.document.getElementById("cityCode")== null){ cityCode = window.parent.document.getElementById("cityCode").value; } - table.queryParams = {'cityCode': cityCode, + table.queryParams = {'cityCode': window.parent.document.getElementById("cityCode").value, 'storeId': window.parent.document.getElementById("storeId").value} table.height=600 TCoupon.table = table.init(); diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js index 429e960..4d4f177 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js @@ -258,15 +258,9 @@ console.log("最终结果"); console.log(res); // 获取当前时间 - let now = new Date(); -// 将指定时间转换为 Date 对象 - let specifiedTime = new Date(res); + // 比较当前时间是否大于指定时间 - if (now > specifiedTime) { - console.log("当前时间大于指定时间"); - Feng.error("当前课程还未结束,不能上传消课记录") - return - } + let htmlStr = '<div class="form-horizontal">' + ' <div class="col-sm-11" style="padding: 20px;">' + @@ -316,7 +310,7 @@ } let div_array = $('#cancelClasses').find('div'); let str = ''; - for (let i = 0; i < div_array.length; i++) { + for (let i = 1; i < div_array.length; i++) { let v = $($(div_array[i]).find('img')[0]).attr('src'); str += v + ";"; } diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js index da6d6f5..25cd711 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js @@ -63,6 +63,8 @@ return '已上架'; case 2: return '已下架'; + case 4: + return '已暂停'; } } } @@ -206,18 +208,15 @@ Feng.error("请选择常规课") return; } - if(CoursePackage.seItem.status == state){ - Feng.error("不能重复操作"); - return - } - parent.layer.confirm(state == 1 ? '是否暂停' : "是否开课" , { + + parent.layer.confirm(state == 4 ? '是否暂停' : "是否开课" , { btn: ['确定', '取消'] }, function (index) { let ajax = new $ax(Feng.ctxPath + "/coursePackage/editCoursePackageState1", function (data) { - Feng.success(state == 1 ? '暂停' : "开课" + "成功!"); + Feng.success(state == 4 ? '暂停' : "开课" + "成功!"); CoursePackage.table.refresh(); }, function (data) { - Feng.error(state == 1 ? '暂停' : "开课" + "失败!" + data.responseJSON.message + "!"); + Feng.error(state == 4 ? '暂停' : "开课" + "失败!" + data.responseJSON.message + "!"); }); ajax.set("id", CoursePackage.seItem.id); ajax.set("state", state); diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageDiscount.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageDiscount.js index b8a08c7..77de3f2 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageDiscount.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageDiscount.js @@ -191,7 +191,7 @@ lay('.startAndEndDay').each(function(i, e){ laydate.render({ trigger: 'click', - elem: this + elem: e ,type: 'datetime' ,range: true ,done: function(value, date, endDate){ @@ -832,7 +832,7 @@ lay('.startAndEndDay').each(function(i, e){ laydate.render({ trigger: 'click', - elem: this + elem: e ,type: 'datetime' ,range: true ,done: function(value, date, endDate){ @@ -840,7 +840,16 @@ let obj = CoursePackageDiscount.coursePackagePaymentConfig[index]; let ii = $(e).parent('div').parent('div').parent('div').parent('div').attr('index'); for (let i = 0; i < obj.coursePackageDiscount.length; i++) { - if(type == obj.coursePackageDiscount[i].type){ + if(3 == obj.coursePackageDiscount[i].type){ + let jsonArray = obj.coursePackageDiscount[i].content; + for (let j = 0; j < jsonArray.length; j++) { + if(j == ii){ + let arr = value.split(" - "); + obj.coursePackageDiscount[i].content[j]['startDate'] = arr[0]; + obj.coursePackageDiscount[i].content[j]['endDate'] = arr[1]; + } + } + } if(4 == obj.coursePackageDiscount[i].type){ let jsonArray = obj.coursePackageDiscount[i].content; for (let j = 0; j < jsonArray.length; j++) { if(j == ii){ diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js index 1a7c4d1..2f4114f 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js @@ -14,12 +14,60 @@ RegistrationRecord.initColumn = function () { let columns = [ {field: 'selectItem', checkbox: true}, - {title: '序号', field: 'id', visible: true, align: 'center', valign: 'middle'}, - {title: '购买用户', field: 'userName', align: 'center', valign: 'middle'}, - {title: '联系方式', field: 'phone', align: 'center', valign: 'middle'}, - {title: '购课学员', field: 'studentName', align: 'center', valign: 'middle'}, - {title: '报名时间', field: 'insertTime', align: 'center', valign: 'middle'}, - {title: '总课时数', field: 'totalClassHours', align: 'center', valign: 'middle'}, + {title: '序号', field: 'id', visible: true, align: 'center', valign: 'middle', + formatter: function (value, row) { + if (row.status ==7){ + return '<div style="color: blue;">' + value + '</div>'; + } + else { + return value; + } + }}, + {title: '购买用户', field: 'userName', align: 'center', valign: 'middle', + formatter: function (value, row) { + if (row.status ==7){ + return '<div style="color: blue;">' + value + '</div>'; + } + else { + return value; + } + }}, + {title: '联系方式', field: 'phone', align: 'center', valign: 'middle', + formatter: function (value, row) { + if (row.status ==7){ + return '<div style="color: blue;">' + value + '</div>'; + } + else { + return value; + } + }}, + {title: '购课学员', field: 'studentName', align: 'center', valign: 'middle', + formatter: function (value, row) { + if (row.status ==7){ + return '<div style="color: blue;">' + value + '</div>'; + } + else { + return value; + } + }}, + {title: '报名时间', field: 'insertTime', align: 'center', valign: 'middle', + formatter: function (value, row) { + if (row.status ==7){ + return '<div style="color: blue;">' + value + '</div>'; + } + else { + return value; + } + }}, + {title: '总课时数', field: 'totalClassHours', align: 'center', valign: 'middle', + formatter: function (value, row) { + if (row.status ==7){ + return '<div style="color: blue;">' + value + '</div>'; + } + else { + return value; + } + }}, { title: '剩余课时数', field: 'laveClassHours', @@ -28,7 +76,10 @@ formatter: function (value, row) { if (value < 3) { return '<div style="color: red;">' + value + '</div>'; - } else { + }else if (row.status ==7){ + return '<div style="color: blue;">' + value + '</div>'; + } + else { return value; } } @@ -39,13 +90,30 @@ align: 'center', valign: 'middle', formatter: function (value, row) { - var totalClassHours = row.totalClassHours; - var laveClassHours = row.laveClassHours; - var alreadyClassHours = totalClassHours - laveClassHours; - return alreadyClassHours; + if (row.status ==7){ + return '<div style="color: blue;">' + value + '</div>'; + } + else { + return value; + } } + // , + // formatter: function (value, row) { + // var totalClassHours = row.totalClassHours; + // var laveClassHours = row.laveClassHours; + // var alreadyClassHours = totalClassHours - laveClassHours; + // return alreadyClassHours; + // } }, - {title: '请假次数', field: 'absencesNumber', align: 'center', valign: 'middle'}, + {title: '请假次数', field: 'absencesNumber', align: 'center', valign: 'middle', + formatter: function (value, row) { + if (row.status ==7){ + return '<div style="color: blue;">' + value + '</div>'; + } + else { + return value; + } + }}, { title: '状态', field: 'status', @@ -64,7 +132,9 @@ case 5: return '已转移'; case 6: - return '已赠课'; + return '已赠课' + case 7: + return '体验购课'; default: return ''; } @@ -122,7 +192,7 @@ RegistrationRecord.holiClass = function () { if (this.check1()) { var ids = RegistrationRecord.seItem1.map(function(item) { - return item.id; + return item.studentId; }).join(","); let index = layer.open({ type: 2, @@ -139,7 +209,7 @@ RegistrationRecord.transClass = function () { if (this.check()) { var ids = RegistrationRecord.seItem1.map(function(item) { - return item.id; + return item.studentId; }).join(","); let index = layer.open({ type: 2, diff --git a/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js b/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js index 155328e..8c6b42d 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js @@ -399,6 +399,37 @@ } ajax.set("id",oneId); ajax.start(); + + + + var ajax1 = new $ax(Feng.ctxPath + "/cpPayment/getCoursePackageType", function(data){ + if(data!=null){ + console.log("data ===="+data) + if (data != 1){ + document.getElementById("toHidden").style.display = "none"; + + var selectElement = document.getElementById('courseTime'); + var selectedOption = selectElement.options[1]; + console.log("插入") + var cashPayment = selectedOption.getAttribute('data-cashpayment'); + var playPaiCoin = selectedOption.getAttribute('data-playpaicoin'); + console.log(cashPayment) + console.log(playPaiCoin) + $("#cashPayment").val(cashPayment); + $("#playPaiCoin").val(playPaiCoin); + + + }else { + document.getElementById("toHidden").style.display = "block"; + + } + + } + }); + + ajax1.set("id",oneId); + ajax1.start(); + }; TQuestion.getCoursePackagePrice = function (e) { var c1 = document.getElementById("c1"); @@ -501,7 +532,7 @@ maxmin: true, content: Feng.ctxPath + '/appUser/add' }); - layer.closeAll('page'); + // layer.closeAll('page'); }, btn2:function () { } @@ -539,7 +570,7 @@ maxmin: true, content: Feng.ctxPath + '/appUser/addStudent/'+appUserId }); - layer.closeAll('page'); + // layer.closeAll('page'); }, }); } diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetitionUser.js b/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetitionUser.js index ff7d1a6..ff63c31 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetitionUser.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetitionUser.js @@ -12,9 +12,14 @@ * 初始化表格的列 */ TCompetition.initColumn = function () { + var index = 0 + return [ {field: 'selectItem', radio: true}, - {title: '序号', field: 'id', visible: true, align: 'center', valign: 'middle'}, + {title: '序号', field: 'id', visible: false, align: 'center', valign: 'middle',value:index+1}, + {title: '序号', valign: 'middle', formatter: function (value, row, index) { + return index + 1; // 使用行索引作为序号值 + }}, {title: '姓名', field: 'name', visible: true, align: 'center', valign: 'middle',width:'8%', }, {title: '性别', field: 'sex', visible: true, align: 'center', valign: 'middle', @@ -236,7 +241,7 @@ $(function () { var defaultColunms = TCompetition.initColumn(); var table = new BSTable(TCompetition.id, "/tCompetition/listUser/"+$("#id").val(), defaultColunms); - table.setPaginationType("server"); + table.setPaginationType("client"); TCompetition.table = table.init(); }); diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition_info.js index 3be94d2..bc9e345 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition_info.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition_info.js @@ -780,7 +780,7 @@ var marker; //搜索地图 TCarInfoDlg.searchByStationName = function(e,type){ - var keyword="成都"; + var keyword=""; if(type==2){ keyword = $(e).parent().prev().find("input").val(); }else { diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCompetitionAudit/tCompetition_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tCompetitionAudit/tCompetition_info.js index c7bda54..661344e 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/tCompetitionAudit/tCompetition_info.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/tCompetitionAudit/tCompetition_info.js @@ -523,7 +523,7 @@ var marker; //搜索地图 TCarInfoDlg.searchByStationName = function(e,type){ - var keyword="成都"; + var keyword=""; if(type==2){ keyword = $(e).parent().prev().find("input").val(); }else { diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java index 630a5d1..a5649bd 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java +++ b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java @@ -125,8 +125,8 @@ for (Store store : storeList) { String storeLon = store.getLon(); String storeLat = store.getLat(); - String result = storeLon + "," + storeLat; - String distanceTOKilometer = gdMapGeocodingUtil.getDistanceTOKilometer(current, result); +// String result = storeLon + "," + storeLat; +// String distanceTOKilometer = gdMapGeocodingUtil.getDistanceTOKilometer(current, result); long l = 0; // try { // l = Long.parseLong(distanceTOKilometer); @@ -137,7 +137,11 @@ info.setStoreId(store.getId()); info.setStoreName(store.getName()); info.setStoreImg(store.getCoverDrawing()); - info.setDistance((long) Double.parseDouble(distanceTOKilometer)); +// info.setDistance( Double.parseDouble(distanceTOKilometer)); + + Map<String, Double> distance = GeodesyUtil.getDistance(list.getLongitude() + "," + list.getLatitude(), storeLon + "," + storeLat); + double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + info.setDistance(wgs84); String str = store.getAddress(); diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java index 71178dc..91f38b6 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java +++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java @@ -14,7 +14,7 @@ private String storeImg; @ApiModelProperty(value = "门店距离当前位置") - private long distance; + private double distance; @ApiModelProperty(value = "门店名称") private String storeName; diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java index 4b95453..e05a3f2 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java +++ b/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.concurrent.TimeUnit; @@ -29,15 +30,28 @@ @Scheduled(fixedRate = 60000) public void taskMinute() { try { + Date date = new Date(); // 要增加的日期 + List<SiteBooking> siteBookings = siteBookingMapper. selectList(new LambdaQueryWrapper<SiteBooking>().eq(SiteBooking::getStatus, 0)); for (SiteBooking siteBooking : siteBookings) { - long time = siteBooking.getInsertTime().getTime(); - long l = time + 1800 * 1000; - if (System.currentTimeMillis() > l) { + + Date insert = siteBooking.getInsertTime(); + // 创建 Calendar 对象,并设置为指定的日期 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(insert); + + // 增加 30 分钟 + calendar.add(Calendar.MINUTE, 30); + + // 获取增加后的日期 + Date newDate = calendar.getTime(); + +// long time = siteBooking.getInsertTime().getTime(); +// long l = time + 1800 * 1000; + if (date.after(newDate)) { siteBooking.setStatus(5); siteBookingMapper.updateById(siteBooking); -// siteBookingMapper.deleteById(siteBooking.getId()); } } //定时修改赛事状态 diff --git a/logs/mb-cloud-management/2023-10/debug.2023-10-11.0.log34100332372300.tmp b/logs/mb-cloud-management/2023-10/debug.2023-10-11.0.log34100332372300.tmp new file mode 100644 index 0000000..1bb311e --- /dev/null +++ b/logs/mb-cloud-management/2023-10/debug.2023-10-11.0.log34100332372300.tmp @@ -0,0 +1,74 @@ +2023-10-11 10:42:01,711 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@630cb4a4, started on Wed Oct 11 10:00:08 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 11:12:01,311 [http-nio-5006-exec-6] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.activity.CouponClient.getCouponExamineListOfSearch] serviceId:[mb-cloud-activity] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 11:17:18,732 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 10:52:09 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 13:04:45,841 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 11:17:30 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 14:37:27,416 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@630cb4a4, started on Wed Oct 11 14:04:14 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 15:00:00,774 [http-nio-5006-exec-4] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.activity.CouponClient.getCouponExamineListOfSearch] serviceId:[mb-cloud-activity] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 15:21:40,777 [main] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 15:21:26 CST 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 15:25:33,407 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@636e8cc, started on Wed Oct 11 15:24:45 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 15:29:49,630 [http-nio-5006-exec-5] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.activity.CouponClient.getCouponListOfSearch1] serviceId:[mb-cloud-activity] message:[[404 Not Found] during [POST] to [http://mb-cloud-activity/base/coupon/queryCouponListSearch1] [CouponClient#getCouponListOfSearch1(CouponListOfSearch)]: [{"timestamp":1697009387060,"status":404,"error":"Not Found","message":"","path":"/base/coupon/queryCouponListSearch1"}]] +2023-10-11 15:30:07,640 [http-nio-5006-exec-8] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.activity.CouponClient.getCouponListOfSearch1] serviceId:[mb-cloud-activity] message:[[404 Not Found] during [POST] to [http://mb-cloud-activity/base/coupon/queryCouponListSearch1] [CouponClient#getCouponListOfSearch1(CouponListOfSearch)]: [{"timestamp":1697009405074,"status":404,"error":"Not Found","message":"","path":"/base/coupon/queryCouponListSearch1"}]] +2023-10-11 15:30:30,525 [http-nio-5006-exec-7] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.activity.CouponClient.getCouponListOfSearch1] serviceId:[mb-cloud-activity] message:[[404 Not Found] during [POST] to [http://mb-cloud-activity/base/coupon/queryCouponListSearch1] [CouponClient#getCouponListOfSearch1(CouponListOfSearch)]: [{"timestamp":1697009427960,"status":404,"error":"Not Found","message":"","path":"/base/coupon/queryCouponListSearch1"}]] +2023-10-11 15:31:46,438 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 15:25:50 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 15:33:01,404 [http-nio-5006-exec-9] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.activity.CouponClient.getCouponListOfSearch1] serviceId:[mb-cloud-activity] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 15:33:02,476 [http-nio-5006-exec-8] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.activity.CouponClient.getCouponListOfSearch1] serviceId:[mb-cloud-activity] message:[[404 Not Found] during [POST] to [http://mb-cloud-activity/base/coupon/queryCouponListSearch1] [CouponClient#getCouponListOfSearch1(CouponListOfSearch)]: [{"timestamp":1697009579906,"status":404,"error":"Not Found","message":"","path":"/base/coupon/queryCouponListSearch1"}]] +2023-10-11 15:33:03,541 [http-nio-5006-exec-5] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.activity.CouponClient.getCouponListOfSearch1] serviceId:[mb-cloud-activity] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 15:34:40,353 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@636e8cc, started on Wed Oct 11 15:31:49 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 16:14:26,926 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@56c9bbd8, started on Wed Oct 11 15:34:45 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-11 16:36:33,117 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Wed Oct 11 16:14:32 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 16:38:47,411 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 16:36:42 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 16:39:23,707 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@636e8cc, started on Wed Oct 11 16:38:51 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 16:41:01,654 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 16:39:27 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 16:41:32,495 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 16:41:05 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 16:43:18,813 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 16:41:36 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 16:44:40,014 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Wed Oct 11 16:43:22 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 16:47:19,395 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@239b0f9d, started on Wed Oct 11 16:44:47 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 16:48:41,320 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Wed Oct 11 16:47:25 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 16:50:18,514 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 16:48:45 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 16:54:41,066 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 16:50:22 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 16:57:42,185 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 16:54:44 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 16:59:02,086 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@630cb4a4, started on Wed Oct 11 16:57:47 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 17:00:37,307 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@636e8cc, started on Wed Oct 11 16:59:06 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 17:02:39,358 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@636e8cc, started on Wed Oct 11 17:00:41 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 17:03:10,895 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 17:02:43 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 17:05:21,061 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 17:04:16 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 17:06:49,223 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Wed Oct 11 17:05:24 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 17:28:41,289 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@636e8cc, started on Wed Oct 11 17:06:55 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 18:12:02,105 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Wed Oct 11 17:43:33 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 18:13:35,366 [http-nio-5006-exec-6] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.getStudentTotal] serviceId:[mb-cloud-course] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 18:13:48,845 [http-nio-5006-exec-10] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.getStudentTotal] serviceId:[mb-cloud-course] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 18:13:49,046 [http-nio-5006-exec-7] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.getStudentTotal] serviceId:[mb-cloud-course] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 18:14:37,044 [http-nio-5006-exec-2] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.getStudentTotal] serviceId:[mb-cloud-course] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 18:17:29,139 [http-nio-5006-exec-4] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.getStudentTotal] serviceId:[mb-cloud-course] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 18:17:30,037 [http-nio-5006-exec-1] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.getStudentTotal] serviceId:[mb-cloud-course] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 18:17:34,160 [http-nio-5006-exec-9] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.getStudentTotal] serviceId:[mb-cloud-course] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 18:17:43,198 [http-nio-5006-exec-5] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.getStudentTotal] serviceId:[mb-cloud-course] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 18:25:09,349 [http-nio-5006-exec-4] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackagePaymentClient.listAll] serviceId:[mb-cloud-course] message:[Error while extracting response for type [java.util.List<com.dsh.guns.modular.system.model.CoursePackagePaymentVO>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<com.dsh.guns.modular.system.model.CoursePackagePaymentVO>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<com.dsh.guns.modular.system.model.CoursePackagePaymentVO>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 18:56:59,713 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Wed Oct 11 18:34:48 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 18:57:43,154 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@636e8cc, started on Wed Oct 11 18:57:04 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@66d3eec0 +2023-10-11 18:59:42,776 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 18:57:47 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 19:01:19,739 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Wed Oct 11 18:59:46 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 19:02:46,608 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Wed Oct 11 19:01:23 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 19:09:28,048 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Wed Oct 11 19:02:50 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 19:12:09,605 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@630cb4a4, started on Wed Oct 11 19:09:37 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-11 19:13:59,445 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 19:12:13 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 19:14:56,731 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 19:14:02 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 19:15:53,909 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 19:15:00 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 19:17:48,328 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Wed Oct 11 19:15:57 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-11 19:26:56,466 [http-nio-5006-exec-6] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.getStudentTotal] serviceId:[mb-cloud-course] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-11 19:27:18,070 [http-nio-5006-exec-1] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.getStudentTotal] serviceId:[mb-cloud-course] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] diff --git a/logs/mb-cloud-management/2023-10/debug.2023-10-17.0.log1492349991300.tmp b/logs/mb-cloud-management/2023-10/debug.2023-10-17.0.log1492349991300.tmp new file mode 100644 index 0000000..caceb85 --- /dev/null +++ b/logs/mb-cloud-management/2023-10/debug.2023-10-17.0.log1492349991300.tmp @@ -0,0 +1,99 @@ +2023-10-17 08:58:36,598 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Mon Oct 16 19:02:50 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 09:38:40,971 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@56c9bbd8, started on Tue Oct 17 08:58:57 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-17 09:46:02,805 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 09:38:49 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 09:46:59,811 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 09:46:10 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 09:48:01,910 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 09:47:03 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 09:48:56,794 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 09:48:09 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 09:50:44,323 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 09:49:04 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 09:52:23,786 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 09:50:54 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 09:54:19,605 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 09:52:33 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 09:55:24,390 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 09:54:27 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 09:56:30,060 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 09:55:31 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 09:56:48,937 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 09:56:38 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 09:59:18,623 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 09:56:56 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 10:11:34,838 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 09:59:25 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 10:12:55,562 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5e39850, started on Tue Oct 17 10:11:52 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@4aa83f4f +2023-10-17 10:14:32,741 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 10:12:59 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 10:15:22,663 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 10:14:40 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 10:17:49,020 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@99a78d7, started on Tue Oct 17 10:15:27 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@4aa83f4f +2023-10-17 10:19:06,852 [http-nio-5006-exec-10] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.other.SiteClient.addSite] serviceId:[mb-cloud-other] message:[Error while extracting response for type [class java.lang.Integer] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.lang.Integer` out of VALUE_TRUE token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.Integer` out of VALUE_TRUE token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-17 10:19:31,680 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4ae263bf, started on Tue Oct 17 10:17:56 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@4aa83f4f +2023-10-17 10:32:20,075 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 10:19:39 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 10:33:31,122 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 10:32:29 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 10:35:04,183 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 10:33:34 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 10:41:56,896 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 10:35:07 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 10:43:55,268 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 10:42:03 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 10:44:49,220 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 10:43:59 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 10:45:39,349 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 10:44:52 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 10:46:16,256 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 10:45:43 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 10:47:06,959 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 10:46:19 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 10:48:54,167 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 10:47:10 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 10:59:14,998 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 10:48:57 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 11:00:48,778 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@56c9bbd8, started on Tue Oct 17 10:59:21 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-17 11:06:21,647 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 11:00:56 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 11:08:40,396 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 11:06:25 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 11:13:42,821 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 11:08:48 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 11:15:18,000 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@398474a2, started on Tue Oct 17 11:13:51 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@4aa83f4f +2023-10-17 11:19:49,059 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 11:15:21 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 11:21:16,623 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 11:19:56 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 11:22:49,527 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 11:21:25 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 11:37:21,719 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 11:22:52 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 11:52:21,214 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 11:44:44 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 11:56:34,905 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 11:52:25 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 12:02:42,420 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 11:56:38 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 12:05:25,072 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 12:02:46 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 12:06:45,621 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 12:05:29 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 12:07:49,471 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 12:06:49 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 12:09:03,961 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 12:07:52 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 12:09:19,609 [main] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@630cb4a4, started on Tue Oct 17 12:09:10 CST 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 12:09:20,682 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@37fdfb05, started on Tue Oct 17 12:09:08 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@4aa83f4f +2023-10-17 12:10:56,844 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@654d8173, started on Tue Oct 17 12:09:31 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-17 12:12:25,762 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 12:11:00 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 12:13:31,837 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 12:12:29 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 12:15:44,030 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 12:13:35 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 12:16:33,971 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 12:15:47 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 12:17:36,323 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 12:16:37 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 12:26:51,285 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 12:17:40 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 12:27:28,498 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@56c9bbd8, started on Tue Oct 17 12:26:56 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-17 12:30:37,218 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 12:27:32 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 14:05:59,564 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@636e8cc, started on Tue Oct 17 12:30:40 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 14:17:11,759 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@56c9bbd8, started on Tue Oct 17 14:14:11 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-17 14:21:37,613 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@56c9bbd8, started on Tue Oct 17 14:17:18 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-17 14:22:33,743 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@56c9bbd8, started on Tue Oct 17 14:21:44 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-17 14:24:50,971 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 14:22:38 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 14:25:51,098 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@654d8173, started on Tue Oct 17 14:24:56 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-17 14:27:50,647 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 14:25:54 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 14:34:13,000 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@654d8173, started on Tue Oct 17 14:27:56 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-17 14:46:02,122 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 14:44:28 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 14:48:32,838 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 14:46:19 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 14:50:11,607 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@636e8cc, started on Tue Oct 17 14:49:06 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 14:51:42,232 [http-nio-5006-exec-3] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.auth.UserClient.getToken] serviceId:[mb-cloud-auth] message:[com.netflix.client.ClientException: Load balancer does not have available server for client: mb-cloud-auth] +2023-10-17 14:52:32,850 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 14:51:14 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 14:54:48,786 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 14:53:29 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 15:00:41,884 [http-nio-5006-exec-3] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.activity.CouponClient.getCouponExamineListOfSearch] serviceId:[mb-cloud-activity] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-17 15:05:24,894 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 14:57:07 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 15:20:23,501 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 15:18:59 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 15:31:59,613 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 15:20:40 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 15:59:21,906 [http-nio-5006-exec-10] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.getStudentTotal] serviceId:[mb-cloud-course] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-17 16:33:31,477 [http-nio-5006-exec-2] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.activity.CouponClient.getCouponExamineListOfSearch] serviceId:[mb-cloud-activity] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token + at [Source: (PushbackInputStream); line: 1, column: 1]] +2023-10-17 16:55:41,579 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@56c9bbd8, started on Tue Oct 17 15:32:08 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-17 16:59:49,522 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@636e8cc, started on Tue Oct 17 16:56:17 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 17:03:46,070 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 16:59:58 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 17:07:21,389 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 17:06:00 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 17:09:22,044 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 17:07:30 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 17:24:08,564 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 17:09:27 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 17:33:37,787 [http-nio-5006-exec-2] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.activity.PointMercharsClient.ticketList] serviceId:[mb-cloud-activity] message:[Read timed out executing POST http://mb-cloud-activity/base/pointMerchars/ticketList] +2023-10-17 17:47:23,588 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@654d8173, started on Tue Oct 17 17:24:14 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-17 17:49:02,748 [http-nio-5006-exec-6] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackagePaymentClient.queryRegistrationRecord] serviceId:[mb-cloud-course] message:[Read timed out executing POST http://mb-cloud-course/coursePackagePayment/queryRegistrationRecord] +2023-10-17 18:00:24,191 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 17:47:30 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 18:03:46,777 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 18:00:36 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 18:04:56,313 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Tue Oct 17 18:03:52 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-17 18:06:06,219 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 18:05:00 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 18:07:05,824 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 18:06:09 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 18:08:07,776 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 18:07:09 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 18:18:52,551 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Tue Oct 17 18:08:11 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-17 18:22:10,433 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@239b0f9d, started on Tue Oct 17 18:18:56 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a diff --git a/logs/mb-cloud-management/2023-10/debug.2023-10-21.0.log3887694707600.tmp b/logs/mb-cloud-management/2023-10/debug.2023-10-21.0.log3887694707600.tmp new file mode 100644 index 0000000..7ba0489 --- /dev/null +++ b/logs/mb-cloud-management/2023-10/debug.2023-10-21.0.log3887694707600.tmp @@ -0,0 +1,23 @@ +2023-10-21 09:39:15,989 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Sat Oct 21 09:33:08 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-21 09:53:47,560 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@87abc48, started on Sat Oct 21 09:39:25 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@4aa83f4f +2023-10-21 10:57:18,079 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1603dc2f, started on Sat Oct 21 09:53:59 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@4aa83f4f +2023-10-21 12:35:32,369 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Sat Oct 21 11:11:21 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-21 12:42:29,046 [http-nio-5006-exec-6] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.auth.UserClient.getToken] serviceId:[mb-cloud-auth] message:[com.netflix.client.ClientException: Load balancer does not have available server for client: mb-cloud-auth] +2023-10-21 13:06:58,851 [http-nio-5006-exec-10] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.account.CityManagerClient.listAll] serviceId:[mb-cloud-account] message:[com.netflix.client.ClientException: Load balancer does not have available server for client: mb-cloud-account] +2023-10-21 13:07:02,771 [http-nio-5006-exec-7] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.account.CityManagerClient.listAll] serviceId:[mb-cloud-account] message:[com.netflix.client.ClientException: Load balancer does not have available server for client: mb-cloud-account] +2023-10-21 14:09:48,139 [http-nio-5006-exec-8] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.account.CityManagerClient.listAll] serviceId:[mb-cloud-account] message:[com.netflix.client.ClientException: Load balancer does not have available server for client: mb-cloud-account] +2023-10-21 14:11:56,173 [http-nio-5006-exec-2] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.account.CityManagerClient.listAll] serviceId:[mb-cloud-account] message:[com.netflix.client.ClientException: Load balancer does not have available server for client: mb-cloud-account] +2023-10-21 14:11:57,842 [http-nio-5006-exec-4] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.account.CityManagerClient.listAll] serviceId:[mb-cloud-account] message:[com.netflix.client.ClientException: Load balancer does not have available server for client: mb-cloud-account] +2023-10-21 14:14:39,927 [http-nio-5006-exec-5] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.account.CityManagerClient.listAll] serviceId:[mb-cloud-account] message:[com.netflix.client.ClientException: Load balancer does not have available server for client: mb-cloud-account] +2023-10-21 14:14:45,485 [http-nio-5006-exec-10] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.account.CityClient.list] serviceId:[mb-cloud-account] message:[com.netflix.client.ClientException: Load balancer does not have available server for client: mb-cloud-account] +2023-10-21 14:15:27,332 [http-nio-5006-exec-9] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.account.CityManagerClient.listAll] serviceId:[mb-cloud-account] message:[com.netflix.client.ClientException: Load balancer does not have available server for client: mb-cloud-account] +2023-10-21 14:15:37,846 [http-nio-5006-exec-2] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.account.CityManagerClient.listAll] serviceId:[mb-cloud-account] message:[com.netflix.client.ClientException: Load balancer does not have available server for client: mb-cloud-account] +2023-10-21 14:17:29,434 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@56c9bbd8, started on Sat Oct 21 12:41:31 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-21 14:18:44,137 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Sat Oct 21 14:17:41 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-21 14:22:35,264 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Sat Oct 21 14:18:54 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1af2d44a +2023-10-21 14:36:39,294 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Sat Oct 21 14:22:40 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-21 14:59:59,916 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@f79a760, started on Sat Oct 21 14:36:45 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@1e04fa0a +2023-10-21 15:03:00,304 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@14f5da2c, started on Sat Oct 21 15:00:10 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-21 17:30:01,010 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@56c9bbd8, started on Sat Oct 21 15:03:09 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-21 17:33:39,746 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@56c9bbd8, started on Sat Oct 21 17:30:16 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df +2023-10-21 17:36:52,690 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@56c9bbd8, started on Sat Oct 21 17:33:53 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@614ca7df diff --git a/logs/mb-cloud-management/2023-10/debug.2023-10-28.0.log3610732711500.tmp b/logs/mb-cloud-management/2023-10/debug.2023-10-28.0.log3610732711500.tmp new file mode 100644 index 0000000..e48d08d --- /dev/null +++ b/logs/mb-cloud-management/2023-10/debug.2023-10-28.0.log3610732711500.tmp @@ -0,0 +1,43 @@ +2023-10-28 09:35:14,527 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@42435b98, started on Sat Oct 28 09:23:07 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 09:36:59,276 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@2a49fe, started on Sat Oct 28 09:35:24 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 09:53:37,496 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3c7cfcbb, started on Sat Oct 28 09:37:07 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 09:53:58,672 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@24fabd0f, started on Sat Oct 28 09:53:44 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 09:55:05,021 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@198ef2ce, started on Sat Oct 28 09:54:02 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 09:56:36,606 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@27b000f7, started on Sat Oct 28 09:55:09 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 10:02:14,321 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@2787de58, started on Sat Oct 28 09:56:41 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 10:04:15,167 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@198ef2ce, started on Sat Oct 28 10:02:19 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 15:31:21,383 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@2787de58, started on Sat Oct 28 10:04:19 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 15:37:59,696 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@476ec9d0, started on Sat Oct 28 15:31:33 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 15:40:31,476 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@55cff952, started on Sat Oct 28 15:38:08 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 15:57:42,737 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@476ec9d0, started on Sat Oct 28 15:40:39 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@70ab2d48 +2023-10-28 16:07:55,857 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@476ec9d0, started on Sat Oct 28 15:57:48 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 16:14:43,815 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@65bb9029, started on Sat Oct 28 16:08:02 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 16:15:10,086 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@37fdfb05, started on Sat Oct 28 16:14:47 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 16:16:32,724 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@2227a6c1, started on Sat Oct 28 16:15:14 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 16:19:04,008 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1f193686, started on Sat Oct 28 16:16:36 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 16:21:43,873 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1948ea69, started on Sat Oct 28 16:19:07 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 16:25:22,734 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@476ec9d0, started on Sat Oct 28 16:21:48 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 16:43:33,379 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5dbf5634, started on Sat Oct 28 16:25:26 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 16:47:06,276 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@398474a2, started on Sat Oct 28 16:43:39 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 16:49:19,541 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@61799544, started on Sat Oct 28 16:47:10 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 16:51:42,421 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@398474a2, started on Sat Oct 28 16:49:23 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 16:56:36,738 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4abf3f0, started on Sat Oct 28 16:51:46 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 16:59:36,947 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@432034a, started on Sat Oct 28 16:56:40 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:10:17,792 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6a10b263, started on Sat Oct 28 16:59:42 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:10:37,521 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@2787de58, started on Sat Oct 28 17:10:23 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:12:06,635 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@398474a2, started on Sat Oct 28 17:10:41 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:12:31,334 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@54f66455, started on Sat Oct 28 17:12:10 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:14:28,414 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@385ef531, started on Sat Oct 28 17:12:35 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:15:28,494 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@61f3fbb8, started on Sat Oct 28 17:14:32 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:16:54,189 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@325bb9a6, started on Sat Oct 28 17:15:33 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:17:59,526 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@37fdfb05, started on Sat Oct 28 17:16:58 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:21:13,272 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@2bc9a775, started on Sat Oct 28 17:18:03 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:23:28,353 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@37fdfb05, started on Sat Oct 28 17:21:17 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:25:52,474 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6d171ce0, started on Sat Oct 28 17:24:43 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:26:18,240 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@70e3f36f, started on Sat Oct 28 17:26:07 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:34:07,407 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@41f35f7c, started on Sat Oct 28 17:26:22 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:36:31,179 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@2bc9a775, started on Sat Oct 28 17:34:13 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:41:03,794 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@65bb9029, started on Sat Oct 28 17:36:35 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:43:41,673 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4cbd03e7, started on Sat Oct 28 17:41:10 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@3300f4fd +2023-10-28 17:47:04,318 [http-nio-5006-exec-1] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.queryCoursePackageLists] serviceId:[mb-cloud-course] message:[Read timed out executing POST http://mb-cloud-course/coursePackage/queryCoursePackageLists] +2023-10-28 17:57:38,289 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6d4c273c, started on Sat Oct 28 17:43:45 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@70ab2d48 -- Gitblit v1.7.1