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