From a30f3b966f6b3c1748d2976364369596327cbfba Mon Sep 17 00:00:00 2001 From: liujie <liujie> Date: 星期一, 21 八月 2023 17:40:04 +0800 Subject: [PATCH] 后台代码 积分商品 --- cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountList.java | 23 cloud-server-management/mb-cloud-management.iml | 2 cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java | 5 cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_two.html | 396 +++ cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/QueryDiscountList.java | 25 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountUpdateState.java | 14 .idea/workspace.xml | 463 +++ cloud-server-account/mb-cloud-account.iml | 183 + cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml | 6 cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js | 446 +++ cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/AuditDiscount.java | 16 cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java | 6 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 10 cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount.js | 358 +++ cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java | 38 cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_edit.html | 98 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 64 cloud-server-auth/mb-cloud-auth.iml | 4 cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java | 4 cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount_info.js | 320 ++ cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/coursePackageDiscount.js | 819 +++++++ cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java | 7 cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java | 104 cloud-server-activity/mb-cloud-activity.iml | 162 + cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java | 5 cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tCity_info.js | 320 ++ cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java | 1 cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_edit.html | 98 cloud-server-course/src/main/java/com/dsh/course/model/AuditDiscount.java | 16 cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java | 172 + cloud-server-course/src/main/java/com/dsh/course/model/DiscountUpdateState.java | 14 cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java | 1 cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml | 38 cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TDiscount.html | 79 cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js | 2 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java | 36 cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_add.html | 83 cloud-server-course/src/main/java/com/dsh/course/model/DiscountList.java | 23 cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html | 252 ++ cloud-server-course/src/main/java/com/dsh/course/model/QueryDiscountList.java | 25 cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java | 18 cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/coursePackageDiscount.html | 105 cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TDiscount.html | 80 cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount_info.js | 320 ++ cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java | 3 cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_add.html | 83 cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount.js | 433 +++ cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageDiscountMapper.java | 8 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java | 6 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TDiscountController.java | 382 +++ cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java | 4 cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml | 3 /dev/null | 13 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html | 2 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java | 68 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java | 182 + cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/coursePackageDiscount.html | 88 57 files changed, 6,305 insertions(+), 231 deletions(-) diff --git a/.idea/libraries/Maven__com_huaweicloud_esdk_obs_java_bundle_3_23_3.xml b/.idea/libraries/Maven__com_huaweicloud_esdk_obs_java_bundle_3_23_3.xml deleted file mode 100644 index 83bc299..0000000 --- a/.idea/libraries/Maven__com_huaweicloud_esdk_obs_java_bundle_3_23_3.xml +++ /dev/null @@ -1,13 +0,0 @@ -<component name="libraryTable"> - <library name="Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.3"> - <CLASSES> - <root url="jar://$MAVEN_REPOSITORY$/com/huaweicloud/esdk-obs-java-bundle/3.23.3/esdk-obs-java-bundle-3.23.3.jar!/" /> - </CLASSES> - <JAVADOC> - <root url="jar://$MAVEN_REPOSITORY$/com/huaweicloud/esdk-obs-java-bundle/3.23.3/esdk-obs-java-bundle-3.23.3-javadoc.jar!/" /> - </JAVADOC> - <SOURCES> - <root url="jar://$MAVEN_REPOSITORY$/com/huaweicloud/esdk-obs-java-bundle/3.23.3/esdk-obs-java-bundle-3.23.3-sources.jar!/" /> - </SOURCES> - </library> -</component> \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index f2ab91c..42c1997 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -20,19 +20,63 @@ </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/webapp/static/modular/system/tCity/tCity.js" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tCity/tCity_info.js" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/model/AuditDiscount.java" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/model/DiscountList.java" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/model/DiscountUpdateState.java" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/model/QueryDiscountList.java" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/AuditDiscount.java" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountList.java" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountUpdateState.java" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/QueryDiscountList.java" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TDiscountController.java" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_add.html" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_edit.html" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TDiscount.html" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/coursePackageDiscount.html" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_add.html" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_edit.html" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TDiscount.html" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/coursePackageDiscount.html" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_two.html" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount.js" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount_info.js" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/coursePackageDiscount.js" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tCity_info.js" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount.js" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount_info.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_huaweicloud_esdk_obs_java_bundle_3_23_3.xml" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/cloud-server-account/mb-cloud-account.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/mb-cloud-account.iml" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/entity/TCityManager.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/entity/TCityManager.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/cloud-server-activity/mb-cloud-activity.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/mb-cloud-activity.iml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/cloud-server-auth/mb-cloud-auth.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-auth/mb-cloud-auth.iml" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageDiscountMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageDiscountMapper.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.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" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/mb-cloud-management.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/mb-cloud-management.iml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tCar/tCar_info.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tCar/tCar_info.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js" afterDir="false" /> </list> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> @@ -81,32 +125,33 @@ <property name="WebServerToolWindowFactoryState" value="false" /> <property name="aspect.path.notification.shown" value="true" /> <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1686656087610" /> - <property name="last_opened_file_path" value="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods" /> <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> <property name="nodejs_npm_path_reset_for_default_project" value="true" /> + <property name="nodejs_package_manager_path" value="npm" /> <property name="project.structure.last.edited" value="Global Libraries" /> <property name="project.structure.proportion" value="0.0" /> <property name="project.structure.side.proportion" value="0.2" /> <property name="run.code.analysis.last.selected.profile" value="pProject Default" /> - <property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" /> + <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> </component> <component name="ReactorSettings"> <option name="notificationShown" value="true" /> </component> <component name="RecentsManager"> <key name="CopyClassDialog.RECENTS_KEY"> + <recent name="com.dsh.course.feignClient.activity.model" /> + <recent name="com.dsh.guns.modular.system.controller.code" /> + <recent name="com.dsh.account.entity" /> <recent name="com.dsh.course.feignClient.account.model" /> - <recent name="com.dsh.account.mapper" /> - <recent name="com.dsh.account.service.impl" /> - <recent name="com.dsh.account.service" /> - <recent name="com.dsh.account.controller" /> + <recent name="com.dsh.course.feignClient.account" /> </key> <key name="CopyFile.RECENT_KEYS"> + <recent name="F:\code\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system\tGoods" /> + <recent name="F:\code\PlayPai\cloud-server-management\src\main\webapp\static\modular\system\tDiscountAudit" /> + <recent name="F:\code\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system\tDiscountAudit" /> + <recent name="F:\code\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system\tDiscount" /> <recent name="F:\code\PlayPai\cloud-server-management\src\main\webapp\static\modular\system" /> - <recent name="F:\code\PlayPai\cloud-server-account\src\main\resources\mapper" /> - <recent name="F:\code\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system" /> - <recent name="F:\code\PlayPai\cloud-server-competition\src\main\java\com\dsh" /> - <recent name="F:\code\PlayPai\cloud-server-management\src\main\resources\mapper" /> </key> </component> <component name="RunDashboard"> @@ -116,7 +161,34 @@ </set> </option> </component> - <component name="RunManager" selected="Spring Boot.AccountApplication"> + <component name="RunManager" selected="Spring Boot.ActivityApplication"> + <configuration name="SiteServiceImpl" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> + <option name="MAIN_CLASS_NAME" value="com.dsh.other.service.impl.SiteServiceImpl" /> + <module name="mb-cloud-other" /> + <extension name="coverage"> + <pattern> + <option name="PATTERN" value="com.dsh.other.service.impl.*" /> + <option name="ENABLED" value="true" /> + </pattern> + </extension> + <method v="2"> + <option name="Make" enabled="true" /> + </method> + </configuration> + <configuration name="TCoursePackageDiscountServiceImpl" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> + <option name="MAIN_CLASS_NAME" value="com.dsh.course.service.impl.TCoursePackageDiscountServiceImpl" /> + <module name="mb-cloud-course" /> + <shortenClasspath name="MANIFEST" /> + <extension name="coverage"> + <pattern> + <option name="PATTERN" value="com.dsh.course.service.impl.*" /> + <option name="ENABLED" value="true" /> + </pattern> + </extension> + <method v="2"> + <option name="Make" enabled="true" /> + </method> + </configuration> <configuration name="AccountApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> <module name="mb-cloud-account" /> <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.AccountApplication" /> @@ -137,6 +209,8 @@ <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="ALTERNATIVE_JRE_PATH" /> + <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" /> <method v="2"> <option name="Make" enabled="true" /> </method> @@ -158,8 +232,17 @@ </method> </configuration> <configuration name="CourseApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> - <module name="mb-cloud-competition (1)" /> + <module name="mb-cloud-course" /> <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.CourseApplication" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" /> + <method v="2"> + <option name="Make" enabled="true" /> + </method> + </configuration> + <configuration name="GatewayApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> + <module name="mb-cloud-gateway" /> + <option name="SPRING_BOOT_MAIN_CLASS" value="cn.mb.cloud.gateway.GatewayApplication" /> <method v="2"> <option name="Make" enabled="true" /> </method> @@ -174,22 +257,31 @@ <option name="Make" enabled="true" /> </method> </configuration> - <configuration name="UserApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> - <module name="mb-cloud-user" /> - <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.UserApplication" /> + <configuration name="OtherApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> + <module name="mb-cloud-other" /> + <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.OtherApplication" /> <method v="2"> <option name="Make" enabled="true" /> </method> </configuration> <list> - <item itemvalue="Spring Boot.UserApplication" /> + <item itemvalue="Application.SiteServiceImpl" /> + <item itemvalue="Spring Boot.OtherApplication" /> <item itemvalue="Spring Boot.ManagementApplication" /> + <item itemvalue="Spring Boot.CourseApplication" /> <item itemvalue="Spring Boot.AuthApplication" /> <item itemvalue="Spring Boot.AccountApplication" /> <item itemvalue="Spring Boot.ActivityApplication" /> <item itemvalue="Spring Boot.CompetitionApplication" /> - <item itemvalue="Spring Boot.CourseApplication" /> + <item itemvalue="Spring Boot.GatewayApplication" /> + <item itemvalue="Application.TCoursePackageDiscountServiceImpl" /> </list> + <recent_temporary> + <list> + <item itemvalue="Application.TCoursePackageDiscountServiceImpl" /> + <item itemvalue="Application.SiteServiceImpl" /> + </list> + </recent_temporary> </component> <component name="SvnConfiguration"> <configuration /> @@ -203,7 +295,10 @@ <updated>1686653431962</updated> <workItem from="1686653433491" duration="2267000" /> <workItem from="1690190039038" duration="16883000" /> - <workItem from="1690333209172" duration="26986000" /> + <workItem from="1690333209172" duration="37432000" /> + <workItem from="1690506886062" duration="129213000" /> + <workItem from="1691629008213" duration="17159000" /> + <workItem from="1691715760657" duration="60870000" /> </task> <task id="LOCAL-00001" summary="后台代码删除"> <created>1690249807612</created> @@ -296,7 +391,126 @@ <option name="project" value="LOCAL" /> <updated>1690364506501</updated> </task> - <option name="localTasksCounter" value="14" /> + <task id="LOCAL-00014" summary="后台代码城市管理"> + <created>1690367017156</created> + <option name="number" value="00014" /> + <option name="presentableId" value="LOCAL-00014" /> + <option name="project" value="LOCAL" /> + <updated>1690367017156</updated> + </task> + <task id="LOCAL-00015" summary="后台代码 城市管理模块"> + <created>1690452085027</created> + <option name="number" value="00015" /> + <option name="presentableId" value="LOCAL-00015" /> + <option name="project" value="LOCAL" /> + <updated>1690452085027</updated> + </task> + <task id="LOCAL-00016" summary="时间获取修改"> + <created>1690512731290</created> + <option name="number" value="00016" /> + <option name="presentableId" value="LOCAL-00016" /> + <option name="project" value="LOCAL" /> + <updated>1690512731290</updated> + </task> + <task id="LOCAL-00017" summary="后台代码 门店管理"> + <created>1690957596301</created> + <option name="number" value="00017" /> + <option name="presentableId" value="LOCAL-00017" /> + <option name="project" value="LOCAL" /> + <updated>1690957596301</updated> + </task> + <task id="LOCAL-00018" summary="后台代码"> + <created>1690957852032</created> + <option name="number" value="00018" /> + <option name="presentableId" value="LOCAL-00018" /> + <option name="project" value="LOCAL" /> + <updated>1690957852032</updated> + </task> + <task id="LOCAL-00019" summary="后台代码 门店管理"> + <created>1690965711755</created> + <option name="number" value="00019" /> + <option name="presentableId" value="LOCAL-00019" /> + <option name="project" value="LOCAL" /> + <updated>1690965711755</updated> + </task> + <task id="LOCAL-00020" summary="后台代码"> + <created>1690966323062</created> + <option name="number" value="00020" /> + <option name="presentableId" value="LOCAL-00020" /> + <option name="project" value="LOCAL" /> + <updated>1690966323062</updated> + </task> + <task id="LOCAL-00021" summary="后台代码 --赛事模块"> + <created>1691139815174</created> + <option name="number" value="00021" /> + <option name="presentableId" value="LOCAL-00021" /> + <option name="project" value="LOCAL" /> + <updated>1691139815174</updated> + </task> + <task id="LOCAL-00022" summary="后台代码 赛事详情"> + <created>1691143741832</created> + <option name="number" value="00022" /> + <option name="presentableId" value="LOCAL-00022" /> + <option name="project" value="LOCAL" /> + <updated>1691143741832</updated> + </task> + <task id="LOCAL-00023" summary="后台代码--赛事"> + <created>1691379253937</created> + <option name="number" value="00023" /> + <option name="presentableId" value="LOCAL-00023" /> + <option name="project" value="LOCAL" /> + <updated>1691379253937</updated> + </task> + <task id="LOCAL-00024" summary="后台代码--远程用户"> + <created>1691460558667</created> + <option name="number" value="00024" /> + <option name="presentableId" value="LOCAL-00024" /> + <option name="project" value="LOCAL" /> + <updated>1691460558667</updated> + </task> + <task id="LOCAL-00025" summary="后台代码"> + <created>1691460746001</created> + <option name="number" value="00025" /> + <option name="presentableId" value="LOCAL-00025" /> + <option name="project" value="LOCAL" /> + <updated>1691460746001</updated> + </task> + <task id="LOCAL-00026" summary="后台代码--远程用户"> + <created>1691463442545</created> + <option name="number" value="00026" /> + <option name="presentableId" value="LOCAL-00026" /> + <option name="project" value="LOCAL" /> + <updated>1691463442545</updated> + </task> + <task id="LOCAL-00027" summary="后台代码--积分远程调用"> + <created>1691486728133</created> + <option name="number" value="00027" /> + <option name="presentableId" value="LOCAL-00027" /> + <option name="project" value="LOCAL" /> + <updated>1691486728133</updated> + </task> + <task id="LOCAL-00028" summary="后台代码--评价管理、公告管理、协议管理"> + <created>1691488900364</created> + <option name="number" value="00028" /> + <option name="presentableId" value="LOCAL-00028" /> + <option name="project" value="LOCAL" /> + <updated>1691488900364</updated> + </task> + <task id="LOCAL-00029" summary="后台代码"> + <created>1691544742967</created> + <option name="number" value="00029" /> + <option name="presentableId" value="LOCAL-00029" /> + <option name="project" value="LOCAL" /> + <updated>1691544742967</updated> + </task> + <task id="LOCAL-00030" summary="后台代码--优惠券"> + <created>1691574657094</created> + <option name="number" value="00030" /> + <option name="presentableId" value="LOCAL-00030" /> + <option name="project" value="LOCAL" /> + <updated>1691574657094</updated> + </task> + <option name="localTasksCounter" value="31" /> <servers /> </component> <component name="TypeScriptGeneratedFilesManager"> @@ -316,8 +530,19 @@ </component> <component name="VcsManagerConfiguration"> <MESSAGE value="后台代码删除" /> + <MESSAGE value="后台代码城市管理" /> + <MESSAGE value="后台代码 城市管理模块" /> + <MESSAGE value="时间获取修改" /> + <MESSAGE value="后台代码 门店管理" /> + <MESSAGE value="后台代码 --赛事模块" /> + <MESSAGE value="后台代码 赛事详情" /> + <MESSAGE value="后台代码--赛事" /> + <MESSAGE value="后台代码--远程用户" /> + <MESSAGE value="后台代码--积分远程调用" /> + <MESSAGE value="后台代码--评价管理、公告管理、协议管理" /> <MESSAGE value="后台代码" /> - <option name="LAST_COMMIT_MESSAGE" value="后台代码" /> + <MESSAGE value="后台代码--优惠券" /> + <option name="LAST_COMMIT_MESSAGE" value="后台代码--优惠券" /> </component> <component name="WindowStateProjectService"> <state x="590" y="80" key="#<template>_of_Spring_Boot" timestamp="1690338437444"> @@ -328,22 +553,46 @@ <screen x="0" y="0" width="1920" height="1032" /> </state> <state x="590" y="0" width="753" height="1032" key="#AccountApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690363440283" /> + <state x="590" y="0" width="753" height="1032" key="#ActivityApplication" timestamp="1690452254931"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="590" y="0" width="753" height="1032" key="#ActivityApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690452254931" /> <state x="590" y="0" width="753" height="1032" key="#CompetitionApplication" timestamp="1690342021698"> <screen x="0" y="0" width="1920" height="1032" /> </state> <state x="590" y="0" width="753" height="1032" key="#CompetitionApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690342021698" /> + <state x="590" y="0" width="753" height="1032" key="#CourseApplication" timestamp="1690540541143"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="590" y="0" width="753" height="1032" key="#CourseApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690540541143" /> <state x="590" y="109" width="753" height="813" key="#ManagementApplication" timestamp="1690338483958"> <screen x="0" y="0" width="1920" height="1032" /> </state> <state x="590" y="109" width="753" height="813" key="#ManagementApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690338483958" /> - <state x="765" y="199" key="#com.intellij.ide.util.MemberChooser" timestamp="1690351593596"> + <state x="629" y="130" key="#TCoursePackageDiscountServiceImpl" timestamp="1692238483118"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state x="765" y="199" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1032@0.0.1920.1032" timestamp="1690351593596" /> - <state x="689" y="304" key="#com.intellij.ide.util.TreeClassChooserDialog" timestamp="1690338381045"> + <state x="629" y="130" key="#TCoursePackageDiscountServiceImpl/0.0.1920.1032@0.0.1920.1032" timestamp="1692238483118" /> + <state x="590" y="0" width="753" height="1032" key="#UserApplication" timestamp="1690465101206"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state x="689" y="304" key="#com.intellij.ide.util.TreeClassChooserDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690338381045" /> + <state x="590" y="0" width="753" height="1032" key="#UserApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690465101206" /> + <state x="414" y="170" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1690540587494"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="414" y="170" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690540587494" /> + <state x="585" y="316" key="#com.intellij.fileTypes.FileTypeChooser" timestamp="1691488915560"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="585" y="316" key="#com.intellij.fileTypes.FileTypeChooser/0.0.1920.1032@0.0.1920.1032" timestamp="1691488915560" /> + <state x="765" y="199" key="#com.intellij.ide.util.MemberChooser" timestamp="1692355188192"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="765" y="199" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1032@0.0.1920.1032" timestamp="1692355188192" /> + <state x="689" y="304" key="#com.intellij.ide.util.TreeClassChooserDialog" timestamp="1690540575382"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="689" y="304" key="#com.intellij.ide.util.TreeClassChooserDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690540575382" /> <state x="504" y="438" key="#com.intellij.refactoring.move.MoveHandler.SelectRefactoringDialog" timestamp="1690337455729"> <screen x="0" y="0" width="1920" height="1032" /> </state> @@ -356,103 +605,171 @@ <screen x="0" y="0" width="1920" height="1032" /> </state> <state x="703" y="346" key="ANALYSIS_DLG_com.intellij.analysis.BaseAnalysisAction$1/0.0.1920.1032@0.0.1920.1032" timestamp="1690363667225" /> - <state x="519" y="82" key="CommitChangelistDialog2" timestamp="1690364505261"> + <state x="519" y="82" key="CommitChangelistDialog2" timestamp="1691979849625"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state x="519" y="82" key="CommitChangelistDialog2/0.0.1920.1032@0.0.1920.1032" timestamp="1690364505261" /> - <state width="464" height="466" key="DebuggerActiveHint" timestamp="1690354723383"> + <state x="519" y="82" key="CommitChangelistDialog2/0.0.1920.1032@0.0.1920.1032" timestamp="1691979849625" /> + <state width="534" height="466" key="DebuggerActiveHint" timestamp="1692358189353"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="464" height="466" key="DebuggerActiveHint/0.0.1920.1032@0.0.1920.1032" timestamp="1690354723383" /> + <state width="534" height="466" key="DebuggerActiveHint/0.0.1920.1032@0.0.1920.1032" timestamp="1692358189353" /> + <state x="177" y="84" key="DiffContextDialog" timestamp="1691979848063"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="177" y="84" key="DiffContextDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1691979848063" /> <state x="740" y="270" key="FileChooserDialogImpl" timestamp="1690249419357"> <screen x="0" y="0" width="1920" height="1032" /> </state> <state x="740" y="270" key="FileChooserDialogImpl/0.0.1920.1032@0.0.1920.1032" timestamp="1690249419357" /> - <state width="1293" height="418" key="GridCell.Tab.0.bottom" timestamp="1690366694918"> + <state width="1406" height="314" key="GridCell.Tab.0.bottom" timestamp="1692610601318"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="1293" height="418" key="GridCell.Tab.0.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" /> - <state width="1293" height="418" key="GridCell.Tab.0.center" timestamp="1690366694918"> + <state width="1406" height="314" key="GridCell.Tab.0.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1692610601318" /> + <state width="1406" height="314" key="GridCell.Tab.0.center" timestamp="1692610601318"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="1293" height="418" key="GridCell.Tab.0.center/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" /> - <state width="1293" height="418" key="GridCell.Tab.0.left" timestamp="1690366694918"> + <state width="1406" height="314" key="GridCell.Tab.0.center/0.0.1920.1032@0.0.1920.1032" timestamp="1692610601318" /> + <state width="1406" height="314" key="GridCell.Tab.0.left" timestamp="1692610601318"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="1293" height="418" key="GridCell.Tab.0.left/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" /> - <state width="1293" height="418" key="GridCell.Tab.0.right" timestamp="1690366694918"> + <state width="1406" height="314" key="GridCell.Tab.0.left/0.0.1920.1032@0.0.1920.1032" timestamp="1692610601318" /> + <state width="1406" height="314" key="GridCell.Tab.0.right" timestamp="1692610601318"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="1293" height="418" key="GridCell.Tab.0.right/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" /> - <state width="1293" height="418" key="GridCell.Tab.1.bottom" timestamp="1690366694918"> + <state width="1406" height="314" key="GridCell.Tab.0.right/0.0.1920.1032@0.0.1920.1032" timestamp="1692610601318" /> + <state width="1406" height="314" key="GridCell.Tab.1.bottom" timestamp="1692610601318"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="1293" height="418" key="GridCell.Tab.1.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" /> - <state width="1293" height="418" key="GridCell.Tab.1.center" timestamp="1690366694918"> + <state width="1406" height="314" key="GridCell.Tab.1.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1692610601318" /> + <state width="1406" height="314" key="GridCell.Tab.1.center" timestamp="1692610601318"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="1293" height="418" key="GridCell.Tab.1.center/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" /> - <state width="1293" height="418" key="GridCell.Tab.1.left" timestamp="1690366694918"> + <state width="1406" height="314" key="GridCell.Tab.1.center/0.0.1920.1032@0.0.1920.1032" timestamp="1692610601318" /> + <state width="1406" height="314" key="GridCell.Tab.1.left" timestamp="1692610601318"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="1293" height="418" key="GridCell.Tab.1.left/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" /> - <state width="1293" height="418" key="GridCell.Tab.1.right" timestamp="1690366694918"> + <state width="1406" height="314" key="GridCell.Tab.1.left/0.0.1920.1032@0.0.1920.1032" timestamp="1692610601318" /> + <state width="1406" height="314" key="GridCell.Tab.1.right" timestamp="1692610601318"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="1293" height="418" key="GridCell.Tab.1.right/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" /> - <state width="1293" height="418" key="GridCell.Tab.2.bottom" timestamp="1690366555269"> + <state width="1406" height="314" key="GridCell.Tab.1.right/0.0.1920.1032@0.0.1920.1032" timestamp="1692610601318" /> + <state width="1406" height="314" key="GridCell.Tab.2.bottom" timestamp="1692610601318"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="1293" height="418" key="GridCell.Tab.2.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1690366555269" /> - <state width="1293" height="418" key="GridCell.Tab.2.center" timestamp="1690366555269"> + <state width="1406" height="314" key="GridCell.Tab.2.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1692610601318" /> + <state width="1406" height="314" key="GridCell.Tab.2.center" timestamp="1692610601318"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="1293" height="418" key="GridCell.Tab.2.center/0.0.1920.1032@0.0.1920.1032" timestamp="1690366555269" /> - <state width="1293" height="418" key="GridCell.Tab.2.left" timestamp="1690366555269"> + <state width="1406" height="314" key="GridCell.Tab.2.center/0.0.1920.1032@0.0.1920.1032" timestamp="1692610601318" /> + <state width="1406" height="314" key="GridCell.Tab.2.left" timestamp="1692610601318"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="1293" height="418" key="GridCell.Tab.2.left/0.0.1920.1032@0.0.1920.1032" timestamp="1690366555269" /> - <state width="1293" height="418" key="GridCell.Tab.2.right" timestamp="1690366555269"> + <state width="1406" height="314" key="GridCell.Tab.2.left/0.0.1920.1032@0.0.1920.1032" timestamp="1692610601318" /> + <state width="1406" height="314" key="GridCell.Tab.2.right" timestamp="1692610601318"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state width="1293" height="418" key="GridCell.Tab.2.right/0.0.1920.1032@0.0.1920.1032" timestamp="1690366555269" /> - <state x="461" y="160" key="SettingsEditor" timestamp="1690191509088"> + <state width="1406" height="314" key="GridCell.Tab.2.right/0.0.1920.1032@0.0.1920.1032" timestamp="1692610601318" /> + <state x="184" y="85" key="MergeDialog" timestamp="1692609967648"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state x="461" y="160" key="SettingsEditor/0.0.1920.1032@0.0.1920.1032" timestamp="1690191509088" /> - <state x="552" y="248" key="Vcs.Push.Dialog.v2" timestamp="1690364507500"> + <state x="184" y="85" key="MergeDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1692609967648" /> + <state x="461" y="160" key="SettingsEditor" timestamp="1690451894619"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state x="552" y="248" key="Vcs.Push.Dialog.v2/0.0.1920.1032@0.0.1920.1032" timestamp="1690364507500" /> + <state x="461" y="160" key="SettingsEditor/0.0.1920.1032@0.0.1920.1032" timestamp="1690451894619" /> + <state x="552" y="248" key="Vcs.Push.Dialog.v2" timestamp="1691574658186"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="552" y="248" key="Vcs.Push.Dialog.v2/0.0.1920.1032@0.0.1920.1032" timestamp="1691574658186" /> <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog" timestamp="1690340014123"> <screen x="0" y="0" width="1920" height="1032" /> </state> <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690340014123" /> - <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.FileHistoryDialog" timestamp="1690340014123"> + <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.FileHistoryDialog" timestamp="1692610334307"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.FileHistoryDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690340014123" /> - <state x="754" y="428" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1690362660961"> + <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.FileHistoryDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1692610334307" /> + <state x="552" y="126" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser" timestamp="1691485377640"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state x="754" y="428" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/0.0.1920.1032@0.0.1920.1032" timestamp="1690362660961" /> - <state x="661" y="224" width="721" height="584" key="find.popup" timestamp="1690365779184"> + <state x="552" y="126" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser/0.0.1920.1032@0.0.1920.1032" timestamp="1691485377640" /> + <state x="754" y="428" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1692609710789"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state x="661" y="224" width="721" height="584" key="find.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1690365779184" /> - <state x="623" y="223" width="672" height="678" key="search.everywhere.popup" timestamp="1690365810397"> + <state x="754" y="428" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/0.0.1920.1032@0.0.1920.1032" timestamp="1692609710789" /> + <state x="661" y="224" width="757" height="678" key="find.popup" timestamp="1692358495106"> <screen x="0" y="0" width="1920" height="1032" /> </state> - <state x="623" y="223" width="672" height="678" key="search.everywhere.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1690365810397" /> + <state x="661" y="224" width="757" height="678" key="find.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1692358495106" /> + <state x="736" y="272" key="refactoring.ChangeSignatureDialog" timestamp="1692344760061"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="736" y="272" key="refactoring.ChangeSignatureDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1692344760061" /> + <state x="616" y="238" width="672" height="677" key="run.anything.popup" timestamp="1692344098303"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="616" y="238" width="672" height="677" key="run.anything.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1692344098303" /> + <state x="623" y="223" width="672" height="678" key="search.everywhere.popup" timestamp="1692609994501"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="623" y="223" width="672" height="678" key="search.everywhere.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1692609994501" /> </component> <component name="XDebuggerManager"> <breakpoint-manager> <breakpoints> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java</url> - <line>145</line> + <line>142</line> <option name="timeStamp" value="1" /> </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/UploadUtil.java</url> + <line>61</line> + <option name="timeStamp" value="50" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/UploadUtil.java</url> + <line>82</line> + <option name="timeStamp" value="51" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/UploadUtil.java</url> + <line>106</line> + <option name="timeStamp" value="52" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/UploadUtil.java</url> + <line>147</line> + <option name="timeStamp" value="53" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TNoticController.java</url> + <line>275</line> + <option name="timeStamp" value="56" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java</url> + <line>725</line> + <option name="timeStamp" value="86" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java</url> + <line>720</line> + <option name="timeStamp" value="90" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-method"> + <url>file://$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java</url> + <line>279</line> + <properties class="com.dsh.other.service.impl.SiteServiceImpl"> + <option name="EMULATED" value="true" /> + </properties> + <option name="timeStamp" value="4" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="javascript"> + <url>file://$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html</url> + <line>177</line> + <option name="timeStamp" value="23" /> + </line-breakpoint> </breakpoints> </breakpoint-manager> </component> diff --git a/cloud-server-account/mb-cloud-account.iml b/cloud-server-account/mb-cloud-account.iml index 9c5ecce..0a6f46a 100644 --- a/cloud-server-account/mb-cloud-account.iml +++ b/cloud-server-account/mb-cloud-account.iml @@ -28,7 +28,6 @@ <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.3" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.3" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:transmittable-thread-local:2.10.1" level="project" /> - <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" /> <orderEntry type="library" name="Maven: cn.mb.cloud:mb-cloud-common-data:1.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.3.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.3.6.RELEASE" level="project" /> @@ -133,6 +132,9 @@ <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" /> <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" /> + <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" /> @@ -147,19 +149,170 @@ <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.11.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" /> - <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" /> - <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" /> + <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" /> + <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" /> + <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.30" level="project" /> + <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" /> + <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" /> + <orderEntry type="library" name="Maven: com.alipay.sdk:alipay-sdk-java:4.38.10.ALL" level="project" /> + <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.83_noneautotype" level="project" /> + <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.62" level="project" /> + <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.14.9" level="project" /> + <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.17.2" level="project" /> + <orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:3.8.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" /> + <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" /> + <orderEntry type="library" name="Maven: org.codehaus.jettison:jettison:1.2" level="project" /> + <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" /> + <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ram:3.0.0" level="project" /> + <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-sts:3.0.0" level="project" /> + <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ecs:4.2.0" level="project" /> + <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.4.3" level="project" /> + <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" /> + <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" /> + <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.jacoco:org.jacoco.agent:runtime:0.8.3" level="project" /> + <orderEntry type="library" name="Maven: org.ini4j:ini4j:0.5.4" level="project" /> + <orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt:0.9.0" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3" level="project" /> + <orderEntry type="library" name="Maven: org.gavaghan:geodesy:1.1.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-jdbc-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-executor:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: io.vertx:vertx-mysql-client:4.2.3" level="project" /> + <orderEntry type="library" name="Maven: io.vertx:vertx-core:4.2.3" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.vertx:vertx-sql-client:4.2.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sql92:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-engine:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-spi:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-statement:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.9.2" level="project" /> + <orderEntry type="library" name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.6" level="project" /> + <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.7.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.4.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-mysql:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-postgresql:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-oracle:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sqlserver:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-opengauss:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-route:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-common:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-util:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.groovy:groovy:4.0.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-binder:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-dialect-exception-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-context:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-parser:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-statement:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-mode-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-schedule-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-core:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-api:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-infra-common:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-registry-center:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-simple-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-executor-kernel:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-general:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-spi:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-dataflow-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-script-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-http-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-rdb:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-api:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" /> + <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-lifecycle:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-h2:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-zookeeper-curator:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.curator:curator-framework:4.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.curator:curator-client:5.1.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.6.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper-jute:3.6.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.yetus:audience-annotations:0.5.0" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" /> + <orderEntry type="library" name="Maven: org.apache.curator:curator-recipes:2.12.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-rewrite:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-native-provider:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-merge:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite:calcite-linq4j:1.31.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-core:1.22.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-metrics:1.22.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.5.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.client5:httpclient5:5.1.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5-h2:5.1.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5:5.1.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-system-datetime:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-datetime-spi:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-cosid:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: me.ahoo.cosid:cosid-core:1.14.4" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-nanoid:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: com.aventrix.jnanoid:jnanoid:2.0.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-mysql:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-opengauss:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-sm:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-executor:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-optimizer:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite:calcite-core:1.31.0" level="project" /> + <orderEntry type="library" name="Maven: com.esri.geometry:esri-geometry-api:2.2.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.11.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.uzaygezen:uzaygezen-core:0.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:sketches-core:0.9.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:memory:0.9.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: net.hydromatic:aggdesigner-algorithm:6.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.commons:commons-dbcp2:2.7.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:commons-compiler:3.1.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:janino:3.1.2" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-parser:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.h2database:h2:1.4.200" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.30" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.1.RELEASE" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.2.1" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.2.1" level="project" /> <orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" /> <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.2.1" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.58" level="project" /> - <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3" level="project" /> <orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" /> <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.26" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.spring:spring-context-support:1.0.6" level="project" /> @@ -170,7 +323,6 @@ <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.59" level="project" /> - <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.6.RELEASE" level="project" /> @@ -186,8 +338,6 @@ <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" /> <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" /> <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" /> - <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" /> - <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" /> @@ -207,7 +357,6 @@ <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" /> - <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" /> <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.3.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.3.6.RELEASE" level="project" /> @@ -222,10 +371,10 @@ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.6.RELEASE" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.6.RELEASE" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.6.RELEASE" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:json-smart:2.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:accessors-smart:1.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm:5.0.4" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.16.1" level="project" /> @@ -237,7 +386,7 @@ <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.6.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" /> + <orderEntry type="library" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" /> diff --git a/cloud-server-activity/mb-cloud-activity.iml b/cloud-server-activity/mb-cloud-activity.iml index 9c5ecce..424b1f4 100644 --- a/cloud-server-activity/mb-cloud-activity.iml +++ b/cloud-server-activity/mb-cloud-activity.iml @@ -7,6 +7,10 @@ <facet type="web" name="Web"> <configuration> <webroots /> + <sourceRoots> + <root url="file://$MODULE_DIR$/src/main/java" /> + <root url="file://$MODULE_DIR$/src/main/resources" /> + </sourceRoots> </configuration> </facet> </component> @@ -16,6 +20,7 @@ <content url="file://$MODULE_DIR$"> <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> + <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> <excludeFolder url="file://$MODULE_DIR$/target" /> </content> <orderEntry type="inheritedJdk" /> @@ -133,6 +138,9 @@ <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" /> <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" /> + <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" /> @@ -147,9 +155,142 @@ <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.11.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" /> - <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" /> - <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" /> + <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-jdbc-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-executor:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: io.vertx:vertx-mysql-client:4.2.3" level="project" /> + <orderEntry type="library" name="Maven: io.vertx:vertx-core:4.2.3" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.vertx:vertx-sql-client:4.2.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sql92:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-engine:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-spi:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-statement:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.9.2" level="project" /> + <orderEntry type="library" name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.6" level="project" /> + <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.7.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.4.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-mysql:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-postgresql:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-oracle:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sqlserver:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-opengauss:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-route:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-common:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-util:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.groovy:groovy:4.0.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-binder:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-dialect-exception-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-context:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-parser:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-statement:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-mode-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-schedule-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-core:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-api:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-infra-common:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-registry-center:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-simple-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-executor-kernel:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-general:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-spi:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-dataflow-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-script-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-http-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-rdb:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-api:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" /> + <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" /> + <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-lifecycle:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-h2:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-zookeeper-curator:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.curator:curator-framework:4.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.curator:curator-client:5.1.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.6.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper-jute:3.6.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.yetus:audience-annotations:0.5.0" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" /> + <orderEntry type="library" name="Maven: org.apache.curator:curator-recipes:2.12.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-rewrite:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-native-provider:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-merge:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite:calcite-linq4j:1.31.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-core:1.22.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-metrics:1.22.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.5.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.client5:httpclient5:5.1.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5-h2:5.1.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5:5.1.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-system-datetime:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-datetime-spi:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-cosid:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: me.ahoo.cosid:cosid-core:1.14.4" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-nanoid:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: com.aventrix.jnanoid:jnanoid:2.0.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-mysql:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-opengauss:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-sm:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.70" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-executor:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-optimizer:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite:calcite-core:1.31.0" level="project" /> + <orderEntry type="library" name="Maven: com.esri.geometry:esri-geometry-api:2.2.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.11.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.uzaygezen:uzaygezen-core:0.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:sketches-core:0.9.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:memory:0.9.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: net.hydromatic:aggdesigner-algorithm:6.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.commons:commons-dbcp2:2.7.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:commons-compiler:3.1.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:janino:3.1.2" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-parser:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.h2database:h2:1.4.200" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.30" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" /> + <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" /> + <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.1.RELEASE" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.2.1" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.2.1" level="project" /> @@ -157,7 +298,6 @@ <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.2.1" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.58" level="project" /> - <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3" level="project" /> <orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" /> @@ -170,7 +310,6 @@ <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.59" level="project" /> - <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.6.RELEASE" level="project" /> @@ -186,8 +325,6 @@ <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" /> <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" /> <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" /> - <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" /> - <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" /> @@ -207,7 +344,6 @@ <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" /> - <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" /> <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.3.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.3.6.RELEASE" level="project" /> @@ -222,10 +358,10 @@ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.6.RELEASE" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.6.RELEASE" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.6.RELEASE" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:json-smart:2.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:accessors-smart:1.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm:5.0.4" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.16.1" level="project" /> @@ -237,7 +373,7 @@ <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.6.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" /> + <orderEntry type="library" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" /> diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java index df63b48..b9699bb 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 @@ -857,4 +857,68 @@ return storeVos; } + @PostMapping("/base/pointMerchars/add") + public Integer add(@RequestBody PointsMerchandise pointsMerchandise){ + Integer storeId = pointsMerchandise.getShelves(); + pointsMerchandise.setShelves(2); + boolean save = pmdsService.save(pointsMerchandise); + if(save && ToolUtil.isNotEmpty(storeId) && pointsMerchandise.getType()==2){ + PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore(); + pointsMerchandiseStore.setPointsMerchandiseId(pointsMerchandise.getId()); + pointsMerchandiseStore.setStoreId(storeId); + save = pmdstoService.save(pointsMerchandiseStore); + } + if(save && pointsMerchandise.getType()==2 && ToolUtil.isNotEmpty(pointsMerchandise.getProvinceCode())){ + pmdsService.saveCity(pointsMerchandise.getId(),pointsMerchandise.getProvince(),pointsMerchandise.getProvinceCode(),pointsMerchandise.getCity(),pointsMerchandise.getCityCode()); + } + if(save){ + return pointsMerchandise.getId(); + } + return null; + } + + + @PostMapping("/base/pointMerchars/addOther") + public Boolean addOther(@RequestBody String pam){ + Boolean save =false; + String[] split = pam.split("_"); + for (String s : split[1].split(",")) { + PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore(); + pointsMerchandiseStore.setPointsMerchandiseId(Integer.valueOf(split[0])); + pointsMerchandiseStore.setStoreId(Integer.valueOf(s)); + save = pmdstoService.save(pointsMerchandiseStore); + } + return save; + } + + @PostMapping("/base/pointMerchars/addCitys") + public Boolean addCitys(@RequestBody ArrayList<Map<String, String>> objects){ + try { + for (Map<String, String> object : objects) { + pmdsService.saveCity(Integer.valueOf(object.get("id")),object.get("pName"),object.get("pCode"),object.get("cName"),object.get("cCode")); + } + return true; + }catch (Exception e){ + e.printStackTrace(); + return false; + } + + } + + + @PostMapping("/base/pointMerchars/queryPointMerchaseById") + public PointsMerchandise queryPointMerchaseById(@RequestBody Integer id){ + return pmdsService.getById(id); + } + + + + @PostMapping("/base/pointMerchars/getshopName") + public Integer getshopName(@RequestBody Integer id){ + List<PointsMerchandiseStore> list = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>().eq(PointsMerchandiseStore::getPointsMerchandiseId, id)); + PointsMerchandiseStore pointsMerchandiseStore = list.get(0); + Integer storeId = pointsMerchandiseStore.getStoreId(); + return storeId; + } + } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java index 2afd765..017a237 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -98,11 +99,13 @@ * 开始时间 */ @TableField("startTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date startTime; /** * 结束时间 */ @TableField("endTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date endTime; /** * 使用范围(1=全国,2=指定城市,3=指定门店) @@ -148,6 +151,7 @@ * 添加时间 */ @TableField("insertTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date insertTime; /** * 课包支付配置id diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java index 1293821..fba1382 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java @@ -26,4 +26,5 @@ @Param("state") Integer state, @Param("page") Page<Map<String, Object>> page); + void saveCity(@Param("id") Integer id, @Param("province") String province, @Param("provinceCode") String provinceCode, @Param("city") String city, @Param("cityCode") String cityCode); } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java index a27221b..c41c807 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java @@ -19,4 +19,5 @@ List<Map<String, Object>> queryGoodsListOfSearch(IntegralGoodsOfSearch ofSearch); + void saveCity(Integer id, String province, String provinceCode, String city, String cityCode); } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java index 3709d22..eb072a7 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java @@ -26,4 +26,9 @@ return this.baseMapper.queryGoodsListOfSearch(ofSearch.getName(),ofSearch.getType(),ofSearch.getRedemptionMethod(), ofSearch.getUserPopulation(),ofSearch.getActiveStatus(),ofSearch.getState(),ofSearch.getPage()); } + + @Override + public void saveCity(Integer id, String province, String provinceCode, String city, String cityCode) { + this.baseMapper.saveCity(id,province,provinceCode,city,cityCode); + } } diff --git a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml index 38bcc37..0d4abde 100644 --- a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml +++ b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml @@ -1,6 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.dsh.activity.mapper.PointsMerchandiseMapper"> + <insert id="saveCity"> + insert into t_points_merchandise_city (id,pointsMerchandiseId,city,cityCode,province,provinceCode) value (null ,#{id},#{city},#{cityCode},#{province},#{provinceCode}) + </insert> <select id="queryGoodsListOfSearch" resultType="java.util.Map"> diff --git a/cloud-server-auth/mb-cloud-auth.iml b/cloud-server-auth/mb-cloud-auth.iml index 2b5f9ff..8b42c29 100644 --- a/cloud-server-auth/mb-cloud-auth.iml +++ b/cloud-server-auth/mb-cloud-auth.iml @@ -120,12 +120,12 @@ <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-security:2.2.4.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:2.3.6.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" /> + <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-oauth2:2.2.4.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.2.RELEASE" level="project" /> <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.3.0.1" level="project" /> <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.0.1" level="project" /> - <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" /> - <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security:spring-security-jwt:1.0.10.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security.oauth:spring-security-oauth2:2.3.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.11.RELEASE" level="project" /> diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java index e171113..abbd13d 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java @@ -2,17 +2,13 @@ import cn.mb.cloud.common.data.controller.BaseController; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.dsh.course.entity.TCourse; -import com.dsh.course.entity.TCoursePackagePayment; -import com.dsh.course.entity.TCoursePackageType; +import com.dsh.course.entity.*; import com.dsh.course.feignclient.model.ExerciseVideo; import com.dsh.course.model.*; -import com.dsh.course.service.TCoursePackagePaymentService; -import com.dsh.course.service.TCoursePackageService; -import com.dsh.course.service.TCoursePackageTypeService; -import com.dsh.course.service.TCourseService; +import com.dsh.course.service.*; import com.dsh.course.util.PageFactory; import com.dsh.course.util.PayMoneyUtil; import com.dsh.course.util.ResultUtil; @@ -31,6 +27,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -59,6 +56,10 @@ @Autowired private TCoursePackagePaymentService coursePackagePaymentService; + + @Autowired + private TCoursePackageDiscountService discountService; + @@ -357,4 +358,93 @@ public List<TCourse> queryCourseByType(@RequestBody Integer type){ return courseService.list(new QueryWrapper<TCourse>().eq("type", type).eq("state", 1)); } + + + @PostMapping("/course/queryDiscountList") + public List<DiscountList> queryDiscountList(@RequestBody QueryDiscountList queryDiscountList){ + return discountService.queryDiscountList(queryDiscountList); + } + @PostMapping("/course/queryDiscountListAudit") + public List<DiscountList> queryDiscountListAudit(@RequestBody QueryDiscountList queryDiscountList){ + return discountService.queryDiscountListAudit(queryDiscountList); + } + + @PostMapping("/course/updateState") + public Boolean updateState( @RequestBody DiscountUpdateState discountUpdateState){ + TCoursePackageDiscount byId = discountService.getById(discountUpdateState.getId()); + List<TCoursePackageDiscount> list = discountService.list(new LambdaQueryWrapper<TCoursePackageDiscount>().eq(TCoursePackageDiscount::getCoursePackageId, byId.getCoursePackageId())); + list.forEach(e->e.setStatus(discountUpdateState.getStatus())); + return discountService.updateBatchById(list); + } + + + @PostMapping("/course/auditDiscount") + public Boolean auditDiscount( @RequestBody AuditDiscount auditDiscount){ + TCoursePackageDiscount byId = discountService.getById(auditDiscount.getId()); + List<TCoursePackageDiscount> list = discountService.list(new LambdaQueryWrapper<TCoursePackageDiscount>().eq(TCoursePackageDiscount::getCoursePackageId, byId.getCoursePackageId())); + for (TCoursePackageDiscount tCoursePackageDiscount : list) { + tCoursePackageDiscount.setAuditStatus(auditDiscount.getType()); + tCoursePackageDiscount.setAuditRemark(auditDiscount.getText()); + } + + return discountService.updateBatchById(list); + } + + @PostMapping("/course/queryByDiscountId") + public TCoursePackage queryByDiscountId(@RequestBody Integer id){ + TCoursePackageDiscount byId = discountService.getById(id); + TCoursePackage byId1 = coursePackageService.getById(byId.getCoursePackageId()); + return byId1; + } + + @PostMapping("/course/queryDiscountById") + public Integer queryDiscountById(@RequestBody Integer id){ + TCoursePackageDiscount byId = discountService.getById(id); + return byId.getAuditStatus(); + } + + + + @PostMapping("/course/getPageageType") + public List<Map<String, Object>> getPageageType(){ + List<TCoursePackageType> list = coursePackageTypeService.list(new LambdaQueryWrapper<TCoursePackageType>().eq(TCoursePackageType::getState, 1)); + ArrayList<Map<String, Object>> objects = new ArrayList<>(); + for (TCoursePackageType tCoursePackageType : list) { + HashMap<String, Object> map = new HashMap<>(); + map.put("id",tCoursePackageType.getId()); + map.put("name",tCoursePackageType.getName()); + objects.add(map); + } + return objects; + } + + + @PostMapping("/course/queryByTypeId") + public List<TCoursePackage> queryByTypeId(@RequestBody Integer oneId){ + return coursePackageService.list(new LambdaQueryWrapper<TCoursePackage>().eq(TCoursePackage::getCoursePackageTypeId,oneId).eq(TCoursePackage::getAuditStatus,2).eq(TCoursePackage::getState,1)); + } + + + @PostMapping("/course/queryByConfigId") + public List<Map<String, Object>> queryByConfigId(@RequestBody Integer oneId){ + return coursePackageService.queryByConfigId(oneId); + } + + + @PostMapping("/course/queryPackageById") + public List<String> queryPackageById(@RequestBody Integer coursePackageId){ + ArrayList<String> strings = new ArrayList<>(); + TCoursePackage byId = coursePackageService.getById(coursePackageId); + Integer coursePackageTypeId = byId.getCoursePackageTypeId(); + strings.add(coursePackageTypeService.getById(coursePackageTypeId).getName()); + strings.add(byId.getName()); + + return strings; + + } + + @PostMapping("/course/getHours") + public String getHours(@RequestBody Integer coursePackageId1){ + return coursePackageService.getHours(coursePackageId1); + } } diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java index d5649f6..45be4c1 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java @@ -31,7 +31,11 @@ return coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfigId) .eq("auditStatus", 2)); } - + @PostMapping("/coursePackageDiscount/queryCoursePackageDiscountOne") + public List<TCoursePackageDiscount> queryCoursePackageDiscountOne(@RequestBody Integer id){ + return coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", id) + .ne("auditStatus", 2)); + } /** * 编辑课包折扣 diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java index 48ac5e9..bebf2e2 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java +++ b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java @@ -74,6 +74,6 @@ @TableField("insertTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date insertTime; - - + @TableField("status") + private Integer status; } diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageDiscountMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageDiscountMapper.java index 38b7057..90b2fe2 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageDiscountMapper.java +++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageDiscountMapper.java @@ -1,7 +1,12 @@ package com.dsh.course.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.entity.TCoursePackageDiscount; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsh.course.model.DiscountList; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +18,7 @@ */ public interface TCoursePackageDiscountMapper extends BaseMapper<TCoursePackageDiscount> { + List<DiscountList> queryDiscountList(@Param("discountListPage") Page<DiscountList> discountListPage, @Param("pCode") String pCode, @Param("cCode") String cCode, @Param("name") String name, @Param("type") Integer type, @Param("ids") List<Integer> ids); + + List<DiscountList> queryDiscountListAudit(@Param("discountListPage") Page<DiscountList> discountListPage, @Param("pCode") String pCode, @Param("cCode") String cCode, @Param("name") String name, @Param("type") Integer type, @Param("ids") List<Integer> ids); } diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java index f85010f..3017da9 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java +++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java @@ -42,4 +42,10 @@ */ List<Map<String, Object>> queryExamineCoursePackageLists(Page<Map<String, Object>> page, @Param("item") QueryExamineCoursePackageLists queryExamineCoursePackageLists); + List<Map<String, Object>> queryByConfigId(@Param("oneId") Integer oneId); + + String getHours(@Param("coursePackageId") Integer coursePackageId); + + + } diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/AuditDiscount.java b/cloud-server-course/src/main/java/com/dsh/course/model/AuditDiscount.java new file mode 100644 index 0000000..970b818 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/model/AuditDiscount.java @@ -0,0 +1,16 @@ +package com.dsh.course.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AuditDiscount { + private Integer id; + + private Integer type; + + private String text; +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/DiscountList.java b/cloud-server-course/src/main/java/com/dsh/course/model/DiscountList.java new file mode 100644 index 0000000..f054562 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/model/DiscountList.java @@ -0,0 +1,23 @@ +package com.dsh.course.model; + +import lombok.Data; + +@Data +public class DiscountList { + private Integer id; + + private String pName; + + private String cName; + + private String shopName; + + private String name; + + private String type; + + private Integer status; + + private Integer storeId; + private Integer courseId; +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/DiscountUpdateState.java b/cloud-server-course/src/main/java/com/dsh/course/model/DiscountUpdateState.java new file mode 100644 index 0000000..1b4747e --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/model/DiscountUpdateState.java @@ -0,0 +1,14 @@ +package com.dsh.course.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DiscountUpdateState { + private Integer id; + + private Integer status; +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/QueryDiscountList.java b/cloud-server-course/src/main/java/com/dsh/course/model/QueryDiscountList.java new file mode 100644 index 0000000..72c4cd0 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/model/QueryDiscountList.java @@ -0,0 +1,25 @@ +package com.dsh.course.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class QueryDiscountList { + private long offset; + private long limit; + + private String pCode; + + private String cCode; + + private String name; + + private Integer type; + + private List<Integer> ids; +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java index cd02a1a..118f746 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.course.entity.TCoursePackageDiscount; +import com.dsh.course.model.DiscountList; +import com.dsh.course.model.QueryDiscountList; import com.dsh.course.model.vo.response.Details; import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse; @@ -23,4 +25,9 @@ ExchangeCoursePackageResponse getWeekFreeCourseDetails(Integer coursePackageDiscountId,String lat,String lon); + List<DiscountList> queryDiscountList(QueryDiscountList queryDiscountList); + + + List<DiscountList> queryDiscountListAudit(QueryDiscountList queryDiscountList); + } diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java index d7d6a12..4708c1c 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java @@ -84,4 +84,9 @@ * @return */ List<Map<String, Object>> queryExamineCoursePackageLists(Page<Map<String, Object>> page, QueryExamineCoursePackageLists queryExamineCoursePackageLists); + + List<Map<String, Object>> queryByConfigId(Integer oneId); + + String getHours(Integer coursePackageId); + } diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java index 1017f20..ec83f76 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java @@ -3,7 +3,9 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.course.entity.CoursePackagePaymentConfig; import com.dsh.course.entity.TCoursePackage; @@ -16,6 +18,8 @@ import com.dsh.course.mapper.TCoursePackageDiscountMapper; import com.dsh.course.mapper.TCoursePackageMapper; import com.dsh.course.mapper.TCoursePackagePaymentMapper; +import com.dsh.course.model.DiscountList; +import com.dsh.course.model.QueryDiscountList; import com.dsh.course.model.vo.response.Details; import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse; import com.dsh.course.service.TCoursePackageDiscountService; @@ -352,6 +356,70 @@ return packageResponse; } + @Override + public List<DiscountList> queryDiscountList(QueryDiscountList queryDiscountList) { + Page<DiscountList> discountListPage = new Page<>(queryDiscountList.getOffset(), queryDiscountList.getLimit()); + List<DiscountList> discountLists = this.baseMapper.queryDiscountList(discountListPage, queryDiscountList.getPCode(), queryDiscountList.getCCode(), queryDiscountList.getName(), queryDiscountList.getType(), queryDiscountList.getIds()); + for (DiscountList discountList : discountLists) { + List<TCoursePackageDiscount> tCoursePackageDiscounts = this.baseMapper.selectList(new LambdaQueryWrapper<TCoursePackageDiscount>().eq(TCoursePackageDiscount::getCoursePackageId, discountList.getCourseId()).eq(TCoursePackageDiscount::getAuditStatus,2).orderByAsc(TCoursePackageDiscount::getType)); + long count = tCoursePackageDiscounts.stream().filter(e -> e.getStatus().equals(2)).count(); + if(count>0){ + discountList.setStatus(2); + }else { + discountList.setStatus(1); + } + String type=""; + for (int i = 0; i < tCoursePackageDiscounts.size(); i++) { + if(tCoursePackageDiscounts.get(i).getType()==1){ + type += "会员折扣、"; + }else if(tCoursePackageDiscounts.get(i).getType()==3){ + type += "限时折扣、"; + }else if(tCoursePackageDiscounts.get(i).getType()==4){ + type += "赠送课时、"; + } + } + if(type.length()>0){ + type = type.substring(0,type.length()-1); + } + discountList.setType(type); + } + return discountLists; + } + + public static void main(String[] args) { + String a ="1312dsad132"; + a = a.substring(0,a.length()-1); + System.out.println(a); + } + @Override + public List<DiscountList> queryDiscountListAudit(QueryDiscountList queryDiscountList) { + Page<DiscountList> discountListPage = new Page<>(queryDiscountList.getOffset(), queryDiscountList.getLimit()); + List<DiscountList> discountLists = this.baseMapper.queryDiscountListAudit(discountListPage, queryDiscountList.getPCode(), queryDiscountList.getCCode(), queryDiscountList.getName(), queryDiscountList.getType(), queryDiscountList.getIds()); + for (DiscountList discountList : discountLists) { + List<TCoursePackageDiscount> tCoursePackageDiscounts = this.baseMapper.selectList(new LambdaQueryWrapper<TCoursePackageDiscount>().eq(TCoursePackageDiscount::getCoursePackageId, discountList.getCourseId()).ne(TCoursePackageDiscount::getAuditStatus,2).orderByAsc(TCoursePackageDiscount::getType)); + long count = tCoursePackageDiscounts.stream().filter(e -> e.getAuditStatus().equals(2)).count(); + if(count>0){ + discountList.setStatus(2); + }else { + discountList.setStatus(1); + } + String type=""; + for (int i = 0; i < tCoursePackageDiscounts.size(); i++) { + if(tCoursePackageDiscounts.get(i).getType()==1){ + type += "会员折扣、"; + }else if(tCoursePackageDiscounts.get(i).getType()==3){ + type += "限时折扣、"; + }else if(tCoursePackageDiscounts.get(i).getType()==4){ + type += "赠送课时、"; + } + } + if(type.length()>0){ + type = type.substring(0,type.length()-1); + } + discountList.setType(type); + } + return discountLists; + } private static boolean isDateWithinRange(Date date, Date startTime, Date endTime) { 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 7358a5e..8111282 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 @@ -951,4 +951,14 @@ } return list; } + + @Override + public List<Map<String, Object>> queryByConfigId(Integer oneId) { + return this.baseMapper.queryByConfigId(oneId); + } + + @Override + public String getHours(Integer coursePackageId) { + return this.baseMapper.getHours(coursePackageId); + } } diff --git a/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml index 95fc2a7..4f085f6 100644 --- a/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml +++ b/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml @@ -14,5 +14,43 @@ <result column="auditRemark" property="auditRemark" /> <result column="insertTime" property="insertTime" /> </resultMap> + <select id="queryDiscountList" resultType="com.dsh.course.model.DiscountList"> + select t1.id,t1.type,t1.status,t2.province pName,t2.city cName,t2.name,t2.storeId,t2.id courseId from t_course_package_discount t1 left join t_course_package t2 on t1.coursePackageId = t2.id + where t2.storeId in <foreach collection="ids" close=")" item="id" open="(" separator=","> + #{id} and t1.auditStatus =2 + </foreach> + <if test="pCode !=null and pCode !=''"> + and t2.provinceCode =#{pCode} + </if> + <if test="cCode !=null and cCode !=''"> + and t2.cityCode =#{cCode} + </if> + <if test="name !=null and name !=''"> + and t2.name like concat("%",#{name},"%") + </if> + <if test="type !=null "> + and t1.type =#{type} + </if> + group by t1.coursePackageId + </select> + <select id="queryDiscountListAudit" resultType="com.dsh.course.model.DiscountList"> + select t1.id,t1.type,t1.auditStatus status,t2.province pName,t2.city cName,t2.name,t2.storeId,t2.id courseId from t_course_package_discount t1 left join t_course_package t2 on t1.coursePackageId = t2.id + where t2.storeId in <foreach collection="ids" close=")" item="id" open="(" separator=","> + #{id} and t1.auditStatus !=2 + </foreach> + <if test="pCode !=null and pCode !=''"> + and t2.provinceCode =#{pCode} + </if> + <if test="cCode !=null and cCode !=''"> + and t2.cityCode =#{cCode} + </if> + <if test="name !=null and name !=''"> + and t2.name like concat("%",#{name},"%") + </if> + <if test="type !=null "> + and t1.type =#{type} + </if> + group by t1.coursePackageId + </select> </mapper> diff --git a/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml index bf5df87..8fc1230 100644 --- a/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml +++ b/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml @@ -125,4 +125,10 @@ </if> order by a.insertTime desc </select> + <select id="queryByConfigId" resultType="java.util.Map"> + select id,classHours from t_course_package_payment_config where coursePackageId =#{oneId} + </select> + <select id="getHours" resultType="java.lang.String"> + select classHours from t_course_package_payment_config where id =#{coursePackageId} + </select> </mapper> diff --git a/cloud-server-management/mb-cloud-management.iml b/cloud-server-management/mb-cloud-management.iml index 50ddf3f..ad486c1 100644 --- a/cloud-server-management/mb-cloud-management.iml +++ b/cloud-server-management/mb-cloud-management.iml @@ -205,7 +205,7 @@ <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.4c" level="project" /> <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" /> <orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:2.5.0" level="project" /> - <orderEntry type="library" name="Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.3" level="project" /> + <orderEntry type="library" name="Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.5" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.13.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" /> diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java index 981e58e..fc8eeb3 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java @@ -5,12 +5,14 @@ import com.dsh.course.feignClient.activity.model.IntegralGoodsOfSearch; import com.dsh.course.feignClient.activity.model.PointMercharsPayedVo; import com.dsh.course.feignClient.activity.model.PointMercharsVo; +import com.dsh.course.feignClient.activity.model.PointsMerchandise; import com.dsh.guns.modular.system.model.GoodsInfoOneVo; import com.dsh.guns.modular.system.model.StoreVos; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -30,6 +32,22 @@ @PostMapping("/base/pointMerchars/queryUserPayedGoodsList") List<Map<String, Object>> queryUserPayedGoodsList(@RequestBody PointMercharsPayedVo pointMercharsPayedVo); + @PostMapping("/base/pointMerchars/add") + Integer add(PointsMerchandise pointsMerchandise); + + @PostMapping("/base/pointMerchars/addOther") + Boolean addOther(@RequestBody String pam); + + @PostMapping("/base/pointMerchars/addCitys") + Boolean addCitys(@RequestBody List<Map<String, String>> objects); + + @PostMapping("/base/pointMerchars/queryPointMerchaseById") + PointsMerchandise queryPointMerchaseById(Integer id); + + + @PostMapping("/base/pointMerchars/getshopName") + Integer getshopName(Integer id); + @PostMapping("/base/pointMerchars/writeOffGoodsStatus") boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map); diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java new file mode 100644 index 0000000..fe72114 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java @@ -0,0 +1,172 @@ +package com.dsh.course.feignClient.activity.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * <p> + * 积分商品 + * </p> + * + * @author jqs + * @since 2023-07-04 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("t_points_merchandise") +public class PointsMerchandise extends Model<PointsMerchandise> { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 类型(1=实体商品,2=课包商品,3=门票商品 4=优惠券) + */ + @TableField("type") + private Integer type; + /** + * 商品名称 + */ + @TableField("name") + private String name; + /** + * 课包id + */ + @TableField("coursePackageId") + private Integer coursePackageId; + /** + * 原价 + */ + @TableField("price") + private BigDecimal price; + /** + * 兑换方式(1=积分,2=现金+积分) + */ + @TableField("redemptionMethod") + private Integer redemptionMethod; + /** + * 所需现金 + */ + @TableField("cash") + private BigDecimal cash; + /** + * 所属积分 + */ + @TableField("integral") + private Integer integral; + /** + * 商品封面 + */ + @TableField("cover") + private String cover; + /** + * 商品图片 + */ + @TableField("productImages") + private String productImages; + /** + * 用户人群(1=全部用户,2=年度会员,3=已有学员用户) + */ + @TableField("userPopulation") + private Integer userPopulation; + /** + * 发放数量 + */ + @TableField("quantityIssued") + private Integer quantityIssued; + /** + * 限领数量 + */ + @TableField("pickUpQuantity") + private Integer pickUpQuantity; + /** + * 开始时间 + */ + @TableField("startTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date startTime; + /** + * 结束时间 + */ + @TableField("endTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date endTime; + /** + * 使用范围(1=全国,2=指定城市,3=指定门店) + */ + @TableField("useScope") + private Integer useScope; + /** + * 省 + */ + @TableField("province") + private String province; + /** + * 省编号 + */ + @TableField("provinceCode") + private String provinceCode; + /** + * 市 + */ + @TableField("city") + private String city; + /** + * 市编号 + */ + @TableField("cityCode") + private String cityCode; + /** + * 兑换说明 + */ + @TableField("redemptionInstructions") + private String redemptionInstructions; + /** + * 排序 + */ + @TableField("sort") + private Integer sort; + /** + * 状态(1=正常,2=冻结,3=删除) + */ + @TableField("state") + private Integer state; + /** + * 添加时间 + */ + @TableField("insertTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date insertTime; + /** + * 课包支付配置id + */ + @TableField("coursePackageConfigId") + private Integer coursePackageConfigId; + /** + * 1=上架 2=下架 + */ + @TableField("shelves") + private Integer shelves; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java index 73aca6a..71ed400 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java @@ -1,7 +1,7 @@ package com.dsh.course.feignClient.course; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.dsh.course.feignClient.course.model.QueryCourseList; +import com.dsh.course.feignClient.course.model.*; import com.dsh.guns.modular.system.model.EditCourseState; import com.dsh.guns.modular.system.model.TCourse; import org.springframework.cloud.openfeign.FeignClient; @@ -75,4 +75,38 @@ */ @PostMapping("/course/queryCourseByType") List<TCourse> queryCourseByType(Integer type); + + + @PostMapping("/course/queryDiscountList") + List<DiscountList> queryDiscountList(QueryDiscountList queryDiscountList); + + @PostMapping("/course/updateState") + Boolean updateState(DiscountUpdateState discountUpdateState); + + @PostMapping("/course/queryDiscountListAudit") + List<DiscountList> queryDiscountListAudit(QueryDiscountList queryDiscountList); + + @PostMapping("/course/auditDiscount") + Boolean auditDiscount(AuditDiscount auditDiscount); + + @PostMapping("/course/queryByDiscountId") + TCoursePackage queryByDiscountId(Integer id); + @PostMapping("/course/queryDiscountById") + Integer queryDiscountById(Integer id); + + @PostMapping("/course/getPageageType") + List<Map<String, Object>> getPageageType(); + + @PostMapping("/course/queryByTypeId") + List<TCoursePackage> queryByTypeId(Integer oneId); + + @PostMapping("/course/queryByConfigId") + List<Map<String, Object>> queryByConfigId(Integer oneId); + + @PostMapping("/course/queryPackageById") + List<String> queryPackageById(Integer coursePackageId); + + @PostMapping("/course/getHours") + String getHours(Integer coursePackageId1); + } diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java index b3faf17..9ba9a71 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java @@ -26,7 +26,10 @@ * 配置课包折扣数据 * @param list */ + @PostMapping("/coursePackageDiscount/setCoursePackageDiscount") void setCoursePackageDiscount(List<TCoursePackageDiscount> list); + @PostMapping("/coursePackageDiscount/queryCoursePackageDiscountOne") + List<TCoursePackageDiscount> queryCoursePackageDiscountOne(Integer id); } diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/AuditDiscount.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/AuditDiscount.java new file mode 100644 index 0000000..66dae0b --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/AuditDiscount.java @@ -0,0 +1,16 @@ +package com.dsh.course.feignClient.course.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AuditDiscount { + private Integer id; + + private Integer type; + + private String text; +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountList.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountList.java new file mode 100644 index 0000000..59af385 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountList.java @@ -0,0 +1,23 @@ +package com.dsh.course.feignClient.course.model; + +import lombok.Data; + +@Data +public class DiscountList { + private Integer id; + + private String pName; + + private String cName; + + private String shopName; + + private String name; + + private String type; + + private Integer status; + + private Integer storeId; + private Integer courseId; +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountUpdateState.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountUpdateState.java new file mode 100644 index 0000000..d89f36e --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountUpdateState.java @@ -0,0 +1,14 @@ +package com.dsh.course.feignClient.course.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DiscountUpdateState { + private Integer id; + + private Integer status; +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/QueryDiscountList.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/QueryDiscountList.java new file mode 100644 index 0000000..6c78a09 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/QueryDiscountList.java @@ -0,0 +1,25 @@ +package com.dsh.course.feignClient.course.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class QueryDiscountList { + private long offset; + private long limit; + + private String pCode; + + private String cCode; + + private String name; + + private Integer type; + + private List<Integer> ids; +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java index 6b2ba0f..fc37553 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java @@ -10,6 +10,8 @@ import com.dsh.course.feignClient.account.model.TCityManager; import com.dsh.course.feignClient.competition.CompetitionClient; import com.dsh.course.feignClient.competition.model.*; +import com.dsh.course.feignClient.course.CourseClient; +import com.dsh.course.feignClient.course.model.TCoursePackage; import com.dsh.course.mapper.UserMapper; import com.dsh.guns.core.base.controller.BaseController; import com.dsh.guns.core.base.tips.SuccessTip; @@ -31,6 +33,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +61,9 @@ @Resource private UserMapper userMapper; + + @Autowired + private CourseClient courseClient; /** @@ -179,6 +185,38 @@ return ERROR; } } + @RequestMapping(value = "/storeChange") + @ResponseBody + public Object storeChange(Integer oneId) { + try { + return storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode, oneId)); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + @RequestMapping(value = "/packageChange") + @ResponseBody + public Object packageChange(Integer oneId) { + try { + List<TCoursePackage> list = courseClient.queryByTypeId(oneId); + return list; + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + @RequestMapping(value = "/timeChange") + @ResponseBody + public Object timeChange(Integer oneId) { + try { + List<Map<String,Object>> list = courseClient.queryByConfigId(oneId); + return list; + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } @RequestMapping(value = "/cancel") diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TDiscountController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TDiscountController.java new file mode 100644 index 0000000..b8d1c5d --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TDiscountController.java @@ -0,0 +1,382 @@ +package com.dsh.guns.modular.system.controller.code; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.dsh.course.feignClient.competition.CompetitionClient; +import com.dsh.course.feignClient.competition.model.Competition; +import com.dsh.course.feignClient.competition.model.CompetitionUser; +import com.dsh.course.feignClient.competition.model.GetPeopleQuery; +import com.dsh.course.feignClient.competition.model.ListQuery; +import com.dsh.course.feignClient.course.CourseClient; +import com.dsh.course.feignClient.course.CoursePackageDiscountClient; +import com.dsh.course.feignClient.course.CoursePackagePaymentConfigClient; +import com.dsh.course.feignClient.course.CoursePackageTypeClient; +import com.dsh.course.feignClient.course.model.*; +import com.dsh.guns.core.base.controller.BaseController; +import com.dsh.guns.core.base.tips.ErrorTip; +import com.dsh.guns.core.base.tips.SuccessTip; +import com.dsh.guns.core.common.constant.factory.PageFactory; +import com.dsh.guns.core.util.ToolUtil; +import com.dsh.guns.modular.system.model.TCity; +import com.dsh.guns.modular.system.model.TStore; +import com.dsh.guns.modular.system.service.ICityService; +import com.dsh.guns.modular.system.service.ICoursePackageService; +import com.dsh.guns.modular.system.service.IStoreService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 车辆管理控制器 + * + * @author fengshuonan + * @Date 2020-06-05 17:25:12 + */ +@Controller +@RequestMapping("/tDiscount") +public class TDiscountController extends BaseController { + + private String PREFIX = "/system/tDiscount/"; + private String PREFIX1 = "/system/tDiscountAudit/"; + + @Autowired + private CompetitionClient competitionClient; + + @Autowired + private IStoreService storeService; + + @Autowired + private ICityService cityService; + + @Autowired + private CourseClient courseClient; + + + + + /** + * 跳转到车辆管理首页 + */ + @RequestMapping("") + public String index(Model model) { + List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + model.addAttribute("list",list); + return PREFIX + "TDiscount.html"; + } + @RequestMapping("/audit") + public String indexAudit(Model model) { + List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + model.addAttribute("list",list); + return PREFIX1 + "TDiscount.html"; + } + + /** + * 跳转到添加车辆管理 + */ + @RequestMapping("/tCompetition_add") + public String tCompetitionAdd(Model model) { + List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + model.addAttribute("list",list); + return PREFIX + "TCompetition_add.html"; + } + + + /** + * 跳转到修改车辆管理 + */ + @RequestMapping("/tCompetition_update/{id}") + public String tCarUpdate(@PathVariable Integer id, Model model) { + Competition competition = competitionClient.queryById(id); + model.addAttribute("item",competition); + List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getProvinceCode())); + List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId())); + + List<TStore> list2 = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode,competition.getCityCode())); + model.addAttribute("list",list); + model.addAttribute("list1",list1); + model.addAttribute("list2",list2); + model.addAttribute("type",1); + return PREFIX + "TCompetition_edit.html"; + } + @RequestMapping("/tCompetition_info/{id}") + public String tCarInfo(@PathVariable Integer id, Model model) { + Competition competition = competitionClient.queryById(id); + model.addAttribute("item",competition); + List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getProvinceCode())); + List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId())); + + List<TStore> list2 = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode,competition.getCityCode())); + model.addAttribute("list",list); + model.addAttribute("list1",list1); + model.addAttribute("list2",list2); + model.addAttribute("type",2); + + return PREFIX + "TCompetition_edit.html"; + } + @RequestMapping("/tCompetition_user/{id}") + public String tCarUser(@PathVariable Integer id, Model model) { + model.addAttribute("id",id); + return PREFIX + "TCompetitionUser.html"; + } + + @Autowired + private ICoursePackageService coursePackageService; + + @Resource + private CoursePackagePaymentConfigClient coursePackagePaymentConfigClient; + + @Resource + private CoursePackageDiscountClient coursePackageDiscountClient; + @RequestMapping("/info") + public String info( Integer id, Model model) { + TCoursePackage tCoursePackage1 = courseClient.queryByDiscountId(id); + TCoursePackage tCoursePackage = coursePackageService.queryById(tCoursePackage1.getId()); + model.addAttribute("item", tCoursePackage); + List<CoursePackagePaymentConfig> list4 = coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(id); + List<Map<String, Object>> list = new ArrayList<>(); + for (CoursePackagePaymentConfig coursePackagePaymentConfig : list4) { + if(coursePackagePaymentConfig.getCashPayment() == 0){ + continue; + } + Map<String, Object> map = new HashMap<>(); + map.put("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()); + map.put("classHours", coursePackagePaymentConfig.getClassHours()); + String payment = ""; + if(coursePackagePaymentConfig.getCashPayment() > 0){ + payment += "现金支付"; + } + if(coursePackagePaymentConfig.getPlayPaiCoin() > 0){ + payment += (ToolUtil.isNotEmpty(payment) ? "、" : "") + "玩湃币支付"; + } + map.put("payment", payment); + map.put("cashPayment", coursePackagePaymentConfig.getCashPayment()); + List<TCoursePackageDiscount> tCoursePackageDiscounts = coursePackageDiscountClient.queryCoursePackageDiscount(coursePackagePaymentConfig.getId()); + map.put("coursePackageDiscount", tCoursePackageDiscounts); + list.add(map); + } + model.addAttribute("coursePackagePaymentConfig", JSON.toJSONString(list)); + return PREFIX + "coursePackageDiscount.html"; + } + @RequestMapping("/infoOne") + public String infoOne( Integer id, Model model) { + Integer state = courseClient.queryDiscountById(id); + if(state==1){ + model.addAttribute("stateStr","待审核"); + model.addAttribute("state",1); + }else { + model.addAttribute("stateStr","未通过"); + model.addAttribute("state",3); + } + + TCoursePackage tCoursePackage1 = courseClient.queryByDiscountId(id); + TCoursePackage tCoursePackage = coursePackageService.queryById(tCoursePackage1.getId()); + model.addAttribute("item", tCoursePackage); + List<CoursePackagePaymentConfig> list4 = coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(id); + List<Map<String, Object>> list = new ArrayList<>(); + for (CoursePackagePaymentConfig coursePackagePaymentConfig : list4) { + if(coursePackagePaymentConfig.getCashPayment() == 0){ + continue; + } + Map<String, Object> map = new HashMap<>(); + map.put("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()); + map.put("classHours", coursePackagePaymentConfig.getClassHours()); + String payment = ""; + if(coursePackagePaymentConfig.getCashPayment() > 0){ + payment += "现金支付"; + } + if(coursePackagePaymentConfig.getPlayPaiCoin() > 0){ + payment += (ToolUtil.isNotEmpty(payment) ? "、" : "") + "玩湃币支付"; + } + map.put("payment", payment); + map.put("cashPayment", coursePackagePaymentConfig.getCashPayment()); + List<TCoursePackageDiscount> tCoursePackageDiscounts = coursePackageDiscountClient.queryCoursePackageDiscountOne(coursePackagePaymentConfig.getId()); + map.put("coursePackageDiscount", tCoursePackageDiscounts); + list.add(map); + } + model.addAttribute("coursePackagePaymentConfig", JSON.toJSONString(list)); + return PREFIX1 + "coursePackageDiscount.html"; + } + + + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String provinceCode, String cityCode, String shopName, String name, Integer type) { + LambdaQueryWrapper<TStore> wrapper = new LambdaQueryWrapper<>(); + if(ToolUtil.isNotEmpty(shopName)){ + wrapper.like(TStore::getName, shopName); + } + List<TStore> list = storeService.list(wrapper); + Page<DiscountList> page = new PageFactory<DiscountList>().defaultPage(); + List<DiscountList> discountLists = courseClient.queryDiscountList(new QueryDiscountList(page.getCurrent(),page.getSize(),provinceCode,cityCode,name,type,list.stream().map(TStore::getId).collect(Collectors.toList()))); + for (DiscountList discountList : discountLists) { + for (TStore tStore : list) { + if(discountList.getStoreId().equals(tStore.getId())){ + discountList.setShopName(tStore.getName()); + } + } + } + page.setRecords(discountLists); + return super.packForBT(page); + } + @RequestMapping(value = "/listAudit") + @ResponseBody + public Object listAudit(String provinceCode, String cityCode, String shopName, String name, Integer type) { + LambdaQueryWrapper<TStore> wrapper = new LambdaQueryWrapper<>(); + if(ToolUtil.isNotEmpty(shopName)){ + wrapper.like(TStore::getName, shopName); + } + List<TStore> list = storeService.list(wrapper); + Page<DiscountList> page = new PageFactory<DiscountList>().defaultPage(); + List<DiscountList> discountLists = courseClient.queryDiscountListAudit(new QueryDiscountList(page.getCurrent(),page.getSize(),provinceCode,cityCode,name,type,list.stream().map(TStore::getId).collect(Collectors.toList()))); + for (DiscountList discountList : discountLists) { + for (TStore tStore : list) { + if(discountList.getStoreId().equals(tStore.getId())){ + discountList.setShopName(tStore.getName()); + } + } + } + page.setRecords(discountLists); + return super.packForBT(page); + } + + + @RequestMapping(value = "/updateState") + @ResponseBody + public Object updateState( Integer id,Integer status) { + try { + Boolean b = courseClient.updateState(new DiscountUpdateState(id,status)); + if(b){ + return new SuccessTip<>(); + } + return new ErrorTip(500,""); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + @RequestMapping(value = "/auditDiscount") + @ResponseBody + public Object auditDiscount(Integer id,Integer audit,String text) { + try { + Boolean b = courseClient.auditDiscount(new AuditDiscount(id,audit,text)); + if(b){ + return new SuccessTip<>(); + } + return new ErrorTip(500,""); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + + @RequestMapping(value = "/add") + @ResponseBody + public Object list(Competition competition) { + try { + if(ToolUtil.isNotEmpty(competition.getProvinceCode())) { + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getProvinceCode())); + competition.setProvince(one.getName()); + TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getCityCode())); + competition.setCity(one1.getName()); + } + competition.setAuditStatus(1); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + competition.setStartTime(format.parse(competition.getSTime())); + competition.setEndTime(format.parse(competition.getETime())); + competition.setRegisterEndTime(format.parse(competition.getREndTime())); + competitionClient.add(competition); + return new SuccessTip<>(); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Competition competition) { + try { + Competition competition1 = competitionClient.queryById(competition.getId()); + if(ToolUtil.isNotEmpty(competition.getProvinceCode())) { + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getProvinceCode())); + competition.setProvince(one.getName()); + TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getCityCode())); + competition.setCity(one1.getName()); + } + if(ToolUtil.isEmpty(competition.getCoverDrawing())){ + competition.setCoverDrawing(competition1.getCoverDrawing()); + } + if(ToolUtil.isEmpty(competition.getRegistrationNotes())){ + competition.setRegistrationNotes(competition1.getRegistrationNotes()); + } + competitionClient.update(competition); + return new SuccessTip<>(); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + + @RequestMapping(value = "/cancel") + public Object cancel(Integer id) { + try { + competitionClient.cancel(id); + return SUCCESS_TIP; + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + @RequestMapping(value = "/getPeopleFromId") + public Object getPeopleFromId(Integer id,Integer state) { + try { + Page<Object> page = new PageFactory<>().defaultPage(); + Page<CompetitionUser> data = competitionClient.getPeopleFromId(new GetPeopleQuery(page.getSize(),page.getCurrent(),id,state)); + return super.packForBT(data); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + @RequestMapping(value = "/onChange") + @ResponseBody + public Object onChange(Integer oneId) { + try { + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, oneId)); + return cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId())); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + @RequestMapping(value = "/oneChangeNext") + @ResponseBody + public Object oneChangeNext(Integer oneId) { + try { + return storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode, oneId)); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java index 7b5790d..4bde281 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java @@ -13,6 +13,7 @@ import com.dsh.course.feignClient.activity.CouponClient; import com.dsh.course.feignClient.activity.PointMercharsClient; import com.dsh.course.feignClient.activity.model.*; +import com.dsh.course.feignClient.course.CourseClient; import com.dsh.guns.config.UserExt; import com.dsh.guns.core.base.controller.BaseController; import com.dsh.guns.core.base.tips.ErrorTip; @@ -32,6 +33,8 @@ import javax.annotation.Resource; import java.io.IOException; +import java.math.BigDecimal; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -67,6 +70,9 @@ @Autowired private ICityService cityService; + @Autowired + private CourseClient courseClient; + @Resource private PointMercharsClient pointMercharsClient; @@ -91,6 +97,10 @@ model.addAttribute("userType",objectType); List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); model.addAttribute("list",list); + List<Map<String,Object>> listOne = courseClient.getPageageType(); + model.addAttribute("courseType",listOne); + + return PREFIX + "TGoods_add.html"; } @@ -105,6 +115,56 @@ List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); model.addAttribute("list",list); return PREFIX + "TGoods_detail_one.html"; + } + + @RequestMapping("/goods_info/{id}") + public String memberCouponInfo(@PathVariable Integer id, Model model) { + PointsMerchandise pointMercharsVo = pointMercharsClient.queryPointMerchaseById(id); + model.addAttribute("item",pointMercharsVo); + if(pointMercharsVo.getType()==2){ + Date startTime = pointMercharsVo.getStartTime(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + model.addAttribute("sTime",format.format(startTime)); + model.addAttribute("eTime",format.format(pointMercharsVo.getEndTime())); + Integer shopId = pointMercharsClient.getshopName(id); + TStore byId = storeService.getById(shopId); + model.addAttribute("shopName",byId.getName()); + Integer coursePackageId = pointMercharsVo.getCoursePackageId(); + List<String> name = courseClient.queryPackageById(coursePackageId); + Integer coursePackageId1 = pointMercharsVo.getCoursePackageId(); + String classHours = courseClient.getHours(coursePackageId1); + model.addAttribute("typeName",name.get(0)); + model.addAttribute("pageName",name.get(1)); + model.addAttribute("classHours",classHours); + String productImages = pointMercharsVo.getProductImages(); + ArrayList<String> strings = new ArrayList<>(); + for (String s : productImages.split(",")) { + strings.add(s); + } + model.addAttribute("pictures",strings); + return PREFIX + "TGoods_detail_two.html"; + }else { + GoodsInfoOneVo infoOneVo = pointMercharsClient.queryDetailsOfGoods(id); + System.out.println("pointMercharsVo:"+infoOneVo); + model.addAttribute("item",infoOneVo); + String[] split = infoOneVo.getPics().split(","); + List<String> list = Arrays.asList(split); + if (infoOneVo.getUseScope() == 2){ + List<StoreVos> provinces = pointMercharsClient.getProvinces(id); + model.addAttribute("city",provinces); + } + if (infoOneVo.getUseScope() == 2){ + List<StoreVos> storeVos = pointMercharsClient.getStoreList(id); + model.addAttribute("store",storeVos); + } + model.addAttribute("pictures",list); + model.addAttribute("exchangeMethod",infoOneVo.getExchangeMethod()); + return PREFIX + "TGoods_detail_one.html"; + } + + + + } @@ -338,6 +398,104 @@ pointMercharsClient.updateGoodsDetail(stringObjectHashMap); return new SuccessTip<>(); } + /* + ajax.set("typeAll",typeAll); + ajax.set("provinceCode",pCode); + ajax.set("cityCode",cCode); + ajax.set("storeId",storeId); + ajax.set("coursePackageTypeId",coursePackageTypeId); + ajax.set("coursePackageId",coursePackageId); + ajax.set("coursePackageConfigId",coursePackageConfigId); + ajax.set("price",price); + ajax.set("type",type); + ajax.set("integral",integral); + ajax.set("cash",cash); + ajax.set("cover",cover1); + ajax.set("imgOne",imgOne); + ajax.set("userPopulation",userPopulation); + ajax.set("quantityIssued",quantityIssued); + ajax.set("pickUpQuantity",pickUpQuantity); + ajax.set("startTime",startTime); + ajax.set("text",text); + ajax.set("sort",sort); + ajax.set("useScope",company); + ajax.set("cityIds",cts); + ajax.set("storeIds",stores); + */ + @PostMapping(value = "/add") + @ResponseBody + public Object add( Integer typeAll,String provinceCode,String cityCode,Integer storeId,Integer coursePackageTypeId,Integer coursePackageId,Integer coursePackageConfigId, + Double price,Integer type,Integer integral,Double cash,String cover,String imgOne,Integer userPopulation,Integer quantityIssued,Integer pickUpQuantity, + String startTime,String text,Integer sort,String name,Integer useScope,String cityIds,String storeIds + ) throws ParseException { + PointsMerchandise pointsMerchandise = new PointsMerchandise(); + pointsMerchandise.setType(typeAll); + pointsMerchandise.setName(name); + pointsMerchandise.setCoursePackageId(coursePackageId); + pointsMerchandise.setPrice(new BigDecimal(price)); + pointsMerchandise.setRedemptionMethod(type); + if(type==2 || type==3){ + pointsMerchandise.setCash(new BigDecimal(cash)); + } + if(type==1 || type==2){ + pointsMerchandise.setIntegral(integral); + } + pointsMerchandise.setCover(cover); + pointsMerchandise.setProductImages(imgOne); + pointsMerchandise.setUserPopulation(userPopulation); + pointsMerchandise.setQuantityIssued(quantityIssued); + pointsMerchandise.setPickUpQuantity(pickUpQuantity); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + pointsMerchandise.setStartTime(format.parse(startTime.split(" - ")[0])); + pointsMerchandise.setEndTime(format.parse(startTime.split(" - ")[1])); + pointsMerchandise.setUseScope(useScope); + if(ToolUtil.isNotEmpty(provinceCode)){ + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, provinceCode)); + pointsMerchandise.setProvinceCode(provinceCode); + pointsMerchandise.setProvince(one.getName()); + } + if(ToolUtil.isNotEmpty(cityCode)){ + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, cityCode)); + pointsMerchandise.setCityCode(cityCode); + pointsMerchandise.setCity(one.getName()); + } + pointsMerchandise.setRedemptionInstructions(text); + pointsMerchandise.setSort(sort); + pointsMerchandise.setState(1); + pointsMerchandise.setInsertTime(new Date()); + pointsMerchandise.setCoursePackageConfigId(coursePackageConfigId); + // 代替storeId + pointsMerchandise.setShelves(storeId); + Integer id = pointMercharsClient.add(pointsMerchandise); + if(typeAll!=2){ + if(useScope==2){ + ArrayList<Map<String,String>> objects = new ArrayList<>(); + for (String s : cityIds.split(",")) { + TCity tCity = cityService.getById(Integer.valueOf(s)); + HashMap<String, String> map = new HashMap<>(); + TCity pCity = cityService.getById(tCity.getParentId()); + map.put("pName",pCity.getName()); + map.put("pCode",pCity.getCode()); + map.put("cName",tCity.getName()); + map.put("cCode",tCity.getCode()); + map.put("id",id.toString()); + objects.add(map); + } + pointMercharsClient.addCitys(objects); + }else if(useScope==3){ + String pam = id+"_"+storeIds; + // 添加多个城市 门店 + try{ + pointMercharsClient.addOther(pam); + + }catch (Exception e){ + e.printStackTrace(); + } + } + } + return new SuccessTip<>(); + + } /** @@ -478,29 +636,7 @@ } - /** - * 跳转到修改商品详情 - */ - @RequestMapping("/goods_info/{id}") - public String goodsInfo(@PathVariable Integer id, Model model) { - System.out.println("id:"+id); - GoodsInfoOneVo infoOneVo = pointMercharsClient.queryDetailsOfGoods(id); - System.out.println("pointMercharsVo:"+infoOneVo); - model.addAttribute("item",infoOneVo); - String[] split = infoOneVo.getPics().split(","); - List<String> list = Arrays.asList(split); - if (infoOneVo.getUseScope() == 2){ - List<StoreVos> provinces = pointMercharsClient.getProvinces(id); - model.addAttribute("city",provinces); - } - if (infoOneVo.getUseScope() == 2){ - List<StoreVos> storeVos = pointMercharsClient.getStoreList(id); - model.addAttribute("store",storeVos); - } - model.addAttribute("pictures",list); - model.addAttribute("exchangeMethod",infoOneVo.getExchangeMethod()); - return PREFIX + "TGoods_detail_one.html"; - } + } diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html index 4d20724..74d77c3 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html @@ -256,7 +256,7 @@ <i class="el-icon-plus"></i> </el-upload> <el-dialog :visible.sync="dialogVisible"> - <img width="100%" :src="imageUrl1" alt=""> + <img width="100%" :src="imageUrl1" alt=""></el-dialog> </el-dialog> </div> </div> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_add.html new file mode 100644 index 0000000..0e0a53c --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_add.html @@ -0,0 +1,83 @@ +@layout("/common/_container.html"){ +<div class="ibox float-e-margins"> + <div class="ibox-content"> + + + <div class="form-horizontal" id="carInfoForm"> + <div class="form-group" id="provinceCode"> + <label class="col-sm-3 control-label">所在省:</label> + <div class="col-sm-9"> + <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)"> + <option value="">选择省</option> + @for(obj in list){ + <option value="${obj.code}">${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group" id="cityCode"> + <label class="col-sm-3 control-label">所在市:</label> + <div class="col-sm-9"> + <select class="form-control" id="cCode" name="cCode"> + <option value="">选择市</option> + </select> + </div> + </div> + <#input id="name" name="管理员姓名" type="text"/> + <#input id="phone" name="管理员手机号" type="text"/> + + + </div> +</div> + +<div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.addSubmit()"/> + <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> + </div> +</div> + + </div> + + </div> +</div> +<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script> +<script> + laydate.render({ + elem: '#annualInspectionTime' + ,lang:"en" + }); + laydate.render({ + elem: '#commercialInsuranceTime' + ,lang:"en" + }); + laydate.render({ + elem: '#certifyDateA' + ,lang:"en" + }); + laydate.render({ + elem: '#transDateStart' + ,lang:"en" + }); + laydate.render({ + elem: '#transDateStop' + ,lang:"en" + }); + laydate.render({ + elem: '#certifyDateB' + ,lang:"en" + }); + laydate.render({ + elem: '#nextFixDate' + ,lang:"en" + }); + laydate.render({ + elem: '#GPSInstallDate' + ,lang:"en" + }); + laydate.render({ + elem: '#registerDate' + ,lang:"en" + }); +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_edit.html new file mode 100644 index 0000000..8bb70f5 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_edit.html @@ -0,0 +1,98 @@ +@layout("/common/_container.html"){ +<div class="ibox float-e-margins"> + <div class="ibox-content"> + + <div class="form-horizontal" id="carInfoForm"> + <input hidden id="id" value="${item.id}"> + <div class="form-group" id="provinceCode"> + <label class="col-sm-3 control-label">所在省:</label> + <div class="col-sm-9"> + <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)"> + <option value="">选择省</option> + @for(obj in list){ + <option value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option> + <option value="${obj.code}">${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group" id="cityCode"> + <label class="col-sm-3 control-label">所在市:</label> + <div class="col-sm-9"> + <select class="form-control" id="cCode" name="cCode"> + <option value="">选择市</option> + @for(obj in list1){ + <option value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + </div> + </div> + <#input id="name" name="发放数量" type="text" value="${item.name}"/> + <#input id="phone" name="管理员手机号" type="text" value="${item.phone}"/> + + + </div> + <div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/> + <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> + </div> + </div> + + </div> +</div> +<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script> +<script> + laydate.render({ + elem: '#annualInspectionTime' + ,lang:"en" + }); + laydate.render({ + elem: '#commercialInsuranceTime' + ,lang:"en" + }); + laydate.render({ + elem: '#certifyDateA' + ,lang:"en" + }); + laydate.render({ + elem: '#transDateStart' + ,lang:"en" + }); + laydate.render({ + elem: '#transDateStop' + ,lang:"en" + }); + laydate.render({ + + elem: '#certifyDateB' + ,lang:"en" + }); + laydate.render({ + elem: '#nextFixDate' + ,lang:"en" + }); + laydate.render({ + elem: '#GPSInstallDate' + ,lang:"en" + }); + laydate.render({ + elem: '#registerDate' + ,lang:"en" + }); +</script> +<script type="application/javascript"> + $(function() { + var companyType = $("input[name='companyType']:checked").val(); + if (1 == companyType){ + $(".companyDiv").hide(); + } else if (2 == companyType){ + $(".companyDiv").show(); + } + + TCarInfoDlg.zcServerClick(); + TCarInfoDlg.kcServerClick(); + + }); +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TDiscount.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TDiscount.html new file mode 100644 index 0000000..009a6c1 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TDiscount.html @@ -0,0 +1,80 @@ + @layout("/common/_container.html"){ +<div class="row"> + <div class="col-sm-12"> + <div class="ibox float-e-margins"> + + <div class="ibox-title"> + <h5>折扣管理</h5> + </div> + <div class="ibox-content"> + <div class="row row-lg"> + <div class="col-sm-12"> + <div class="row"> + <div class="col-sm-3"> + <div class="input-group"> + <div class="input-group-btn open"> + <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true"> + 所在省 + </button> + </div> + <select class="form-control" id="pCode" onchange="TCompetition.oneChange(this)"> + <option value="">全部</option> + @for(obj in list){ + <option value="${obj.code}">${obj.name}</option> + @} + </select> + </div> + </div> + + <div class="col-sm-3"> + <div class="input-group"> + <div class="input-group-btn open"> + <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true"> + 所在市 + </button> + </div> + <select class="form-control" id="cCode"> + </select> + </div> + </div> + <div class="col-sm-3"> + <#NameCon id="shopName" name="所属门店" /> + </div> + <div class="col-sm-3"> + <#NameCon id="name" name="课包名称" /> + </div> + <div class="col-sm-3"> + <#SelectCon id="type" name="折扣类型" > + <option value="">全部</option> + <option value="1">会员折扣</option> + <option value="3">限时折扣</option> + <option value="4">赠送课时</option> + </#SelectCon> + </div> + <div class="col-sm-3"> + <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/> + <#button name="重置" icon="fa-trash" clickFun="TCompetition.resetSearch()" space="true"/> + </div> + </div> + <div class="hidden-xs" id="TCompetitionTableToolbar" role="group"> + <#button name="上架" icon="fa-plus" clickFun="TCompetition.updateState(1)"/> + <#button name="下架" icon="fa-edit" clickFun="TCompetition.updateState(2)" space="true"/> + <#button name="查看详情" icon="fa-remove" clickFun="TCompetition.info()" space="true"/> + + </div> + <#table id="TCompetitionTable"/> + </div> + </div> + </div> +</div> +</div> +</div> +<script src="${ctxPath}/modular/system/tDiscount/tDiscount.js"></script> +<script> + laydate.render({ + elem: '#createTime' + ,range: true + ,lang:"en" + }); +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/coursePackageDiscount.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/coursePackageDiscount.html new file mode 100644 index 0000000..8b7c500 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/coursePackageDiscount.html @@ -0,0 +1,88 @@ +@layout("/common/_container.html"){ +<div class="ibox float-e-margins"> + <div class="ibox-content"> + <div class="form-horizontal"> + <div class="row"> + <input type="hidden" id="id" value="${item.id}"> + <input type="hidden" id="coursePackagePaymentConfig" value='${coursePackagePaymentConfig}'> + <div class="form-group"> + <div class="col-sm-2"></div> + <div class="col-sm-10"> + <label class="col-sm-2 control-label">课包名称:</label> + <div class="col-sm-4" style="margin-top: 6px;"> + <span>${item.name}</span> + </div> + </div> + </div> + <div class="form-group"> + <div class="col-sm-2"></div> + <div class="col-sm-10"> + <div class="col-sm-2"> + </div> + <div class="col-sm-6" id="classHours" style="margin-top: 6px;"> + </div> + </div> + </div> + <div class="form-group"> + <div class="col-sm-2"></div> + <div class="col-sm-10"> + <label class="col-sm-2 control-label">支付方式:</label> + <div class="col-sm-4" style="margin-top: 6px;"> + <span id="payment"></span> + </div> + </div> + </div> + <div class="form-group"> + <div class="col-sm-2"></div> + <div class="col-sm-10"> + <label class="col-sm-2 control-label">现金支付:</label> + <div class="col-sm-4" style="margin-top: 6px;"> + <span id="cashPayment"></span> + </div> + </div> + </div> + <div class="form-group"> + <div class="col-sm-2"></div> + <div class="col-sm-10"> + <label class="col-sm-2 control-label">*折扣类型:</label> + <div class="col-sm-6" id="types" style="margin-top: 6px;"> + <input type="checkbox" name="type" value="1"> 会员折扣 + <input type="checkbox" name="type" value="2"> 续课优惠 + <input type="checkbox" name="type" value="3"> 限时折扣 + <input type="checkbox" name="type" value="4"> 赠送课时 + </div> + </div> + </div> + <div id="memberDiscount"> + + </div> + <div id="renewalOffer"> + + </div> + <div id="limitedTimeDiscount"> + + </div> + <div id="complimentaryClass"> + + </div> + </div> + <div class="row btn-group-m-t"> + <div class="col-sm-10"> + <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> + </div> + </div> + </div> + </div> +</div> +<script src="${ctxPath}/modular/system/coursePackage/coursePackageDiscount.js"></script> +<script src="${ctxPath}/modular/system/tDiscount/tDiscount_info.js"></script> + + +<script type="text/javascript"> + laydate.render({ + elem: '#classStartTime' + ,type: 'time' + ,range: true + }); +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_add.html new file mode 100644 index 0000000..0e0a53c --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_add.html @@ -0,0 +1,83 @@ +@layout("/common/_container.html"){ +<div class="ibox float-e-margins"> + <div class="ibox-content"> + + + <div class="form-horizontal" id="carInfoForm"> + <div class="form-group" id="provinceCode"> + <label class="col-sm-3 control-label">所在省:</label> + <div class="col-sm-9"> + <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)"> + <option value="">选择省</option> + @for(obj in list){ + <option value="${obj.code}">${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group" id="cityCode"> + <label class="col-sm-3 control-label">所在市:</label> + <div class="col-sm-9"> + <select class="form-control" id="cCode" name="cCode"> + <option value="">选择市</option> + </select> + </div> + </div> + <#input id="name" name="管理员姓名" type="text"/> + <#input id="phone" name="管理员手机号" type="text"/> + + + </div> +</div> + +<div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.addSubmit()"/> + <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> + </div> +</div> + + </div> + + </div> +</div> +<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script> +<script> + laydate.render({ + elem: '#annualInspectionTime' + ,lang:"en" + }); + laydate.render({ + elem: '#commercialInsuranceTime' + ,lang:"en" + }); + laydate.render({ + elem: '#certifyDateA' + ,lang:"en" + }); + laydate.render({ + elem: '#transDateStart' + ,lang:"en" + }); + laydate.render({ + elem: '#transDateStop' + ,lang:"en" + }); + laydate.render({ + elem: '#certifyDateB' + ,lang:"en" + }); + laydate.render({ + elem: '#nextFixDate' + ,lang:"en" + }); + laydate.render({ + elem: '#GPSInstallDate' + ,lang:"en" + }); + laydate.render({ + elem: '#registerDate' + ,lang:"en" + }); +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_edit.html new file mode 100644 index 0000000..8bb70f5 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_edit.html @@ -0,0 +1,98 @@ +@layout("/common/_container.html"){ +<div class="ibox float-e-margins"> + <div class="ibox-content"> + + <div class="form-horizontal" id="carInfoForm"> + <input hidden id="id" value="${item.id}"> + <div class="form-group" id="provinceCode"> + <label class="col-sm-3 control-label">所在省:</label> + <div class="col-sm-9"> + <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)"> + <option value="">选择省</option> + @for(obj in list){ + <option value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option> + <option value="${obj.code}">${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group" id="cityCode"> + <label class="col-sm-3 control-label">所在市:</label> + <div class="col-sm-9"> + <select class="form-control" id="cCode" name="cCode"> + <option value="">选择市</option> + @for(obj in list1){ + <option value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + </div> + </div> + <#input id="name" name="发放数量" type="text" value="${item.name}"/> + <#input id="phone" name="管理员手机号" type="text" value="${item.phone}"/> + + + </div> + <div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/> + <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> + </div> + </div> + + </div> +</div> +<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script> +<script> + laydate.render({ + elem: '#annualInspectionTime' + ,lang:"en" + }); + laydate.render({ + elem: '#commercialInsuranceTime' + ,lang:"en" + }); + laydate.render({ + elem: '#certifyDateA' + ,lang:"en" + }); + laydate.render({ + elem: '#transDateStart' + ,lang:"en" + }); + laydate.render({ + elem: '#transDateStop' + ,lang:"en" + }); + laydate.render({ + + elem: '#certifyDateB' + ,lang:"en" + }); + laydate.render({ + elem: '#nextFixDate' + ,lang:"en" + }); + laydate.render({ + elem: '#GPSInstallDate' + ,lang:"en" + }); + laydate.render({ + elem: '#registerDate' + ,lang:"en" + }); +</script> +<script type="application/javascript"> + $(function() { + var companyType = $("input[name='companyType']:checked").val(); + if (1 == companyType){ + $(".companyDiv").hide(); + } else if (2 == companyType){ + $(".companyDiv").show(); + } + + TCarInfoDlg.zcServerClick(); + TCarInfoDlg.kcServerClick(); + + }); +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TDiscount.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TDiscount.html new file mode 100644 index 0000000..0865808 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TDiscount.html @@ -0,0 +1,79 @@ + @layout("/common/_container.html"){ +<div class="row"> + <div class="col-sm-12"> + <div class="ibox float-e-margins"> + + <div class="ibox-title"> + <h5>折扣管理</h5> + </div> + <div class="ibox-content"> + <div class="row row-lg"> + <div class="col-sm-12"> + <div class="row"> + <div class="col-sm-3"> + <div class="input-group"> + <div class="input-group-btn open"> + <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true"> + 所在省 + </button> + </div> + <select class="form-control" id="pCode" onchange="TCompetition.oneChange(this)"> + <option value="">全部</option> + @for(obj in list){ + <option value="${obj.code}">${obj.name}</option> + @} + </select> + </div> + </div> + + <div class="col-sm-3"> + <div class="input-group"> + <div class="input-group-btn open"> + <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true"> + 所在市 + </button> + </div> + <select class="form-control" id="cCode"> + </select> + </div> + </div> + <div class="col-sm-3"> + <#NameCon id="shopName" name="所属门店" /> + </div> + <div class="col-sm-3"> + <#NameCon id="name" name="课包名称" /> + </div> + <div class="col-sm-3"> + <#SelectCon id="type" name="折扣类型" > + <option value="">全部</option> + <option value="1">会员折扣</option> + <option value="3">限时折扣</option> + <option value="4">赠送课时</option> + </#SelectCon> + </div> + <div class="col-sm-3"> + <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/> + <#button name="重置" icon="fa-trash" clickFun="TCompetition.resetSearch()" space="true"/> + </div> + </div> + <div class="hidden-xs" id="TCompetitionTableToolbar" role="group"> + <#button name="审核" icon="fa-plus" clickFun="TCompetition.audit()"/> + <#button name="查看详情" icon="fa-remove" clickFun="TCompetition.info()" space="true"/> + + </div> + <#table id="TCompetitionTable"/> + </div> + </div> + </div> +</div> +</div> +</div> +<script src="${ctxPath}/modular/system/tDiscountAudit/tDiscount.js"></script> +<script> + laydate.render({ + elem: '#createTime' + ,range: true + ,lang:"en" + }); +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/coursePackageDiscount.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/coursePackageDiscount.html new file mode 100644 index 0000000..eafdd81 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/coursePackageDiscount.html @@ -0,0 +1,105 @@ +@layout("/common/_container.html"){ +<div class="ibox float-e-margins"> + <div class="ibox-content"> + <div class="form-horizontal"> + <div class="row"> + <input type="hidden" id="id" value="${item.id}"> + <input type="hidden" id="coursePackagePaymentConfig" value='${coursePackagePaymentConfig}'> + <div class="form-group"> + <div class="col-sm-2"></div> + <div class="col-sm-10"> + <label class="col-sm-2 control-label">当前状态:</label> + @if(state==1){ + <div class="col-sm-4" style="margin-top: 6px;color: goldenrod"> + <span>${stateStr}</span> + </div> + @} + @if(state==3){ + <div class="col-sm-4" style="margin-top: 6px;color: red"> + <span>${stateStr}</span> + </div> + @} + + </div> + </div> + <div class="form-group"> + <div class="col-sm-2"></div> + <div class="col-sm-10"> + <label class="col-sm-2 control-label">课包名称:</label> + <div class="col-sm-4" style="margin-top: 6px;"> + <span>${item.name}</span> + </div> + </div> + </div> + <div class="form-group"> + <div class="col-sm-2"></div> + <div class="col-sm-10"> + <div class="col-sm-2"> + </div> + <div class="col-sm-6" id="classHours" style="margin-top: 6px;"> + </div> + </div> + </div> + <div class="form-group"> + <div class="col-sm-2"></div> + <div class="col-sm-10"> + <label class="col-sm-2 control-label">支付方式:</label> + <div class="col-sm-4" style="margin-top: 6px;"> + <span id="payment"></span> + </div> + </div> + </div> + <div class="form-group"> + <div class="col-sm-2"></div> + <div class="col-sm-10"> + <label class="col-sm-2 control-label">现金支付:</label> + <div class="col-sm-4" style="margin-top: 6px;"> + <span id="cashPayment"></span> + </div> + </div> + </div> + <div class="form-group"> + <div class="col-sm-2"></div> + <div class="col-sm-10"> + <label class="col-sm-2 control-label">*折扣类型:</label> + <div class="col-sm-6" id="types" style="margin-top: 6px;"> + <input type="checkbox" name="type" value="1"> 会员折扣 + <input type="checkbox" name="type" value="2"> 续课优惠 + <input type="checkbox" name="type" value="3"> 限时折扣 + <input type="checkbox" name="type" value="4"> 赠送课时 + </div> + </div> + </div> + <div id="memberDiscount"> + + </div> + <div id="renewalOffer"> + + </div> + <div id="limitedTimeDiscount"> + + </div> + <div id="complimentaryClass"> + + </div> + </div> + <div class="row btn-group-m-t"> + <div class="col-sm-10"> + <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> + </div> + </div> + </div> + </div> +</div> +<script src="${ctxPath}/modular/system/tDiscountAudit/coursePackageDiscount.js"></script> +<script src="${ctxPath}/modular/system/tDiscount/tDiscount_info.js"></script> + + +<script type="text/javascript"> + laydate.render({ + elem: '#classStartTime' + ,type: 'time' + ,range: true + }); +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html index 2a03a9d..6c080fa 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html @@ -53,9 +53,9 @@ <div class="form-group"> <label class="col-sm-3 control-label">兑换方式:</label> <div class="col-sm-9"> - <input type="radio" name="redemptionMethod" value="1" checked> 积分 - <input type="radio" name="redemptionMethod" value="2" > 现金+积分 - <input type="radio" name="redemptionMethod" value="3" > 现金 + <input type="radio" name="redemptionMethod" value="1" onclick="updateMethod(3)" checked> 积分 + <input type="radio" name="redemptionMethod" value="2" onclick="updateMethod(4)"> 现金+积分 + <input type="radio" name="redemptionMethod" value="3" onclick="updateMethod(5)"> 现金 </div> </div> @@ -76,26 +76,29 @@ </div> <#avatar id="cover" name="商品封面" /> - <div class="row" id="app" style="margin-left: 225px;" > - <div class="col-sm-6"> - <div class="form-group"> - <label class="col-sm-3 control-label">商品图片: </label> - <div class="col-sm-2" style="margin-top: 2%"> - <el-upload - class="avatar-uploader" - action="/tCouponManage/uploadPic" - :on-success="handleAvatarSuccess" - accept=".jpg,.jpeg,.png,.JPG,.JPEG" - :on-remove="handleRemove" - :before-upload="beforeAvatarUpload"> - <img v-if="imageUrl" :src="imageUrl" class="avatar"> - <i v-else class="el-icon-plus avatar-uploader-icon"></i> - </el-upload> - </div> - </div> + <div class="row" id="app" > + <div class="col-sm-6" style="width: 100%"> + <div class="form-group"> + <label class="col-sm-3 control-label" style="width: 15%;margin-left: 7%">*商品图片(请上传不超过五张图片): </label> + <div class="col-sm-2" style="width: 100%;margin-left: 12%;margin-top: 1%"> + <el-upload + :limit="5" + class="avatar-uploader" + action="/tCouponManage/uploadPic" + list-type="picture-card" + accept=".jpg,.jpeg,.png,.JPG,.JPEG" + :on-success="handleAvatarSuccess" + :on-remove="handleRemove"> + <i class="el-icon-plus"></i> + </el-upload> + <el-dialog :visible.sync="dialogVisible"> + <img width="100%" :src="imageUrl1" alt=""></el-dialog> + </div> + </div> + + </div> </div> - </div> <div class="form-group"> @@ -129,17 +132,17 @@ <label class="col-sm-3">*适用范围: </label> <div class="col-sm-2" id="belongsNationwide" > <input class="col-sm-1" onclick="scopeOfApplication1()" name="company" type="radio" - value="0" checked style="margin-top: 10px"/> + value="1" checked style="margin-top: 10px"/> <label class="col-sm-1" style="width: 38%;margin-top: 7px">全国通用</label> </div> <div class="col-sm-2" id="belongsCity" > <input class="col-sm-1" name="company" onclick="scopeOfApplication2()" type="radio" - value="1" style="margin-top: 10px"/> + value="2" style="margin-top: 10px"/> <label class="col-sm-1" style="width: 38%;margin-top: 7px">指定城市</label> </div> <div class="col-sm-2" id="belongsStore" > <input class="col-sm-1" name="company" onclick="scopeOfApplication3()" type="radio" - value="1" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/> + value="3" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/> <label class="col-sm-1" style="width: 38%;margin-top: 6px;">指定门店</label> </div> </div> @@ -228,9 +231,141 @@ <div class="form-group" id="cityCode"> <label class="col-sm-3 control-label">所在市:</label> <div class="col-sm-9"> - <select class="form-control" id="cCode" name="cCode"> + <select class="form-control" id="cCode" name="cCode" onchange="TCarInfoDlg.storeChange(this)"> <option value="">选择市</option> </select> + </div> + </div> + + <div class="form-group" > + <label class="col-sm-3 control-label">所属门店:</label> + <div class="col-sm-9"> + <select class="form-control" id="storeId" name="storeId"> + <option value="">选择门店</option> + </select> + </div> + </div> + + <div class="form-group" > + <label class="col-sm-3 control-label">课包类型:</label> + <div class="col-sm-9"> + <select class="form-control" id="coursePackageTypeId" name="pCode" onchange="TCarInfoDlg.packageChange(this)"> + <option value="">选择课包类型</option> + @for(obj in courseType){ + <option value="${obj.id}">${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group" > + <label class="col-sm-3 control-label">课包名称:</label> + <div class="col-sm-9"> + <select class="form-control" id="coursePackageId" name="coursePackageId" onchange="TCarInfoDlg.timeChange(this)"> + <option value="">选择课包</option> + </select> + </div> + </div> + + <div class="form-group" > + <label class="col-sm-3 control-label">课时数:</label> + <div class="col-sm-9"> + <select class="form-control" id="coursePackageConfigId" name="coursePackageConfigId"> + <option value="">选择课时数</option> + </select> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">原价:</label> + <div class="col-sm-9"> + <input class="form-control" id="price1" name="price" type="text"> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">兑换方式:</label> + <div class="col-sm-9"> + <input type="radio" name="redemptionMethod" value="1" checked onclick="updateMethod(1)"> 积分 + <input type="radio" name="redemptionMethod" value="2" onclick="updateMethod(2)"> 现金+积分 + </div> + </div> + + <div class="form-group" id="y3" hidden> + <label class="col-sm-3 control-label">所需现金:</label> + <div class="col-sm-9"> + <input class="form-control" id="cash1" name="cash" type="text"> + + </div> + </div> + <div class="form-group" id="y4"> + <label class="col-sm-3 control-label">所需积分:</label> + <div class="col-sm-9"> + <input class="form-control" id="integral1" name="integral" type="text"> + + </div> + </div> + + + <#avatar id="cover1" name="*商品封面" /> + <div class="row" id="app1" > + <div class="col-sm-6" style="width: 100%"> + <div class="form-group"> + <label class="col-sm-3 control-label" style="width: 15%;margin-left: 7%">*商品图片(请上传不超过五张图片): </label> + <div class="col-sm-2" style="width: 100%;margin-left: 12%;margin-top: 1%"> + <el-upload + :limit="5" + class="avatar-uploader" + action="/tCouponManage/uploadPic" + list-type="picture-card" + accept=".jpg,.jpeg,.png,.JPG,.JPEG" + :on-success="handleAvatarSuccess" + :on-remove="handleRemove"> + <i class="el-icon-plus"></i> + </el-upload> + <el-dialog :visible.sync="dialogVisible"> + <img width="100%" :src="imageUrl1" alt=""></el-dialog> + </div> + </div> + + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">用户人群:</label> + <div class="col-sm-9"> + <input type="radio" name="userPopulation" value="1" checked> 全部用户 + <input type="radio" name="userPopulation" value="2" > 年度会员 + <input type="radio" name="userPopulation" value="3" > 已有学员用户 + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">发放数量:</label> + <div class="col-sm-9"> + <input class="form-control" id="quantityIssued1" name="quantityIssued" type="text"> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">限领数量:</label> + <div class="col-sm-9"> + <input class="form-control" id="pickUpQuantity1" name="pickUpQuantity" type="text"> + </div> + </div> + <#input id="startTime1" name="有效期" type="text"/> + + <div class="form-group" style="margin-left:262px"> + <label class="col-sm-1 control-label">兑换说明:</label> + <div class="col-sm-5"> + <textarea type="text/plain" id="editor1" style="height: 300px;width: 800px;"></textarea> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">排序:</label> + <div class="col-sm-9"> + <input class="form-control" id="sort1" name="sort" type="text"> + </div> </div> @@ -249,21 +384,55 @@ </div> - </div> -</div> <script src="${ctxPath}/js/vue/vue.js"></script> <script src="${ctxPath}/js/elementui/index.js"></script> <link rel="stylesheet" href="${ctxPath}/js/elementui/index.css"> <script src="${ctxPath}/modular/system/tGoods/tGoods_info.js"></script> <script src="${ctxPath}/modular/system/tGoods/TStoreInfo.js"></script> <script> + laydate.render({ + elem: '#startTime', + range: true + }); + laydate.render({ + elem: '#startTime1', + range: true + }); + function updateMethod(e) { + console.log(e) + if(e==1){ + $("#y3").hide() + $("#y4").show() + }else if(e==2){ + $("#y4").show() + $("#y3").show() + }else if(e==3){ + $("#y1").hide() + $("#y2").show() + }else if(e==4){ + $("#y1").show() + $("#y2").show() + }else if(e==5) { + $("#y2").hide() + $("#y1").show() + } + } + let i =1; function updateType(e) { + if(e==2){ $("#b1").hide() $("#b2").show() + if(i==1){ + var drivingLicensePhoto = new $WebUpload("cover1"); + drivingLicensePhoto.setUploadBarId("progressBar"); + drivingLicensePhoto.init(); + i++; + } + }else { - $("#b2 ").hide() + $("#b2").hide() $("#b1").show() } } @@ -359,5 +528,32 @@ created() { }, }); + var vue2 = new Vue({ + el: '#app1', + data: { + autoUpload: true,//自动上传 + imageUrl1: '',//模型数据,用于上传图片完成后图片预览 + dialogVisible: false + }, + methods: { + handleAvatarSuccess(res, file) { + TCarInfoDlg.goodsPicArray1.push(file); + }, + beforeAvatarUpload(file) { + const isLt2M = file.size / 1024 / 1024 < 10; + if (!isLt2M) { + this.$message.error('上传图片大小不能超过 10MB!'); + } + return isLt2M; + }, + handleRemove(file, fileList) { + couponInfoDlg.goodsPicArray = couponInfoDlg.goodsPicArray.filter(item => { + return item.uid != file.uid; + }); + }, + }, + created() { + }, + }); </script> @} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_two.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_two.html new file mode 100644 index 0000000..179eaf9 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_two.html @@ -0,0 +1,396 @@ +@layout("/common/_container.html"){ +<style> + .avatar-uploader .el-upload { + border: 1px dashed #d9d9d9; + border-radius: 6px; + cursor: pointer; + position: relative; + height: 100px; + width: 100px; + overflow: hidden; + } + + .avatar-uploader .el-upload:hover { + border-color: #409eff; + } + .avatar-uploader-icon { + font-size: 28px; + color: #8c939d; + width: 100px; + height: 100px; + line-height: 100px; + margin-top: 34px; + text-align: center; + } + .avatar { + width: 100px; + height: 100px; + display: block; + } + + .col-sm-12 { + margin-top: 20px; + } + + .col-sm-12 select { + height: 33px; + } +</style> +<div class="ibox float-e-margins"> + <div class="ibox-content"> + <input id="s1" value="${item.redemptionMethod}" hidden> + <input id="s2" value="${item.userPopulation}" hidden> + <div class="form-horizontal" id="carInfoForm"> + <#label id="types" name="商品类型" type="text" value="课包商品" /> + + <div id="b2" > + <div class="form-group" id="provinceCode"> + <label class="col-sm-3 control-label">所在省:</label> + <div class="col-sm-9"> + <select class="form-control" id="pCode" name="pCode"> + <option value="">${item.province}</option> + </select> + </div> + </div> + <div class="form-group" id="cityCode"> + <label class="col-sm-3 control-label">所在市:</label> + <div class="col-sm-9"> + <select class="form-control" id="cCode" name="cCode" > + <option value="">${item.city}</option> + </select> + </div> + </div> + + <div class="form-group" > + <label class="col-sm-3 control-label">所属门店:</label> + <div class="col-sm-9"> + <select class="form-control" id="storeId" name="storeId"> + <option value="">${item.name}</option> + </select> + </div> + </div> + + <div class="form-group" > + <label class="col-sm-3 control-label">课包类型:</label> + <div class="col-sm-9"> + <select class="form-control" id="coursePackageTypeId" name="pCode" onchange="TGoodsInfoDlg.packageChange(this)"> + <option value="">${typeName}</option> + </select> + </div> + </div> + + <div class="form-group" > + <label class="col-sm-3 control-label">课包名称:</label> + <div class="col-sm-9"> + <select class="form-control" id="coursePackageId" name="coursePackageId" onchange="TGoodsInfoDlg.timeChange(this)"> + <option value="">${pageName}</option> + </select> + </div> + </div> + + <div class="form-group" > + <label class="col-sm-3 control-label">课时数:</label> + <div class="col-sm-9"> + <select class="form-control" id="coursePackageConfigId" name="coursePackageConfigId"> + <option value="">${classHours}</option> + </select> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">原价:</label> + <div class="col-sm-9"> + <input class="form-control" id="price1" name="price" type="text" value="${item.price}" readonly> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">兑换方式:</label> + <div class="col-sm-9"> + <input type="radio" name="redemptionMethod" value="1" checked onclick="updateMethod(1)"> 积分 + <input type="radio" name="redemptionMethod" value="2" onclick="updateMethod(2)"> 现金+积分 + </div> + </div> + + <div class="form-group" id="y3" hidden> + <label class="col-sm-3 control-label">所需现金:</label> + <div class="col-sm-9"> + <input class="form-control" id="cash1" name="cash" type="text" value="${item.cash}"> + + </div> + </div> + <div class="form-group" id="y4"> + <label class="col-sm-3 control-label">所需积分:</label> + <div class="col-sm-9"> + <input class="form-control" id="integral1" name="integral" type="text" value="${item.integral}"> + + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label head-scu-label">*商品图片:</label> + <div class="col-sm-4"> + <img height="100px" width="100px" src="${item.cover}"> + </div> + </div> + + + <div class="form-group"> + <label class="col-sm-3 control-label head-scu-label">*商品图片:</label> + <div class="col-sm-4"> + @for(im in pictures){ + <img height="100px" width="100px" src="${im}"> + @} + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">用户人群:</label> + <div class="col-sm-9"> + <input type="radio" name="userPopulation" value="1" checked> 全部用户 + <input type="radio" name="userPopulation" value="2" > 年度会员 + <input type="radio" name="userPopulation" value="3" > 已有学员用户 + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">发放数量:</label> + <div class="col-sm-9"> + <input class="form-control" id="quantityIssued1" name="quantityIssued" type="text" value="${item.quantityIssued}" readonly> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">限领数量:</label> + <div class="col-sm-9"> + <input class="form-control" id="pickUpQuantity1" name="pickUpQuantity" type="text" value="${item.pickUpQuantity}" readonly> + </div> + </div> + <#input id="startTime1" name="有效期" type="text" value="${sTime} - ${eTime}" readonly="true"/> + + <div class="form-group" style="margin-left:262px"> + <label class="col-sm-1 control-label">兑换说明:</label> + <div class="col-sm-5"> + <textarea type="text/plain" id="editor1" style="height: 300px;width: 800px;" readonly>${item.redemptionInstructions}</textarea> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">排序:</label> + <div class="col-sm-9"> + <input class="form-control" id="sort1" name="sort" type="text" value="${item.sort}" readonly> + + </div> + </div> + + </div> + + + </div> +</div> + +<div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/> + </div> +</div> + + </div> + +<script src="${ctxPath}/js/vue/vue.js"></script> +<script src="${ctxPath}/js/elementui/index.js"></script> +<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css"> +<script src="${ctxPath}/modular/system/tGoods/tGoods_info.js"></script> +<script src="${ctxPath}/modular/system/tGoods/TStoreInfo.js"></script> +<script> + laydate.render({ + elem: '#startTime', + range: true + }); + laydate.render({ + elem: '#startTime1', + range: true + }); + function updateMethod(e) { + console.log(e) + if(e==1){ + $("#y3").hide() + $("#y4").show() + }else if(e==2){ + $("#y4").show() + $("#y3").show() + }else if(e==3){ + $("#y1").hide() + $("#y2").show() + }else if(e==4){ + $("#y1").show() + $("#y2").show() + }else if(e==5) { + $("#y2").hide() + $("#y1").show() + } + + } + let i =1; + function updateType(e) { + + if(e==2){ + $("#b1").hide() + $("#b2").show() + if(i==1){ + var drivingLicensePhoto = new $WebUpload("cover1"); + drivingLicensePhoto.setUploadBarId("progressBar"); + drivingLicensePhoto.init(); + i++; + } + + }else { + $("#b2").hide() + $("#b1").show() + } + } + + + + function changeCity(n){ + + var provinceSelect = null; + if (n === undefined || n === null || n === ''){ + provinceSelect = document.getElementById("provinceData"); + }else { + provinceSelect = document.getElementById("provinceData"+n); + } + + var citySelect = null; + if (n === undefined || n === null || n === ''){ + citySelect = document.getElementById("cityData"); + }else { + citySelect = document.getElementById("cityData"+n); + } + + var selectedProvince = provinceSelect.value; + // 清空城市下拉框 + citySelect.innerHTML = '<option value="">请选择</option>'; + if (selectedProvince === "") { + return; + } + var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity", function(data){ + data.forEach(province => { + var option = document.createElement("option"); + option.value = province.id; // 根据你的数据结构确定省份的id字段 + option.text = province.name; // 根据你的数据结构确定省份的name字段 + citySelect.appendChild(option); + }); + },function(data){ + console.log('data:',data) + Feng.error("获取失败!" + data.responseJSON.message + "!"); + }); + ajax.set('province',selectedProvince); + ajax.start(); + } + + /** + * 全国通用 + */ + function scopeOfApplication1() { + $("#storeSelect").hide(); + $("#citySelect").hide(); + } + /** + * 指定城市 + */ + function scopeOfApplication2() { + $("#storeSelect").hide(); + $("#citySelect").show(); + } + /** + * 指定门店 + */ + function scopeOfApplication3() { + $("#storeSelect").show(); + $("#citySelect").hide(); + } + + + + + var vue2 = new Vue({ + el: '#app', + data: { + autoUpload: true,//自动上传 + imageUrl1: '',//模型数据,用于上传图片完成后图片预览 + dialogVisible: false + }, + methods: { + handleAvatarSuccess(res, file) { + TGoodsInfoDlg.goodsPicArray.push(file); + }, + beforeAvatarUpload(file) { + const isLt2M = file.size / 1024 / 1024 < 10; + if (!isLt2M) { + this.$message.error('上传图片大小不能超过 10MB!'); + } + return isLt2M; + }, + handleRemove(file, fileList) { + couponInfoDlg.goodsPicArray = couponInfoDlg.goodsPicArray.filter(item => { + return item.uid != file.uid; + }); + }, + }, + created() { + }, + }); + var vue2 = new Vue({ + el: '#app1', + data: { + autoUpload: true,//自动上传 + imageUrl1: '',//模型数据,用于上传图片完成后图片预览 + dialogVisible: false + }, + methods: { + handleAvatarSuccess(res, file) { + TGoodsInfoDlg.goodsPicArray1.push(file); + }, + beforeAvatarUpload(file) { + const isLt2M = file.size / 1024 / 1024 < 10; + if (!isLt2M) { + this.$message.error('上传图片大小不能超过 10MB!'); + } + return isLt2M; + }, + handleRemove(file, fileList) { + couponInfoDlg.goodsPicArray = couponInfoDlg.goodsPicArray.filter(item => { + return item.uid != file.uid; + }); + }, + }, + created() { + }, + }); + + + window.onload = function(){ + var OBJradio=document.getElementsByName("redemptionMethod") + if(OBJradio==1){ + $("#y4").show() + $("#y3").hide() + } + if(OBJradio==2){ + $("#y4").show() + $("#y3").show() + } + for(i=0;i<OBJradio.length;i++){//循环查找这个radio + if($("#s1").val()==OBJradio[i].value){//判断是否与radio的值相同 + OBJradio[i].checked=true//修改选中状态 + } + } + var OBJradio=document.getElementsByName("userPopulation") + for(i=0;i<OBJradio.length;i++){//循环查找这个radio + if($("#s2").val()==OBJradio[i].value){//判断是否与radio的值相同 + OBJradio[i].checked=true//修改选中状态 + } + } + } +</script> +@} diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount.js b/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount.js new file mode 100644 index 0000000..95da68a --- /dev/null +++ b/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount.js @@ -0,0 +1,358 @@ +/** + * 车辆管理管理初始化 + */ +var TCompetition = { + id: "TCompetitionTable", //表格id + seItem: null, //选中的条目 + table: null, + layerIndex: -1 +}; +var language =1 +/** + * 初始化表格的列 + */ +TCompetition.initColumn = function () { + return [ + {field: 'selectItem', radio: true}, + {title: '所在省', field: 'pname', visible: true, align: 'center', valign: 'middle' + }, + {title: '所在市', field: 'cname', visible: true, align: 'center', valign: 'middle'}, + {title: '所属门店', field: 'shopName', visible: true, align: 'center', valign: 'middle' + }, + {title: '课包名称', field: 'name', visible: true, align: 'center', valign: 'middle' + }, + {title: '折扣类型', field: 'type', visible: true, align: 'center', valign: 'middle' + }, + {title: '状态', field: 'status', visible: true, align: 'center', valign: 'middle' + ,formatter:function (data) { + return{1:"上架中",2:"下架中"}[data] + } + }, + ]; +}; +function currentTime(timestamp){ + var time = timestamp + ''; + if(time.length != 13){ + timestamp = timestamp * 1000; + } + var date = new Date(timestamp);; + var Y = date.getFullYear() + '-'; + var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; + var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' '; + + var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':'; + var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':'; + var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds()); + var strDate = Y + M + D + h + m + s; + return strDate +} + +function currentTime1(timestamp){ + var time = timestamp + ''; + if(time.length != 13){ + timestamp = timestamp * 1000; + } + var date = new Date(timestamp);; + var Y = date.getFullYear() + '-'; + var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; + var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' '; + + var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':'; + var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':'; + var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds()); + var strDate = Y + M + D ; + return strDate +} +/** + * 检查是否选中 + */ +TCompetition.check = function () { + var selected = $('#' + this.id).bootstrapTable('getSelections'); + if(selected.length == 0){ + Feng.info("请先选中表格中的某一记录!"); + return false; + }else{ + TCompetition.seItem = selected[0]; + return true; + } +}; + +/** + * 点击添加车辆管理 + */ +TCompetition.openAddTCompetition = function () { + var index = layer.open({ + type: 2, + title: '添加', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tCity/tCity_add' + }); + this.layerIndex = index; +}; + +/** + * 打开查看车辆管理详情 + */ +TCompetition.openTCompetitionDetail = function () { + if (this.check()) { + var index = layer.open({ + type: 2, + title:'编辑', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tCity/tCity_update/' + TCompetition.seItem.id + }); + this.layerIndex = index; + } +}; + +/** + * 删除车辆管理 + */ +TCompetition.updateState = function (e) { + if (this.check()) { + var id = TCompetition.seItem.id; + var ajax = new $ax(Feng.ctxPath + "/tDiscount/updateState", function (data) { + if(data.code==200){ + Feng.success("操作成功") + }else { + Feng.error("操作失败") + } + TCompetition.table.refresh(); + }, function (data) { + Feng.error("操作失败") + TCompetition.table.refresh(); + }); + ajax.set("id",id); + ajax.set("status",e); + ajax.start(); + ; + } +}; +TCompetition.oneChange = function (e) { + console.log(111) + var oneId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange", function(data){ + if(data!=null){ + if(language==1){ + var content='<option value="">选择市</option>'; + }else if(language==2){ + var content='<option value="">Choose your franchisee</option>'; + }else { + var content='<option value="">Pilih franchisee Anda</option>'; + } + $.each(data, function(k,v) { + content += "<option value='"+v.code+"'>"+v.name+"</option>"; + }); + $("#cCode").empty().append(content); + } + }); + ajax.set("oneId",oneId); + ajax.start(); +} + +TCompetition.freeze = function () { + if (this.check()) { + var ajax = new $ax(Feng.ctxPath + "/tCity/freeze", function (data) { + Feng.success("冻结成功!"); + TCompetition.table.refresh(); + }, function (data) { + Feng.error("冻结失败!" + data.responseJSON.message + "!"); + }); + ajax.set("id",this.seItem.id); + ajax.start(); + } +}; +TCompetition.unfreeze = function () { + if (this.check()) { + var ajax = new $ax(Feng.ctxPath + "/tCity/unfreeze", function (data) { + Feng.success("解冻成功!"); + TCompetition.table.refresh(); + }, function (data) { + Feng.error("解冻失败!" + data.responseJSON.message + "!"); + }); + ajax.set("id",this.seItem.id); + ajax.start(); + } +}; +TCompetition.reload = function () { + if (this.check()) { + let id = this.seItem.id + var operation = function(){ + var ajax = new $ax(Feng.ctxPath + "/tCity/pwd", function (data) { + Feng.success("重置成功!"); + TCompetition.table.refresh(); + }, function (data) { + Feng.error("重置失败!" + data.responseJSON.message + "!"); + }); + ajax.set("id",id); + ajax.start(); + } + Feng.confirm("确认重置密码?重置后密码为:a123456", operation); + } + +}; + +TCompetition.carInsurance = function () { + if (this.check()) { + var index = layer.open({ + type: 2, + title: language==1?'车辆保险':(language==2?'Vehicle insurance':'Asuransi kendaraan'), + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/TCompetition/carInsurance?carId=' + TCompetition.seItem.id + }); + this.layerIndex = index; + } +}; +TCompetition.info = function () { + if (this.check()) { + let index = layer.open({ + type: 2, + title: '折扣详情', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tDiscount/info?id=' + this.seItem.id + }); + this.layerIndex = index; + } +}; + + + +/** + * 查询车辆管理列表 + */ +TCompetition.search = function () { + var queryData = {}; + queryData['provinceCode'] = $("#pCode").val(); + queryData['cityCode'] = $("#cCode").val(); + queryData['name'] = $("#name").val(); + queryData['shopName'] = $("#shopName").val(); + queryData['type'] = $("type").val(); + TCompetition.table.refresh({query: queryData}); +}; + +TCompetition.resetSearch = function () { + $("#pCode").val(""); + $("#cCode").val(""); + $("#name").val(""); + $("#type").val(""); + $("#shopName").val(""); + TCompetition.search(); +}; + +$(function () { + var defaultColunms = TCompetition.initColumn(); + var table = new BSTable(TCompetition.id, "/tDiscount/list", defaultColunms); + table.setPaginationType("server"); + TCompetition.table = table.init(); +}); + +/** + * 下载模板 + */ +TCompetition.uploadCarModel = function () { + window.location.href = Feng.ctxPath + "/TCompetition/uploadCarModel"; +} + +var agreement = function(){ + this.init = function(){ + //模拟上传excel + $("#uploadEventBtn").unbind("click").bind("click",function(){ + $("#uploadEventFile").click(); + }); + }; +} +/** + * 导入合同 + */ +TCompetition.exporTCompetition = function () { + var uploadEventFile = $("#uploadEventFile").val(); + if(uploadEventFile == ''){ + if(language==1){ + Feng.info("请选择Excel,再上传"); + }else if(language==2){ + Feng.info("Please select Excel and upload"); + }else { + Feng.info("Silakan pilih Excel dan upload"); + } + }else if(uploadEventFile.lastIndexOf(".xls")<0){//可判断以.xls和.xlsx结尾的excel + if(language==1){ + Feng.info("只能上传Excel文件"); + }else if(language==2){ + Feng.info("Only Excel files can be uploaded"); + }else { + Feng.info("Hanya berkas Excel yang dapat diunggah"); + } + }else{ + var url = Feng.ctxPath + '/TCompetition/exporTCompetition'; + var file = document.querySelector('input[name=file]').files[0]; + var reader = new FileReader(); + if (file) { + var formData = new FormData(); + formData.append("myfile", file); + this.sendAjaxRequest(url, 'POST', formData); + } + } +} +TCompetition.sendAjaxRequest = function(url,type,data){ + $.ajax({ + url : url, + type : type, + data : data, + success : function(result) { + if(result.code==500) { + Feng.info(result.message); + }else { + if(language==1){ + Feng.success("导入成功!"); + }else if(language==2){ + Feng.success("SUCCESSFUL IMPORT!"); + }else { + Feng.success("Import berhasil!"); + } + } + TCompetition.table.refresh(); + }, + error : function() { + if(language==1){ + Feng.error("excel上传失败!"); + }else if(language==2){ + Feng.error("Uploading excel Fails. Procedure!"); + }else { + Feng.error("Gagal mengunggah excel!"); + } + }, + cache : false, + contentType : false, + processData : false + }); +}; + +var agreement; +$(function(){ + agreement = new agreement(); + agreement.init(); +}); + +/** + * 导出车辆操作 + */ +TCompetition.ouTCompetition = function () { + var operation = function() { + window.location.href = Feng.ctxPath + "/TCompetition/ouTCompetition"; + }; + if(language==1){ + Feng.confirm("是否确认导出车辆信息?", operation); + }else if(language==2){ + Feng.confirm("Are you sure to export vehicle information?", operation); + }else { + Feng.confirm("Apakah Anda pasti akan mengekspor informasi kendaraan?", operation); + } +} \ No newline at end of file diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount_info.js new file mode 100644 index 0000000..8360403 --- /dev/null +++ b/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount_info.js @@ -0,0 +1,320 @@ +/** + * 初始化车辆管理详情对话框 + */ +var language=1; +var TCarInfoDlg = { + tCarInfoData : {}, + validateFields: { + } +}; + +/** + * 验证数据是否为空 + */ +TCarInfoDlg.validate = function () { + $('#carInfoForm').data("bootstrapValidator").resetForm(); + $('#carInfoForm').bootstrapValidator('validate'); + return $("#carInfoForm").data('bootstrapValidator').isValid(); +}; + +/** + * 清除数据 + */ +TCarInfoDlg.clearData = function() { + this.tCarInfoData = {}; +} + +/** + * 设置对话框中的数据 + * + * @param key 数据的名称 + * @param val 数据的具体值 + */ +TCarInfoDlg.set = function(key, val) { + this.tCarInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val; + return this; +} + +/** + * 设置对话框中的数据 + * + * @param key 数据的名称 + * @param val 数据的具体值 + */ +TCarInfoDlg.get = function(key) { + return $("#" + key).val(); +} + +/** + * 关闭此对话框 + */ +TCarInfoDlg.close = function() { + parent.layer.close(window.parent.TCompetition.layerIndex); +} + +/** + * 收集数据 + */ +TCarInfoDlg.collectData = function() { + this + .set('id') + .set('isPlatCar') + .set('companyId') + .set('franchiseeId') + .set('carColor') + .set('carModelId') + .set('carBrandId') + .set('carLicensePlate') + .set('carPhoto') + .set('drivingLicenseNumber') + .set('drivingLicensePhoto') + .set('annualInspectionTime') + .set('commercialInsuranceTime') + .set('createTime') + .set('state') + .set('addType') + .set('addObjectId') + .set('plateColor') + .set('vehicleType') + .set('ownerName') + .set('engineId') + .set('VIN') + .set('certifyDateA') + .set('fuelType') + .set('engineDisplace') + .set('certificate') + .set('transAgency') + .set('transArea') + .set('transDateStart') + .set('transDateStop') + .set('certifyDateB') + .set('fixState') + .set('nextFixDate') + .set('checkState') + .set('feePrintId') + .set('GPSBrand') + .set('GPSModel') + .set('GPSIMEI') + .set('GPSInstallDate') + .set('registerDate') + .set('commercialType'); +} + +/** + * 提交添加 + */ +TCarInfoDlg.addSubmit = function() { + + this.clearData(); + this.collectData(); + if(!this.validate()){ + return ; + } + + let pCode = $("#pCode").val() + let cCode = $("#cCode").val() + let name = $("#name").val() + let phone = $("#phone").val() + + if(pCode==''){ + Feng.info("请选择省") + return; + } + if(cCode==''){ + Feng.info("请选择市") + return; + } + if(name==''){ + Feng.info("管理员姓名不能为空") + return; + } + if(phone==''){ + Feng.info("管理员手机号不能为空") + return; + } + + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/tCity/add", function(data){ + if(data=="5001"){ + Feng.error("改账号已经存在"); + }else + if(data.code == 200){ + if(language==1){ + Feng.success("添加成功!"); + }else if(language==2){ + Feng.success("Successfully added!"); + }else { + Feng.success("Sangat berhasil ditambah!"); + } + window.parent.TCompetition.table.refresh(); + TCarInfoDlg.close(); + }else{ + Feng.error(data.msg); + } + + },function(data){ + Feng.error("添加失败!" + data.responseJSON.message + "!"); + }); + ajax.set(this.tCarInfoData); + ajax.set("provinceCode",pCode); + ajax.set("cityCode",cCode); + ajax.set("name",name); + ajax.set("phone",phone); + ajax.start(); +} + +/** + * 提交修改 + */ +TCarInfoDlg.editSubmit = function() { + + this.clearData(); + this.collectData(); + if(!this.validate()){ + return ; + } + let pCode = $("#pCode").val() + let cCode = $("#cCode").val() + let name = $("#name").val() + let phone = $("#phone").val() + + if(pCode==''){ + Feng.info("请选择省") + return; + } + if(cCode==''){ + Feng.info("请选择市") + return; + } + if(name==''){ + Feng.info("管理员姓名不能为空") + return; + } + if(phone==''){ + Feng.info("管理员手机号不能为空") + return; + } + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/tCity/update", function(data){ + if(data=="5001"){ + Feng.error("改账号已经存在"); + }else + if(data.code == 200){ + if(language==1){ + Feng.success("修改成功!"); + }else if(language==2){ + Feng.success("Modify successfully!"); + }else { + Feng.success("Mengubah dengan sukses!"); + } + window.parent.TCompetition.table.refresh(); + TCarInfoDlg.close(); + }else{ + Feng.error(data.msg); + } + },function(data){ + Feng.error("修改失败!" + data.responseJSON.message + "!"); + }); + ajax.set("provinceCode",pCode); + ajax.set("cityCode",cCode); + ajax.set("name",name); + ajax.set("phone",phone); + ajax.set("id",$("#id").val()); + ajax.start(); +} + +$(function() { + Feng.initValidator("carInfoForm", TCarInfoDlg.validateFields); + // 初始化图片上传 + var carPhoto = new $WebUpload("carPhoto"); + carPhoto.setUploadBarId("progressBar"); + carPhoto.init(); + var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto"); + drivingLicensePhoto.setUploadBarId("progressBar"); + drivingLicensePhoto.init(); +}); + +/** + * 选择分公司后执行 + */ +TCarInfoDlg.oneChange = function (e) { + var oneId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){ + if(data!=null){ + if(language==1){ + var content='<option value="">选择市</option>'; + }else if(language==2){ + var content='<option value="">Choose your franchisee</option>'; + }else { + var content='<option value="">Pilih franchisee Anda</option>'; + } + $.each(data, function(k,v) { + content += "<option value='"+v.code+"'>"+v.name+"</option>"; + }); + $("#cCode").empty().append(content); + } + }); + ajax.set("oneId",oneId); + ajax.start(); +} + +/** + * 类型改变执行 + * @param e + */ +TCarInfoDlg.companyTypeClick = function (e) { + if (1 == e){ + $(".companyDiv").hide(); + } else if (2 == e){ + $(".companyDiv").show(); + } +} + +/** + * 车辆品牌改变时执行 + */ +TCarInfoDlg.brandChange = function (e) { + var carBrandId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCar/brandChange", function(data){ + if(data!=null){ + if(language==1){ + var content='<option value="">选择车辆类型</option>'; + }else if(language==2){ + var content='<option value="">Please select the vehicle type</option>'; + }else { + var content='<option value="">Pilih Jenis Kendaraan</option>'; + } + + $.each(data, function(k,v) { + content += "<option value='"+v.id+"'>"+v.name+"</option>"; + }); + $("#carModelId").empty().append(content); + } + }); + ajax.set("carBrandId",carBrandId); + ajax.start(); +} + +/** + * 专车服务被点击 + */ +TCarInfoDlg.zcServerClick = function () { + var serverBox1 = $('#serverBox1').prop('checked'); + if (serverBox1){ + $("#zcModelDiv").show(); + } else { + $("#zcModelDiv").hide(); + } +} + +/** + * 跨城服务被点击 + */ +TCarInfoDlg.kcServerClick = function () { + var serverBox3 = $('#serverBox3').prop('checked'); + if (serverBox3){ + $("#kcModelDiv").show(); + } else { + $("#kcModelDiv").hide(); + } +} diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/coursePackageDiscount.js b/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/coursePackageDiscount.js new file mode 100644 index 0000000..9b77955 --- /dev/null +++ b/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/coursePackageDiscount.js @@ -0,0 +1,819 @@ +/** + * 用户详情对话框(可用于添加和修改对话框) + */ +var CoursePackageDiscount = { + userInfoData: {}, + coursePackagePaymentConfig: {} +}; + + + +/** + * 关闭此对话框 + */ +CoursePackageDiscount.close = function () { + parent.layer.close(window.parent.CoursePackage.layerIndex); +}; + + +/** + * 提交修改 + */ +CoursePackageDiscount.editSubmit = function () { + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/coursePackage/setCoursePackageDiscount", function (data) { + if(data.code == 200){ + Feng.success("编辑成功!"); + CoursePackageDiscount.close(); + window.parent.CoursePackage.table.refresh(); + }else{ + Feng.error(data.msg); + } + }, function (data) { + Feng.error("编辑失败!" + data.responseJSON.message + "!"); + }); + ajax.set('json', JSON.stringify(CoursePackageDiscount.coursePackagePaymentConfig)); + ajax.set('id', $('#id').val()); + ajax.start(); +}; + + + + + + +function addPrice(type){ + let index = $('#classHours').find('button[checked]').attr('index'); + if(type == 3){ + let ll = $('#limitedTimeDiscount .limitedTimeDiscount').length; + let htmlStr = + ' <div class="form-group limitedTimeDiscount" index="' + ll + '">' + + ' <div class="col-sm-2"></div>\n' + + ' <div class="col-sm-8" style="border: 1px solid; padding: 20px;">\n' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label">折扣有效期:</label>\n' + + ' <div class="col-sm-9">\n' + + ' <input class="startAndEndDay" style="width: 300px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>' + + ' </div>\n' + + ' <div class="col-sm-1"><i class="fa fa-trash-o" style="font-size:24px;color: red;" onclick="removePrice(3, this)"></i></div>\n' + + ' </div>' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label">*折扣时间:</label>\n' + + ' <div class="col-sm-5">\n' + + ' <input class="time" style="width: 200px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>\n' + + ' </div>\n' + + ' </div>' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label"></label>\n' + + ' <div class="col-sm-8" style="margin-top: 6px;">\n' + + ' <input type="checkbox" name="week" value="1" onclick="addPriceValue(3, this, \'weeks\')"/> 周一 ' + + ' <input type="checkbox" name="week" value="2" onclick="addPriceValue(3, this, \'weeks\')"/> 周二 ' + + ' <input type="checkbox" name="week" value="3" onclick="addPriceValue(3, this, \'weeks\')"/> 周三 ' + + ' <input type="checkbox" name="week" value="4" onclick="addPriceValue(3, this, \'weeks\')"/> 周四 ' + + ' <input type="checkbox" name="week" value="5" onclick="addPriceValue(3, this, \'weeks\')"/> 周五 ' + + ' <input type="checkbox" name="week" value="6" onclick="addPriceValue(3, this, \'weeks\')"/> 周六 ' + + ' <input type="checkbox" name="week" value="7" onclick="addPriceValue(3, this, \'weeks\')"/> 周日 ' + + ' </div>\n' + + ' </div>' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label">*现金支付:</label>\n' + + ' <div class="col-sm-4">\n' + + ' <input type="number" class="price" onblur="addPriceValue(3, this, \'cashPayment\')" min="0" placeholder="请输入折扣后支付价格" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' + + ' </div>\n' + + ' </div>' + + ' </div>' + + ' </div>'; + + $('#limitedTimeDiscount').append(htmlStr); + let arr = CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount; + for(let k in arr){ + if(arr[k].type == 3){ + arr[k].content.push({}) + } + } + lay('.startAndEndDay').each(function(i, e){ + laydate.render({ + elem: this + ,type: 'datetime' + ,range: true + ,done: function(value, date, endDate){ + let index = $('#classHours').find('button[checked]').attr('index'); + 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){ + 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]; + } + } + } + } + } + }); + }); + lay('.time').each(function(i, e){ + laydate.render({ + elem: this + ,type: 'time' + ,range: true + ,done: function(value, date, endDate){ + let index = $('#classHours').find('button[checked]').attr('index'); + 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){ + 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]['startTime'] = arr[0]; + obj.coursePackageDiscount[i].content[j]['endTime'] = arr[1]; + } + } + } + } + } + }); + }); + } + if(type == 4){ + let ll = $('#complimentaryClass .complimentaryClass').length; + let htmlStr = + ' <div class="form-group complimentaryClass" index="' + ll + '">' + + ' <div class="col-sm-2"></div>\n' + + ' <div class="col-sm-8" style="border: 1px solid; padding: 20px;">\n' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label">*赠送有效期:</label>\n' + + ' <div class="col-sm-9">\n' + + ' <input class="startAndEndDay" style="width: 300px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>' + + ' </div>\n' + + ' <div class="col-sm-1"><i class="fa fa-trash-o" style="font-size:24px;color: red;" onclick="removePrice(4, this)"></i></div>\n' + + ' </div>' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label">*赠送时间:</label>\n' + + ' <div class="col-sm-5">\n' + + ' <input class="time" style="width: 200px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>\n' + + ' </div>\n' + + ' </div>' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label"></label>\n' + + ' <div class="col-sm-8" style="margin-top: 6px;">\n' + + ' <input type="checkbox" name="week" value="1" onclick="addPriceValue(4, this, \'weeks\')"/> 周一 ' + + ' <input type="checkbox" name="week" value="2" onclick="addPriceValue(4, this, \'weeks\')"/> 周二 ' + + ' <input type="checkbox" name="week" value="3" onclick="addPriceValue(4, this, \'weeks\')"/> 周三 ' + + ' <input type="checkbox" name="week" value="4" onclick="addPriceValue(4, this, \'weeks\')"/> 周四 ' + + ' <input type="checkbox" name="week" value="5" onclick="addPriceValue(4, this, \'weeks\')"/> 周五 ' + + ' <input type="checkbox" name="week" value="6" onclick="addPriceValue(4, this, \'weeks\')"/> 周六 ' + + ' <input type="checkbox" name="week" value="7" onclick="addPriceValue(4, this, \'weeks\')"/> 周日 ' + + ' </div>\n' + + ' </div>' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label">*赠送课时数:</label>\n' + + ' <div class="col-sm-4">\n' + + ' <input type="number" class="price" onblur="addPriceValue(4, this, \'hour\')" min="0" placeholder="请输入赠送课时数" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' + + ' </div>\n' + + ' </div>' + + ' </div>' + + ' </div>'; + $('#complimentaryClass').append(htmlStr); + let arr = CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount; + for(let k in arr){ + if(arr[k].type == 4){ + arr[k].content.push({}) + } + } + lay('.startAndEndDay').each(function(i, e){ + laydate.render({ + elem: this + ,type: 'datetime' + ,range: true + ,done: function(value, date, endDate){ + let index = $('#classHours').find('button[checked]').attr('index'); + 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){ + 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]; + } + } + } + } + } + }); + }); + lay('.time').each(function(i, e){ + laydate.render({ + elem: this + ,type: 'time' + ,range: true + ,done: function(value, date, endDate){ + let index = $('#classHours').find('button[checked]').attr('index'); + 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){ + 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]['startTime'] = arr[0]; + obj.coursePackageDiscount[i].content[j]['endTime'] = arr[1]; + } + } + } + } + } + }); + }); + } +} + + +function removePrice(type, e){ + let index = $('#classHours').find('button[checked]').attr('index'); + let object = $(e).parent('div').parent('div').parent('div').parent('div'); + let ii = object.attr('index'); + let obj = CoursePackageDiscount.coursePackagePaymentConfig[index]; + for (let i = 0; i < obj.coursePackageDiscount.length; i++) { + if(type == obj.coursePackageDiscount[i].type){ + let jsonArray = null; + if(typeof obj.coursePackageDiscount[i].content == "string"){ + jsonArray = JSON.parse(obj.coursePackageDiscount[i].content); + }else{ + jsonArray = obj.coursePackageDiscount[i].content; + } + + let arr = []; + for (let j = 0; j < jsonArray.length; j++) { + if(j == ii){ + continue + } + arr.push(jsonArray[j]); + } + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount[i].content = arr; + } + } + object.remove(); +} + + +function addPriceValue(type, e, name){ + let index = $('#classHours').find('button[checked]').attr('index'); + if(type == 1){ + let obj = CoursePackageDiscount.coursePackagePaymentConfig[index]; + for (let i = 0; i < obj.coursePackageDiscount.length; i++) { + if(type == obj.coursePackageDiscount[i].type){ + let content = null; + if(typeof obj.coursePackageDiscount[i].content == "string"){ + content = JSON.parse(obj.coursePackageDiscount[i].content); + }else{ + content = obj.coursePackageDiscount[i].content; + } + content[name] = parseFloat($(e).val()); + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount[i].content = content; + } + } + } + if(type == 2){ + let obj = CoursePackageDiscount.coursePackagePaymentConfig[index]; + for (let i = 0; i < obj.coursePackageDiscount.length; i++) { + if(type == obj.coursePackageDiscount[i].type){ + let content = null; + if(typeof obj.coursePackageDiscount[i].content == "string"){ + content = JSON.parse(obj.coursePackageDiscount[i].content); + }else{ + content = obj.coursePackageDiscount[i].content; + } + content[name] = parseFloat($(e).val()); + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount[i].content = content; + } + } + } + if(type == 3){ + 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){ + let jsonArray = null; + if(typeof obj.coursePackageDiscount[i].content == "string"){ + jsonArray = JSON.parse(obj.coursePackageDiscount[i].content); + }else{ + jsonArray = obj.coursePackageDiscount[i].content; + } + + for (let j = 0; j < jsonArray.length; j++) { + if(j == ii){ + if('weeks' == name){ + let weeks = jsonArray[j].weeks; + let v = parseInt($(e).val()); + if(null != weeks && typeof weeks != "undefined"){ + if(e.checked){ + weeks.push(v); + }else{ + let arr = []; + for (let k = 0; k < weeks.length; k++) { + if(weeks[k] == v){ + continue + } + arr.push(weeks[k]); + } + weeks = arr; + } + }else{ + weeks = [v]; + } + jsonArray[j].weeks = weeks; + }else{ + jsonArray[j][name] = parseFloat($(e).val()); + } + } + } + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount[i].content = jsonArray; + } + } + } + if(type == 4){ + 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){ + let jsonArray = null; + if(typeof obj.coursePackageDiscount[i].content == "string"){ + jsonArray = JSON.parse(obj.coursePackageDiscount[i].content); + }else{ + jsonArray = obj.coursePackageDiscount[i].content; + } + for (let j = 0; j < jsonArray.length; j++) { + if(j == ii){ + if('weeks' == name){ + let weeks = jsonArray[j].weeks; + let v = parseInt($(e).val()); + if(null != weeks && typeof weeks != "undefined"){ + if(e.checked){ + weeks.push(v); + }else{ + let arr = []; + for (let k = 0; k < weeks.length; k++) { + if(weeks[k] == v){ + continue + } + arr.push(weeks[k]); + } + weeks = arr; + } + }else{ + weeks = [v]; + } + jsonArray[j].weeks = weeks; + }else{ + jsonArray[j][name] = parseFloat($(e).val()); + } + } + } + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount[i].content = jsonArray; + } + } + } +} + + +function selectedPperiod(e){ + $('#classHours').find('button[checked]').attr('style', 'width: 60px;height: 30px;border: none;border-radius: 5px;'); + $('#classHours').find('button[checked]').removeAttr('checked'); + if(typeof e != "undefined"){ + $(e).attr('style', 'width: 60px;height: 30px;background-color: #0086F6;border: none;border-radius: 5px;color: white;'); + $(e).attr('checked', true); + }else{ + $($('#classHours').find('button')[0]).attr('style', 'width: 60px;height: 30px;background-color: #0086F6;border: none;border-radius: 5px;color: white;'); + $($('#classHours').find('button')[0]).attr('checked', true); + } + + let index = $('#classHours').find('button[checked]').attr('index'); + let obj = CoursePackageDiscount.coursePackagePaymentConfig[index]; + $('#payment').text(obj.payment); + $('#cashPayment').text(obj.cashPayment); + + $('#memberDiscount').html(''); + $('#renewalOffer').html(''); + $('#limitedTimeDiscount').html(''); + $('#complimentaryClass').html(''); + let objv = CoursePackageDiscount.coursePackagePaymentConfig[index]; + $('input[name="type"]').each(function (i, e) { + e.checked = false; + let v = $(e).val(); + for (let i = 0; i < objv.coursePackageDiscount.length; i++) { + if(v == objv.coursePackageDiscount[i].type){ + $(e).click(); + } + } + }) +} + + + + +$(function () { + CoursePackageDiscount.coursePackagePaymentConfig = JSON.parse($('#coursePackagePaymentConfig').val()); + let htmlStr = ''; + for (let i = 0; i < CoursePackageDiscount.coursePackagePaymentConfig.length; i++) { + let obj = CoursePackageDiscount.coursePackagePaymentConfig[i]; + if(i == 0){ + htmlStr += '<button checked onclick="selectedPperiod(this)" index="' + i + '" style="width: 60px;height: 30px;background-color: #0086F6;border: none;border-radius: 5px;color: white;">' + obj.classHours + '课时</button> '; + }else{ + htmlStr += '<button onclick="selectedPperiod(this)" index="' + i + '" style="width: 60px;height: 30px;border: none;border-radius: 5px;">' + obj.classHours + '课时</button> '; + } + } + $('#classHours').html(htmlStr); + + $('input[name="type"]').click(function () { + let v = $(this).val(); + let index = $('#classHours').find('button[checked]').attr('index'); + if(this.checked && v == '1'){ + let discountMember = true; + let hh = '<div class="hr-line-dashed"></div>' + + '<h3>会员折扣</h3>\n' + + ' <div class="form-group">\n' + + ' <div class="col-sm-2"></div>'+ + ' <div class="col-sm-10">' + + ' <label class="col-sm-2 control-label">*现金支付:</label>\n' + + ' <div class="col-sm-3">\n' + + ' <input type="number" min="0" value="'; + let obj = CoursePackageDiscount.coursePackagePaymentConfig[index]; + for (let i = 0; i < obj.coursePackageDiscount.length; i++) { + if(v == obj.coursePackageDiscount[i].type){ + let jsonObject = null; + if(typeof obj.coursePackageDiscount[i].content == "string"){ + jsonObject = JSON.parse(obj.coursePackageDiscount[i].content); + }else{ + jsonObject = obj.coursePackageDiscount[i].content; + } + hh += (null == jsonObject.discountMember ? '' : jsonObject.discountMember); + discountMember = false; + } + } + hh += '" placeholder="请输入会员支付价格" onblur="addPriceValue(1, this, \'discountMember\')" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' + + ' </div>\n' + + ' </div>'+ + ' </div>'; + + $('#memberDiscount').html(hh); + if(discountMember){ + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount.push({ + type: 1, + content:{ + discountMember: null + } + }); + } + }else if(!this.checked && v == '1'){ + $('#memberDiscount').html(''); + let datas = CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount; + let arra = []; + for (let i = 0; i < datas.length; i++){ + if(datas[i].type == v){ + continue; + } + arra.push(datas[i]); + } + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount = arra; + } + if(this.checked && v == '2'){ + let continuingMember = true; + let hh = '<div class="hr-line-dashed"></div>' + + '<h3>续课优惠</h3>\n' + + ' <div class="form-group">\n' + + ' <div class="col-sm-2"></div>'+ + ' <div class="col-sm-10">' + + ' <label class="col-sm-2 control-label">会员续课:</label>\n' + + ' <div class="col-sm-3">\n' + + ' </div>\n' + + ' <label class="col-sm-2 control-label">用户续课:</label>\n' + + ' <div class="col-sm-3">\n' + + ' </div>\n' + + ' </div>'+ + ' </div>' + + ' <div class="form-group">\n' + + ' <div class="col-sm-2"></div>'+ + ' <div class="col-sm-10">' + + ' <label class="col-sm-2 control-label">*现金支付:</label>\n' + + ' <div class="col-sm-3">\n' + + ' <input type="number" min="0" value="'; + let obj = CoursePackageDiscount.coursePackagePaymentConfig[index]; + for (let i = 0; i < obj.coursePackageDiscount.length; i++) { + if(v == obj.coursePackageDiscount[i].type){ + let jsonObject = null; + if(typeof obj.coursePackageDiscount[i].content == "string"){ + jsonObject = JSON.parse(obj.coursePackageDiscount[i].content); + }else{ + jsonObject = obj.coursePackageDiscount[i].content; + } + hh += (null == jsonObject.continuingMember ? '' : jsonObject.continuingMember); + continuingMember = false; + } + } + hh += '" placeholder="请输入会员支付价格" onblur="addPriceValue(2, this, \'continuingMember\')" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' + + ' </div>\n' + + ' <label class="col-sm-2 control-label">*现金支付:</label>\n' + + ' <div class="col-sm-3">\n' + + ' <input type="number" min="0" value="'; + let obje = CoursePackageDiscount.coursePackagePaymentConfig[index]; + for (let i = 0; i < obje.coursePackageDiscount.length; i++) { + if(v == obje.coursePackageDiscount[i].type){ + let jsonObject = null; + if(typeof obje.coursePackageDiscount[i].content == "string"){ + jsonObject = JSON.parse(obje.coursePackageDiscount[i].content); + }else{ + jsonObject = obje.coursePackageDiscount[i].content; + } + hh += (null == jsonObject.continuingUser ? '' : jsonObject.continuingUser); + } + } + hh += '" placeholder="请输入用户支付价格" onblur="addPriceValue(2, this, \'continuingUser\')" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' + + ' </div>\n' + + ' </div>'+ + ' </div>'; + $('#renewalOffer').html(hh); + if(continuingMember){ + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount.push({ + type: 2, + content: { + continuingMember: null, + continuingUser: null + } + }) + } + }else if(!this.checked && v == '2'){ + $('#renewalOffer').html(''); + let datas = CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount; + let arra = []; + for (let i = 0; i < datas.length; i++){ + if(datas[i].type == v){ + continue; + } + arra.push(datas[i]); + } + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount = arra; + } + if(this.checked && v == '3'){ + let data_value = true; + let hh = '<div class="hr-line-dashed"></div>' + + '<span style="font-size: 16px;font-weight: 500;">限时折扣</span> <i class="fa fa-plus-circle" style="font-size:24px" onclick="addPrice(3)"></i>\n'; + let obje = CoursePackageDiscount.coursePackagePaymentConfig[index]; + for (let i = 0; i < obje.coursePackageDiscount.length; i++) { + if(v == obje.coursePackageDiscount[i].type){ + data_value = false + let jsonArray = null; + if(typeof obje.coursePackageDiscount[i].content == "string"){ + jsonArray = JSON.parse(obje.coursePackageDiscount[i].content); + }else{ + jsonArray = obje.coursePackageDiscount[i].content; + } + + for (let j = 0; j < jsonArray.length; j++) { + hh += '' + + ' <div class="form-group limitedTimeDiscount" index="' + j + '">' + + ' <div class="col-sm-2"></div>\n' + + ' <div class="col-sm-8" style="border: 1px solid; padding: 20px;">\n' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label">折扣有效期:</label>\n' + + ' <div class="col-sm-9">\n' + + ' <input class="startAndEndDay" value="' + (jsonArray[j].startDate + " - " + jsonArray[j].endDate) + '" style="width: 300px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>' + + ' </div>\n' + + ' <div class="col-sm-1"><i class="fa fa-trash-o" style="font-size:24px;color: red;" onclick="removePrice(3, this)"></i></div>\n' + + ' </div>' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label">*折扣时间:</label>\n' + + ' <div class="col-sm-5">\n' + + ' <input class="time" value="' + jsonArray[j].startTime + " - " + jsonArray[j].endTime + '" style="width: 200px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>\n' + + ' </div>\n' + + ' </div>' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label"></label>\n' + + ' <div class="col-sm-8" style="margin-top: 6px;">\n' + + ' <input type="checkbox" name="week" value="1"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 1){ + hh += 'checked'; + } + } + hh += '/> 周一 ' + + ' <input type="checkbox" name="week" value="2"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 2){ + hh += 'checked'; + } + } + hh += '/> 周二 ' + + ' <input type="checkbox" name="week" value="3"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 3){ + hh += 'checked'; + } + } + hh += '/> 周三 ' + + ' <input type="checkbox" name="week" value="4"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 4){ + hh += 'checked'; + } + } + hh += '/> 周四 ' + + ' <input type="checkbox" name="week" value="5"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 5){ + hh += 'checked'; + } + } + hh += '/> 周五 ' + + ' <input type="checkbox" name="week" value="6"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 6){ + hh += 'checked'; + } + } + hh += '/> 周六 ' + + ' <input type="checkbox" name="week" value="7"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 7){ + hh += 'checked'; + } + } + hh += '/> 周日 ' + + ' </div>\n' + + ' </div>' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label">*现金支付:</label>\n' + + ' <div class="col-sm-4">\n' + + ' <input type="number" min="0" value="' + jsonArray[j].cashPayment + '" onblur="addPriceValue(3, this, \'cashPayment\')" placeholder="请输入折扣后支付价格" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' + + ' </div>\n' + + ' </div>' + + ' </div>' + + ' </div>'; + } + + } + } + $('#limitedTimeDiscount').html(hh); + if(data_value){ + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount.push({ + type: 3, + content: [] + }) + } + }else if(!this.checked && v == '3'){ + $('#limitedTimeDiscount').html(''); + let datas = CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount; + let arra = []; + for (let i = 0; i < datas.length; i++){ + if(datas[i].type == v){ + continue; + } + arra.push(datas[i]); + } + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount = arra; + } + if(this.checked && v == '4'){ + let data_value = true; + let hh = + '<div class="hr-line-dashed"></div>' + + '<span style="font-size: 16px;font-weight: 500;">赠送课时</span> <i class="fa fa-plus-circle" style="font-size:24px" onclick="addPrice(4)"></i>\n'; + let obje = CoursePackageDiscount.coursePackagePaymentConfig[index]; + for (let i = 0; i < obje.coursePackageDiscount.length; i++) { + if (v == obje.coursePackageDiscount[i].type) { + data_value = false; + let jsonArray = null; + if(typeof obje.coursePackageDiscount[i].content == "string"){ + jsonArray = JSON.parse(obje.coursePackageDiscount[i].content); + }else{ + jsonArray = obje.coursePackageDiscount[i].content; + } + for (let j = 0; j < jsonArray.length; j++) { + hh += + ' <div class="form-group complimentaryClass" index="' + j + '">' + + ' <div class="col-sm-2"></div>\n' + + ' <div class="col-sm-8" style="border: 1px solid; padding: 20px;">\n' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label">*赠送有效期:</label>\n' + + ' <div class="col-sm-9">\n' + + ' <input class="startAndEndDay" value="' + (jsonArray[j].startDate + " - " + jsonArray[j].endDate) + '" style="width: 300px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>' + + ' </div>\n' + + ' <div class="col-sm-1"><i class="fa fa-trash-o" style="font-size:24px;color: red;" onclick="removePrice(4, this)"></i></div>\n' + + ' </div>' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label">*赠送时间:</label>\n' + + ' <div class="col-sm-5">\n' + + ' <input class="time" value="' + jsonArray[j].startTime + " - " + jsonArray[j].endTime + '" style="width: 200px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>\n' + + ' </div>\n' + + ' </div>' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label"></label>\n' + + ' <div class="col-sm-8" style="margin-top: 6px;">\n' + + ' <input type="checkbox" name="week" value="1"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 1){ + hh += 'checked'; + } + } + hh += '/> 周一 ' + + ' <input type="checkbox" name="week" value="2"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 2){ + hh += 'checked'; + } + } + hh += '/> 周二 ' + + ' <input type="checkbox" name="week" value="3"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 3){ + hh += 'checked'; + } + } + hh += '/> 周三 ' + + ' <input type="checkbox" name="week" value="4"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 4){ + hh += 'checked'; + } + } + hh += '/> 周四 ' + + ' <input type="checkbox" name="week" value="5"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 5){ + hh += 'checked'; + } + } + hh += '/> 周五 ' + + ' <input type="checkbox" name="week" value="6"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 6){ + hh += 'checked'; + } + } + hh += '/> 周六 ' + + ' <input type="checkbox" name="week" value="7"'; + for (let k = 0; k < jsonArray[j].weeks.length; k++) { + let w = jsonArray[j].weeks[k]; + if(w == 7){ + hh += 'checked'; + } + } + hh += '/> 周日 ' + + ' </div>\n' + + ' </div>' + + ' <div class="form-group">\n' + + ' <label class="col-sm-2 control-label">*赠送课时数:</label>\n' + + ' <div class="col-sm-4">\n' + + ' <input type="number" value="' + jsonArray[j].hour + '" onblur="addPriceValue(4, this, \'hour\')" min="0" placeholder="请输入赠送课时数" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' + + ' </div>\n' + + ' </div>' + + ' </div>' + + ' </div>'; + } + } + } + $('#complimentaryClass').html(hh); + if(data_value){ + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount.push({ + type: 4, + content: [] + }) + } + }else if(!this.checked && v == '4'){ + $('#complimentaryClass').html(''); + let datas = CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount; + let arra = []; + for (let i = 0; i < datas.length; i++){ + if(datas[i].type == v){ + continue; + } + arra.push(datas[i]); + } + CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount = arra; + } + }) + + + selectedPperiod(); +}); diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tCity_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tCity_info.js new file mode 100644 index 0000000..8360403 --- /dev/null +++ b/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tCity_info.js @@ -0,0 +1,320 @@ +/** + * 初始化车辆管理详情对话框 + */ +var language=1; +var TCarInfoDlg = { + tCarInfoData : {}, + validateFields: { + } +}; + +/** + * 验证数据是否为空 + */ +TCarInfoDlg.validate = function () { + $('#carInfoForm').data("bootstrapValidator").resetForm(); + $('#carInfoForm').bootstrapValidator('validate'); + return $("#carInfoForm").data('bootstrapValidator').isValid(); +}; + +/** + * 清除数据 + */ +TCarInfoDlg.clearData = function() { + this.tCarInfoData = {}; +} + +/** + * 设置对话框中的数据 + * + * @param key 数据的名称 + * @param val 数据的具体值 + */ +TCarInfoDlg.set = function(key, val) { + this.tCarInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val; + return this; +} + +/** + * 设置对话框中的数据 + * + * @param key 数据的名称 + * @param val 数据的具体值 + */ +TCarInfoDlg.get = function(key) { + return $("#" + key).val(); +} + +/** + * 关闭此对话框 + */ +TCarInfoDlg.close = function() { + parent.layer.close(window.parent.TCompetition.layerIndex); +} + +/** + * 收集数据 + */ +TCarInfoDlg.collectData = function() { + this + .set('id') + .set('isPlatCar') + .set('companyId') + .set('franchiseeId') + .set('carColor') + .set('carModelId') + .set('carBrandId') + .set('carLicensePlate') + .set('carPhoto') + .set('drivingLicenseNumber') + .set('drivingLicensePhoto') + .set('annualInspectionTime') + .set('commercialInsuranceTime') + .set('createTime') + .set('state') + .set('addType') + .set('addObjectId') + .set('plateColor') + .set('vehicleType') + .set('ownerName') + .set('engineId') + .set('VIN') + .set('certifyDateA') + .set('fuelType') + .set('engineDisplace') + .set('certificate') + .set('transAgency') + .set('transArea') + .set('transDateStart') + .set('transDateStop') + .set('certifyDateB') + .set('fixState') + .set('nextFixDate') + .set('checkState') + .set('feePrintId') + .set('GPSBrand') + .set('GPSModel') + .set('GPSIMEI') + .set('GPSInstallDate') + .set('registerDate') + .set('commercialType'); +} + +/** + * 提交添加 + */ +TCarInfoDlg.addSubmit = function() { + + this.clearData(); + this.collectData(); + if(!this.validate()){ + return ; + } + + let pCode = $("#pCode").val() + let cCode = $("#cCode").val() + let name = $("#name").val() + let phone = $("#phone").val() + + if(pCode==''){ + Feng.info("请选择省") + return; + } + if(cCode==''){ + Feng.info("请选择市") + return; + } + if(name==''){ + Feng.info("管理员姓名不能为空") + return; + } + if(phone==''){ + Feng.info("管理员手机号不能为空") + return; + } + + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/tCity/add", function(data){ + if(data=="5001"){ + Feng.error("改账号已经存在"); + }else + if(data.code == 200){ + if(language==1){ + Feng.success("添加成功!"); + }else if(language==2){ + Feng.success("Successfully added!"); + }else { + Feng.success("Sangat berhasil ditambah!"); + } + window.parent.TCompetition.table.refresh(); + TCarInfoDlg.close(); + }else{ + Feng.error(data.msg); + } + + },function(data){ + Feng.error("添加失败!" + data.responseJSON.message + "!"); + }); + ajax.set(this.tCarInfoData); + ajax.set("provinceCode",pCode); + ajax.set("cityCode",cCode); + ajax.set("name",name); + ajax.set("phone",phone); + ajax.start(); +} + +/** + * 提交修改 + */ +TCarInfoDlg.editSubmit = function() { + + this.clearData(); + this.collectData(); + if(!this.validate()){ + return ; + } + let pCode = $("#pCode").val() + let cCode = $("#cCode").val() + let name = $("#name").val() + let phone = $("#phone").val() + + if(pCode==''){ + Feng.info("请选择省") + return; + } + if(cCode==''){ + Feng.info("请选择市") + return; + } + if(name==''){ + Feng.info("管理员姓名不能为空") + return; + } + if(phone==''){ + Feng.info("管理员手机号不能为空") + return; + } + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/tCity/update", function(data){ + if(data=="5001"){ + Feng.error("改账号已经存在"); + }else + if(data.code == 200){ + if(language==1){ + Feng.success("修改成功!"); + }else if(language==2){ + Feng.success("Modify successfully!"); + }else { + Feng.success("Mengubah dengan sukses!"); + } + window.parent.TCompetition.table.refresh(); + TCarInfoDlg.close(); + }else{ + Feng.error(data.msg); + } + },function(data){ + Feng.error("修改失败!" + data.responseJSON.message + "!"); + }); + ajax.set("provinceCode",pCode); + ajax.set("cityCode",cCode); + ajax.set("name",name); + ajax.set("phone",phone); + ajax.set("id",$("#id").val()); + ajax.start(); +} + +$(function() { + Feng.initValidator("carInfoForm", TCarInfoDlg.validateFields); + // 初始化图片上传 + var carPhoto = new $WebUpload("carPhoto"); + carPhoto.setUploadBarId("progressBar"); + carPhoto.init(); + var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto"); + drivingLicensePhoto.setUploadBarId("progressBar"); + drivingLicensePhoto.init(); +}); + +/** + * 选择分公司后执行 + */ +TCarInfoDlg.oneChange = function (e) { + var oneId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){ + if(data!=null){ + if(language==1){ + var content='<option value="">选择市</option>'; + }else if(language==2){ + var content='<option value="">Choose your franchisee</option>'; + }else { + var content='<option value="">Pilih franchisee Anda</option>'; + } + $.each(data, function(k,v) { + content += "<option value='"+v.code+"'>"+v.name+"</option>"; + }); + $("#cCode").empty().append(content); + } + }); + ajax.set("oneId",oneId); + ajax.start(); +} + +/** + * 类型改变执行 + * @param e + */ +TCarInfoDlg.companyTypeClick = function (e) { + if (1 == e){ + $(".companyDiv").hide(); + } else if (2 == e){ + $(".companyDiv").show(); + } +} + +/** + * 车辆品牌改变时执行 + */ +TCarInfoDlg.brandChange = function (e) { + var carBrandId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCar/brandChange", function(data){ + if(data!=null){ + if(language==1){ + var content='<option value="">选择车辆类型</option>'; + }else if(language==2){ + var content='<option value="">Please select the vehicle type</option>'; + }else { + var content='<option value="">Pilih Jenis Kendaraan</option>'; + } + + $.each(data, function(k,v) { + content += "<option value='"+v.id+"'>"+v.name+"</option>"; + }); + $("#carModelId").empty().append(content); + } + }); + ajax.set("carBrandId",carBrandId); + ajax.start(); +} + +/** + * 专车服务被点击 + */ +TCarInfoDlg.zcServerClick = function () { + var serverBox1 = $('#serverBox1').prop('checked'); + if (serverBox1){ + $("#zcModelDiv").show(); + } else { + $("#zcModelDiv").hide(); + } +} + +/** + * 跨城服务被点击 + */ +TCarInfoDlg.kcServerClick = function () { + var serverBox3 = $('#serverBox3').prop('checked'); + if (serverBox3){ + $("#kcModelDiv").show(); + } else { + $("#kcModelDiv").hide(); + } +} diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount.js b/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount.js new file mode 100644 index 0000000..d475168 --- /dev/null +++ b/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount.js @@ -0,0 +1,433 @@ +/** + * 车辆管理管理初始化 + */ +var TCompetition = { + id: "TCompetitionTable", //表格id + seItem: null, //选中的条目 + table: null, + layerIndex: -1 +}; +var language =1 +/** + * 初始化表格的列 + */ +TCompetition.initColumn = function () { + return [ + {field: 'selectItem', radio: true}, + {title: '所在省', field: 'pname', visible: true, align: 'center', valign: 'middle' + }, + {title: '所在市', field: 'cname', visible: true, align: 'center', valign: 'middle'}, + {title: '所属门店', field: 'shopName', visible: true, align: 'center', valign: 'middle' + }, + {title: '课包名称', field: 'name', visible: true, align: 'center', valign: 'middle' + }, + {title: '折扣类型', field: 'type', visible: true, align: 'center', valign: 'middle' + ,formatter:function (data) { + return{1:"会员折扣",3:"限时折扣",4:"赠送课时"}[data] + } + }, + {title: '状态', field: 'status', visible: true, align: 'center', valign: 'middle' + ,formatter:function (data) { + return{1:"待审核",3:"未通过"}[data] + } + }, + ]; +}; +function currentTime(timestamp){ + var time = timestamp + ''; + if(time.length != 13){ + timestamp = timestamp * 1000; + } + var date = new Date(timestamp);; + var Y = date.getFullYear() + '-'; + var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; + var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' '; + + var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':'; + var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':'; + var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds()); + var strDate = Y + M + D + h + m + s; + return strDate +} + +function currentTime1(timestamp){ + var time = timestamp + ''; + if(time.length != 13){ + timestamp = timestamp * 1000; + } + var date = new Date(timestamp);; + var Y = date.getFullYear() + '-'; + var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; + var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' '; + + var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':'; + var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':'; + var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds()); + var strDate = Y + M + D ; + return strDate +} +/** + * 检查是否选中 + */ +TCompetition.check = function () { + var selected = $('#' + this.id).bootstrapTable('getSelections'); + if(selected.length == 0){ + Feng.info("请先选中表格中的某一记录!"); + return false; + }else{ + TCompetition.seItem = selected[0]; + return true; + } +}; + +/** + * 点击添加车辆管理 + */ +TCompetition.openAddTCompetition = function () { + var index = layer.open({ + type: 2, + title: '添加', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tCity/tCity_add' + }); + this.layerIndex = index; +}; + +/** + * 打开查看车辆管理详情 + */ +TCompetition.openTCompetitionDetail = function () { + if (this.check()) { + var index = layer.open({ + type: 2, + title:'编辑', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tCity/tCity_update/' + TCompetition.seItem.id + }); + this.layerIndex = index; + } +}; + +/** + * 删除车辆管理 + */ +TCompetition.updateState = function (e) { + if (this.check()) { + var id = TCompetition.seItem.id; + var ajax = new $ax(Feng.ctxPath + "/TDiscount/updateState", function (data) { + if(data.code==200){ + Feng.success("操作成功") + }else { + Feng.error("操作失败") + } + TCompetition.table.refresh(); + }, function (data) { + Feng.error("操作失败") + TCompetition.table.refresh(); + }); + ajax.set("id",id); + ajax.set("status",e); + ajax.start(); + ; + } +}; +TCompetition.oneChange = function (e) { + console.log(111) + var oneId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange", function(data){ + if(data!=null){ + if(language==1){ + var content='<option value="">选择市</option>'; + }else if(language==2){ + var content='<option value="">Choose your franchisee</option>'; + }else { + var content='<option value="">Pilih franchisee Anda</option>'; + } + $.each(data, function(k,v) { + content += "<option value='"+v.code+"'>"+v.name+"</option>"; + }); + $("#cCode").empty().append(content); + } + }); + ajax.set("oneId",oneId); + ajax.start(); +} + +TCompetition.freeze = function () { + if (this.check()) { + var ajax = new $ax(Feng.ctxPath + "/tCity/freeze", function (data) { + Feng.success("冻结成功!"); + TCompetition.table.refresh(); + }, function (data) { + Feng.error("冻结失败!" + data.responseJSON.message + "!"); + }); + ajax.set("id",this.seItem.id); + ajax.start(); + } +}; +TCompetition.audit = function () { + if (this.check()) { + var index = layer.load(1,{ + type: 1 + , title: '折扣审核' + , area: ['50%', '50%'] + , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset + , id: 'layerDemo' //防止重复弹出cge + , content: '<div class="form-horizontal">' + + ' <div class="col-sm-11" >' + + ' <div class="col-sm-11">' + + ' <div class="form-group">\n' + + ' <label class="col-sm-3 control-label">审核状态:</label>\n' + + ' <div class="col-sm-9">\n' + + ' <input type="radio" name="r1" value="2" checked> 通过 <input type="radio" name="r1" value="3" > 拒绝 '+ + ' </div>\n' + + ' </div>\n' + + ' <div class="form-group">\n' + + ' <label class="col-sm-3 control-label">拒绝理由:</label>\n' + + ' <div class="col-sm-9">\n' + + ' <textarea id="text" style="width: 460px; height: 138px;"></textarea> '+ + ' </div>\n' + + ' </div>\n' + + ' </div>' + + ' </div>' + + '</div>' + , btn: ['关闭', '保存'] + , btnAlign: 'c' //按钮居中 + , shade: 0.5 //不显示遮罩 + ,load:1 + , yes: function () { + layer.closeAll(); + }, + btn2:function () { + let audit = document.querySelector('input[name="r1"]:checked').value; + let text = $("#text").val() + if(audit==3){ + if(text==''){ + Feng.info("请输入拒绝理由") + return false; + } + } + var ajax = new $ax(Feng.ctxPath + "/tDiscount/auditDiscount", function (data) { + if (data.code == 200) { + Feng.success("操作成功!"); + window.location.reload(); + window.parent.layer.closeAll(); + } else if(data=="repeat"){ + window.location.reload(); + window.parent.layer.closeAll(); + Feng.error("请勿重复操作"); + }else { + return Feng.error(data.msg); + } + }, function (data) { + Feng.error("操作失败!") + window.location.reload(); + window.parent.layer.closeAll(); + return Feng.error("操作失败!"); + }); + ajax.set("id", TCompetition.seItem.id); + ajax.set("audit", audit); + ajax.set("text", text); + ajax.start(); + layer.closeAll(); + } + }); + + this.layerIndex = index; + } +}; +TCompetition.unfreeze = function () { + if (this.check()) { + var ajax = new $ax(Feng.ctxPath + "/tCity/unfreeze", function (data) { + Feng.success("解冻成功!"); + TCompetition.table.refresh(); + }, function (data) { + Feng.error("解冻失败!" + data.responseJSON.message + "!"); + }); + ajax.set("id",this.seItem.id); + ajax.start(); + } +}; +TCompetition.info = function () { + console.log(111) + if (this.check()) { + let index = layer.open({ + type: 2, + title: '折扣详情', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tDiscount/infoOne?id=' + this.seItem.id + }); + this.layerIndex = index; + } +}; +TCompetition.reload = function () { + if (this.check()) { + let id = this.seItem.id + var operation = function(){ + var ajax = new $ax(Feng.ctxPath + "/tCity/pwd", function (data) { + Feng.success("重置成功!"); + TCompetition.table.refresh(); + }, function (data) { + Feng.error("重置失败!" + data.responseJSON.message + "!"); + }); + ajax.set("id",id); + ajax.start(); + } + Feng.confirm("确认重置密码?重置后密码为:a123456", operation); + } + +}; + +TCompetition.carInsurance = function () { + if (this.check()) { + var index = layer.open({ + type: 2, + title: language==1?'车辆保险':(language==2?'Vehicle insurance':'Asuransi kendaraan'), + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/TCompetition/carInsurance?carId=' + TCompetition.seItem.id + }); + this.layerIndex = index; + } +}; + + + +/** + * 查询车辆管理列表 + */ +TCompetition.search = function () { + var queryData = {}; + queryData['provinceCode'] = $("#pCode").val(); + queryData['cityCode'] = $("#cCode").val(); + queryData['name'] = $("#name").val(); + queryData['shopName'] = $("#shopName").val(); + queryData['type'] = $("type").val(); + TCompetition.table.refresh({query: queryData}); +}; + +TCompetition.resetSearch = function () { + $("#pCode").val(""); + $("#cCode").val(""); + $("#name").val(""); + $("#type").val(""); + $("#shopName").val(""); + TCompetition.search(); +}; + +$(function () { + var defaultColunms = TCompetition.initColumn(); + var table = new BSTable(TCompetition.id, "/tDiscount/listAudit", defaultColunms); + table.setPaginationType("server"); + TCompetition.table = table.init(); +}); + +/** + * 下载模板 + */ +TCompetition.uploadCarModel = function () { + window.location.href = Feng.ctxPath + "/TCompetition/uploadCarModel"; +} + +var agreement = function(){ + this.init = function(){ + //模拟上传excel + $("#uploadEventBtn").unbind("click").bind("click",function(){ + $("#uploadEventFile").click(); + }); + }; +} +/** + * 导入合同 + */ +TCompetition.exporTCompetition = function () { + var uploadEventFile = $("#uploadEventFile").val(); + if(uploadEventFile == ''){ + if(language==1){ + Feng.info("请选择Excel,再上传"); + }else if(language==2){ + Feng.info("Please select Excel and upload"); + }else { + Feng.info("Silakan pilih Excel dan upload"); + } + }else if(uploadEventFile.lastIndexOf(".xls")<0){//可判断以.xls和.xlsx结尾的excel + if(language==1){ + Feng.info("只能上传Excel文件"); + }else if(language==2){ + Feng.info("Only Excel files can be uploaded"); + }else { + Feng.info("Hanya berkas Excel yang dapat diunggah"); + } + }else{ + var url = Feng.ctxPath + '/TCompetition/exporTCompetition'; + var file = document.querySelector('input[name=file]').files[0]; + var reader = new FileReader(); + if (file) { + var formData = new FormData(); + formData.append("myfile", file); + this.sendAjaxRequest(url, 'POST', formData); + } + } +} +TCompetition.sendAjaxRequest = function(url,type,data){ + $.ajax({ + url : url, + type : type, + data : data, + success : function(result) { + if(result.code==500) { + Feng.info(result.message); + }else { + if(language==1){ + Feng.success("导入成功!"); + }else if(language==2){ + Feng.success("SUCCESSFUL IMPORT!"); + }else { + Feng.success("Import berhasil!"); + } + } + TCompetition.table.refresh(); + }, + error : function() { + if(language==1){ + Feng.error("excel上传失败!"); + }else if(language==2){ + Feng.error("Uploading excel Fails. Procedure!"); + }else { + Feng.error("Gagal mengunggah excel!"); + } + }, + cache : false, + contentType : false, + processData : false + }); +}; + +var agreement; +$(function(){ + agreement = new agreement(); + agreement.init(); +}); + +/** + * 导出车辆操作 + */ +TCompetition.ouTCompetition = function () { + var operation = function() { + window.location.href = Feng.ctxPath + "/TCompetition/ouTCompetition"; + }; + if(language==1){ + Feng.confirm("是否确认导出车辆信息?", operation); + }else if(language==2){ + Feng.confirm("Are you sure to export vehicle information?", operation); + }else { + Feng.confirm("Apakah Anda pasti akan mengekspor informasi kendaraan?", operation); + } +} \ No newline at end of file diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount_info.js new file mode 100644 index 0000000..8360403 --- /dev/null +++ b/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount_info.js @@ -0,0 +1,320 @@ +/** + * 初始化车辆管理详情对话框 + */ +var language=1; +var TCarInfoDlg = { + tCarInfoData : {}, + validateFields: { + } +}; + +/** + * 验证数据是否为空 + */ +TCarInfoDlg.validate = function () { + $('#carInfoForm').data("bootstrapValidator").resetForm(); + $('#carInfoForm').bootstrapValidator('validate'); + return $("#carInfoForm").data('bootstrapValidator').isValid(); +}; + +/** + * 清除数据 + */ +TCarInfoDlg.clearData = function() { + this.tCarInfoData = {}; +} + +/** + * 设置对话框中的数据 + * + * @param key 数据的名称 + * @param val 数据的具体值 + */ +TCarInfoDlg.set = function(key, val) { + this.tCarInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val; + return this; +} + +/** + * 设置对话框中的数据 + * + * @param key 数据的名称 + * @param val 数据的具体值 + */ +TCarInfoDlg.get = function(key) { + return $("#" + key).val(); +} + +/** + * 关闭此对话框 + */ +TCarInfoDlg.close = function() { + parent.layer.close(window.parent.TCompetition.layerIndex); +} + +/** + * 收集数据 + */ +TCarInfoDlg.collectData = function() { + this + .set('id') + .set('isPlatCar') + .set('companyId') + .set('franchiseeId') + .set('carColor') + .set('carModelId') + .set('carBrandId') + .set('carLicensePlate') + .set('carPhoto') + .set('drivingLicenseNumber') + .set('drivingLicensePhoto') + .set('annualInspectionTime') + .set('commercialInsuranceTime') + .set('createTime') + .set('state') + .set('addType') + .set('addObjectId') + .set('plateColor') + .set('vehicleType') + .set('ownerName') + .set('engineId') + .set('VIN') + .set('certifyDateA') + .set('fuelType') + .set('engineDisplace') + .set('certificate') + .set('transAgency') + .set('transArea') + .set('transDateStart') + .set('transDateStop') + .set('certifyDateB') + .set('fixState') + .set('nextFixDate') + .set('checkState') + .set('feePrintId') + .set('GPSBrand') + .set('GPSModel') + .set('GPSIMEI') + .set('GPSInstallDate') + .set('registerDate') + .set('commercialType'); +} + +/** + * 提交添加 + */ +TCarInfoDlg.addSubmit = function() { + + this.clearData(); + this.collectData(); + if(!this.validate()){ + return ; + } + + let pCode = $("#pCode").val() + let cCode = $("#cCode").val() + let name = $("#name").val() + let phone = $("#phone").val() + + if(pCode==''){ + Feng.info("请选择省") + return; + } + if(cCode==''){ + Feng.info("请选择市") + return; + } + if(name==''){ + Feng.info("管理员姓名不能为空") + return; + } + if(phone==''){ + Feng.info("管理员手机号不能为空") + return; + } + + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/tCity/add", function(data){ + if(data=="5001"){ + Feng.error("改账号已经存在"); + }else + if(data.code == 200){ + if(language==1){ + Feng.success("添加成功!"); + }else if(language==2){ + Feng.success("Successfully added!"); + }else { + Feng.success("Sangat berhasil ditambah!"); + } + window.parent.TCompetition.table.refresh(); + TCarInfoDlg.close(); + }else{ + Feng.error(data.msg); + } + + },function(data){ + Feng.error("添加失败!" + data.responseJSON.message + "!"); + }); + ajax.set(this.tCarInfoData); + ajax.set("provinceCode",pCode); + ajax.set("cityCode",cCode); + ajax.set("name",name); + ajax.set("phone",phone); + ajax.start(); +} + +/** + * 提交修改 + */ +TCarInfoDlg.editSubmit = function() { + + this.clearData(); + this.collectData(); + if(!this.validate()){ + return ; + } + let pCode = $("#pCode").val() + let cCode = $("#cCode").val() + let name = $("#name").val() + let phone = $("#phone").val() + + if(pCode==''){ + Feng.info("请选择省") + return; + } + if(cCode==''){ + Feng.info("请选择市") + return; + } + if(name==''){ + Feng.info("管理员姓名不能为空") + return; + } + if(phone==''){ + Feng.info("管理员手机号不能为空") + return; + } + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/tCity/update", function(data){ + if(data=="5001"){ + Feng.error("改账号已经存在"); + }else + if(data.code == 200){ + if(language==1){ + Feng.success("修改成功!"); + }else if(language==2){ + Feng.success("Modify successfully!"); + }else { + Feng.success("Mengubah dengan sukses!"); + } + window.parent.TCompetition.table.refresh(); + TCarInfoDlg.close(); + }else{ + Feng.error(data.msg); + } + },function(data){ + Feng.error("修改失败!" + data.responseJSON.message + "!"); + }); + ajax.set("provinceCode",pCode); + ajax.set("cityCode",cCode); + ajax.set("name",name); + ajax.set("phone",phone); + ajax.set("id",$("#id").val()); + ajax.start(); +} + +$(function() { + Feng.initValidator("carInfoForm", TCarInfoDlg.validateFields); + // 初始化图片上传 + var carPhoto = new $WebUpload("carPhoto"); + carPhoto.setUploadBarId("progressBar"); + carPhoto.init(); + var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto"); + drivingLicensePhoto.setUploadBarId("progressBar"); + drivingLicensePhoto.init(); +}); + +/** + * 选择分公司后执行 + */ +TCarInfoDlg.oneChange = function (e) { + var oneId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){ + if(data!=null){ + if(language==1){ + var content='<option value="">选择市</option>'; + }else if(language==2){ + var content='<option value="">Choose your franchisee</option>'; + }else { + var content='<option value="">Pilih franchisee Anda</option>'; + } + $.each(data, function(k,v) { + content += "<option value='"+v.code+"'>"+v.name+"</option>"; + }); + $("#cCode").empty().append(content); + } + }); + ajax.set("oneId",oneId); + ajax.start(); +} + +/** + * 类型改变执行 + * @param e + */ +TCarInfoDlg.companyTypeClick = function (e) { + if (1 == e){ + $(".companyDiv").hide(); + } else if (2 == e){ + $(".companyDiv").show(); + } +} + +/** + * 车辆品牌改变时执行 + */ +TCarInfoDlg.brandChange = function (e) { + var carBrandId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCar/brandChange", function(data){ + if(data!=null){ + if(language==1){ + var content='<option value="">选择车辆类型</option>'; + }else if(language==2){ + var content='<option value="">Please select the vehicle type</option>'; + }else { + var content='<option value="">Pilih Jenis Kendaraan</option>'; + } + + $.each(data, function(k,v) { + content += "<option value='"+v.id+"'>"+v.name+"</option>"; + }); + $("#carModelId").empty().append(content); + } + }); + ajax.set("carBrandId",carBrandId); + ajax.start(); +} + +/** + * 专车服务被点击 + */ +TCarInfoDlg.zcServerClick = function () { + var serverBox1 = $('#serverBox1').prop('checked'); + if (serverBox1){ + $("#zcModelDiv").show(); + } else { + $("#zcModelDiv").hide(); + } +} + +/** + * 跨城服务被点击 + */ +TCarInfoDlg.kcServerClick = function () { + var serverBox3 = $('#serverBox3').prop('checked'); + if (serverBox3){ + $("#kcModelDiv").show(); + } else { + $("#kcModelDiv").hide(); + } +} diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js index 88c4975..f75a56d 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js @@ -130,7 +130,7 @@ if (this.check()) { var index = layer.open({ type: 2, - title:'编辑', + title:'详情', area: ['100%', '100%'], //宽高 fix: false, //不固定 maxmin: true, diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js index 9089c39..8e79b8b 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js @@ -7,6 +7,7 @@ validateFields: { }, goodsPicArray:[], + goodsPicArray1:[], storeIds: [], }; @@ -236,57 +237,341 @@ if(!this.validate()){ return ; } - - let pCode = $("#pCode").val() - let cCode = $("#cCode").val() - let name = $("#name").val() - let phone = $("#phone").val() - - if(pCode==''){ - Feng.info("请选择省") - return; - } - if(cCode==''){ - Feng.info("请选择市") - return; - } - if(name==''){ - Feng.info("管理员姓名不能为空") - return; - } - if(phone==''){ - Feng.info("管理员手机号不能为空") - return; - } - - //提交信息 - var ajax = new $ax(Feng.ctxPath + "/tCity/add", function(data){ - if(data=="5001"){ - Feng.error("改账号已经存在"); - }else - if(data.code == 200){ - if(language==1){ - Feng.success("添加成功!"); - }else if(language==2){ - Feng.success("Successfully added!"); - }else { - Feng.success("Sangat berhasil ditambah!"); + let typeAll = document.querySelector('input[name="type"]:checked').value; + if(typeAll==2){ + let pCode = $("#pCode").val() + let cCode = $("#cCode").val() + if(pCode==''){ + Feng.info("请选择省") + return; + } + if(cCode==''){ + Feng.info("请选择市") + return; + } + let storeId = $("#storeId").val() + if(storeId==''){ + Feng.info("请选择门店") + return; + } + let coursePackageTypeId = $("#coursePackageTypeId").val() + if(coursePackageTypeId==''){ + Feng.info("请选择课包类型") + return; + } + let coursePackageId = $("#coursePackageId").val() + if(coursePackageId==''){ + Feng.info("请选择课包") + return; + } + let coursePackageConfigId = $("#coursePackageConfigId").val() + if(coursePackageConfigId==''){ + Feng.info("请选择课时数") + return; + } + let price = $("#price1").val() + if(price==''){ + Feng.info("请填写原价") + return; + } + let type = document.querySelector('input[name="redemptionMethod"]:checked').value; + if(type==''){ + Feng.info("请选择兑换方式") + return; + } + let integral=''; + let cash=''; + if(type==1){ + integral = $("#integral1").val() + if(integral==''){ + Feng.info("请填写所需积分") + return; } - window.parent.TCompetition.table.refresh(); - TGoodsInfoDlg.close(); - }else{ - Feng.error(data.msg); + } + if(type==2){ + integral = $("#integral1").val() + if(integral==''){ + Feng.info("请填写所需积分") + return; + } + cash = $("#cash1").val() + if(cash==''){ + Feng.info("请填写所需现金") + return; + } } - },function(data){ - Feng.error("添加失败!" + data.responseJSON.message + "!"); - }); - ajax.set(this.tGoodsInfoData); - ajax.set("provinceCode",pCode); - ajax.set("cityCode",cCode); - ajax.set("name",name); - ajax.set("phone",phone); - ajax.start(); + let cover1 = $("#cover1").val() + // if(cover1==''){ + // Feng.info("请上传封面") + // return; + // } + var goodImgs = this.goodsPicArray1; + var imgOne =""; + if(goodImgs.length==0){ + }else { + for (let i = 0; i <goodImgs.length; i++) { + if(i==goodImgs.length-1){ + imgOne += (goodImgs[i].response) + }else { + imgOne+=(goodImgs[i].response+",") + } + } + } + + let userPopulation = document.querySelector('input[name="userPopulation"]:checked').value; + if(userPopulation==''){ + Feng.info("请选择用户人群") + return; + } + + let quantityIssued = $("#quantityIssued1").val() + if(quantityIssued==''){ + Feng.info("请填写发放数量") + return; + } + let pickUpQuantity = $("#pickUpQuantity1").val() + if(pickUpQuantity==''){ + Feng.info("请填写限领数量") + return; + } + let startTime = $("#startTime1").val() + if(startTime==''){ + Feng.info("请选择有效期") + return; + } + let text = TGoodsInfoDlg.editor1.getContent(); + console.log(text) + if(text==""){ + Feng.info("请输入兑换说明") + return; + } + + let sort = $("#sort1").val() + if(sort==''){ + Feng.info("请填写排序") + return; + } + + + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/tGoods/add", function(data){ + if(data=="5001"){ + Feng.error("改账号已经存在"); + }else + if(data.code == 200){ + if(language==1){ + Feng.success("添加成功!"); + }else if(language==2){ + Feng.success("Successfully added!"); + }else { + Feng.success("Sangat berhasil ditambah!"); + } + window.parent.TPointProducts.table.refresh(); + TGoodsInfoDlg.close(); + }else{ + Feng.error(data.msg); + } + },function(data){ + Feng.error("添加失败!" + data.responseJSON.message + "!"); + }); + ajax.set("typeAll",typeAll); + ajax.set("provinceCode",pCode); + ajax.set("cityCode",cCode); + ajax.set("storeId",storeId); + ajax.set("coursePackageTypeId",coursePackageTypeId); + ajax.set("coursePackageId",coursePackageId); + ajax.set("coursePackageConfigId",coursePackageConfigId); + ajax.set("price",price); + ajax.set("type",type); + ajax.set("integral",integral); + ajax.set("cash",cash); + ajax.set("cover",cover1); + ajax.set("imgOne",imgOne); + ajax.set("userPopulation",userPopulation); + ajax.set("quantityIssued",quantityIssued); + ajax.set("pickUpQuantity",pickUpQuantity); + ajax.set("startTime",startTime); + ajax.set("text",text); + ajax.set("sort",sort); + ajax.start(); + + }else { + let name = $("#name").val() + if(name==''){ + Feng.info("请填写商品名称") + return; + } + let price = $("#price").val() + if(price==''){ + Feng.info("请填写原价") + return; + } + let type = document.querySelector('input[name="redemptionMethod"]:checked').value; + if(type==''){ + Feng.info("请选择兑换方式") + return; + } + + let integral=''; + let cash=''; + if(type==1){ + integral = $("#integral").val() + if(integral==''){ + Feng.info("请填写所需积分") + return; + } + } + if(type==2){ + integral = $("#integral").val() + if(integral==''){ + Feng.info("请填写所需积分") + return; + } + cash = $("#cash").val() + if(cash==''){ + Feng.info("请填写所需现金") + return; + } + } + if(type==3){ + cash = $("#cash").val() + if(cash==''){ + Feng.info("请填写所需现金") + return; + } + } + + let cover1 = $("#cover").val() + var goodImgs = this.goodsPicArray; + var imgOne =""; + if(goodImgs.length==0){ + }else { + for (let i = 0; i <goodImgs.length; i++) { + if(i==goodImgs.length-1){ + imgOne += (goodImgs[i].response) + }else { + imgOne+=(goodImgs[i].response+",") + } + } + } + + let userPopulation = document.querySelector('input[name="userPopulation"]:checked').value; + if(userPopulation==''){ + Feng.info("请选择用户人群") + return; + } + + let quantityIssued = $("#quantityIssued").val() + if(quantityIssued==''){ + Feng.info("请填写发放数量") + return; + } + let pickUpQuantity = $("#pickUpQuantity").val() + if(pickUpQuantity==''){ + Feng.info("请填写限领数量") + return; + } + let startTime = $("#startTime").val() + if(startTime==''){ + Feng.info("请选择有效期") + return; + } + + let company = document.querySelector('input[name="company"]:checked').value; + + var cityIds = []; + var cts = ""; + if (company === '2'){ + var myselect=document.getElementById('cityData'); + var seCity = myselect.options[myselect.selectedIndex].value; + if (seCity === null || seCity === undefined || seCity === ''){ + return Feng.error('请选中一个省市'); + } + cityIds.push(seCity); + if (num > 0){ + for (let i = 1; i <= num; i++) { + var insSelect=document.getElementById('cityData'+i); + var inData = insSelect.options[insSelect.selectedIndex].value; + if (inData !== undefined || inData !== null || inData !== ''){ + cityIds.push(inData); + } + } + cts = cityIds.join(','); + }else { + cts = cityIds + } + } + + const commaSeparatedString = this.goodsPicArray.join(','); + + var stores = ""; + if (company === '3'){ + console.log('3---this.storeIds',this.storeIds); + if (TGoodsInfoDlg.storeIds.length === 0 ){ + return Feng.error('请至少选择一个门店'); + } + stores = this.storeIds.join(','); + console.log('stores--===--',stores) + } + + let text = TGoodsInfoDlg.editor.getContent(); + console.log(text) + if(text==""){ + Feng.info("请输入兑换说明") + return; + } + + let sort = $("#sort").val() + if(sort==''){ + Feng.info("请填写排序") + return; + } + + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/tGoods/add", function(data){ + if(data=="5001"){ + Feng.error("改账号已经存在"); + }else + if(data.code == 200){ + if(language==1){ + Feng.success("添加成功!"); + }else if(language==2){ + Feng.success("Successfully added!"); + }else { + Feng.success("Sangat berhasil ditambah!"); + } + window.parent.TPointProducts.table.refresh(); + TGoodsInfoDlg.close(); + }else{ + Feng.error(data.msg); + } + + },function(data){ + Feng.error("添加失败!" + data.responseJSON.message + "!"); + }); + ajax.set("typeAll",typeAll); + ajax.set("name",name); + ajax.set("price",price); + ajax.set("type",type); + ajax.set("integral",integral); + ajax.set("cash",cash); + ajax.set("cover",cover1); + ajax.set("imgOne",imgOne); + ajax.set("userPopulation",userPopulation); + ajax.set("quantityIssued",quantityIssued); + ajax.set("pickUpQuantity",pickUpQuantity); + ajax.set("startTime",startTime); + ajax.set("useScope",company); + ajax.set("cityIds",cts); + ajax.set("storeIds",stores); + ajax.set("text",text); + ajax.set("sort",sort); + ajax.start(); + + } + + } /** @@ -354,6 +639,7 @@ } $(function() { + getProvince(null); Feng.initValidator("carInfoForm", TGoodsInfoDlg.validateFields); // 初始化图片上传 @@ -363,7 +649,11 @@ var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto"); drivingLicensePhoto.setUploadBarId("progressBar"); drivingLicensePhoto.init(); + var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto"); + drivingLicensePhoto.setUploadBarId("progressBar"); + drivingLicensePhoto.init(); TGoodsInfoDlg.editor = UE.getEditor('editor'); + TGoodsInfoDlg.editor1 = UE.getEditor('editor1'); }); /** @@ -389,6 +679,66 @@ ajax.set("oneId",oneId); ajax.start(); } +TGoodsInfoDlg.storeChange = function (e) { + var oneId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCity/storeChange", function(data){ + if(data!=null){ + if(language==1){ + var content='<option value="">选择门店</option>'; + }else if(language==2){ + var content='<option value="">Choose your franchisee</option>'; + }else { + var content='<option value="">Pilih franchisee Anda</option>'; + } + $.each(data, function(k,v) { + content += "<option value='"+v.id+"'>"+v.name+"</option>"; + }); + $("#storeId").empty().append(content); + } + }); + ajax.set("oneId",oneId); + ajax.start(); +} +TGoodsInfoDlg.packageChange = function (e) { + var oneId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCity/packageChange", function(data){ + if(data!=null){ + if(language==1){ + var content='<option value="">选择课包</option>'; + }else if(language==2){ + var content='<option value="">Choose your franchisee</option>'; + }else { + var content='<option value="">Pilih franchisee Anda</option>'; + } + $.each(data, function(k,v) { + content += "<option value='"+v.id+"'>"+v.name+"</option>"; + }); + $("#coursePackageId").empty().append(content); + } + }); + ajax.set("oneId",oneId); + ajax.start(); +} +TGoodsInfoDlg.timeChange = function (e) { + var oneId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCity/timeChange", function(data){ + if(data!=null){ + if(language==1){ + var content='<option value="">选择课时数</option>'; + }else if(language==2){ + var content='<option value="">Choose your franchisee</option>'; + }else { + var content='<option value="">Pilih franchisee Anda</option>'; + } + $.each(data, function(k,v) { + content += "<option value='"+v.id+"'>"+v.classHours+"</option>"; + }); + $("#coursePackageConfigId").empty().append(content); + } + }); + ajax.set("oneId",oneId); + ajax.start(); +} /** * 类型改变执行 -- Gitblit v1.7.1