From 78a4df6ad36a5cdf18d40ef539e0ce9609c71b4f Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期六, 07 十月 2023 15:33:28 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai
---
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseCityServiceImpl.java | 20
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java | 282 +++
cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/HttpRequestUtil.java | 42
.idea/workspace.xml | 198 +
cloud-server-activity/src/main/resources/sharding-jdbc.properties | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/SignUtil.java | 5
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/Convert.java | 23
cloud-server-management/src/main/webapp/static/modular/system/tGoods/tPay_info.js | 9
cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js | 596 +++++-
cloud-server-competition/src/main/resources/sharding-jdbc.properties | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/KaptchaController.java | 1
cloud-server-management/src/main/webapp/static/modular/system/ball/ball.js | 133 +
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 10
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachController.java | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java | 4
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseCity.java | 67
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 235 ++
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java | 4
cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java | 50
cloud-server-other/src/main/java/com/dsh/other/entity/Game.java | 50
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java | 2
cloud-server-other/src/main/resources/mapper/GameMapper.xml | 34
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java | 56
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 2
cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/three/Base64Coder.java | 26
cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java | 35
cloud-server-other/src/main/java/com/dsh/other/mapper/GameMapper.java | 21
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java | 188 ++
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_add.html | 214 ++
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java | 6
cloud-server-activity/src/main/resources/mapper/PointsMerchandiseCityMapper.xml | 6
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/examineCoursePackage.html | 3
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html | 27
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html | 2
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java | 9
cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java | 4
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java | 174 ++
cloud-server-activity/src/main/java/com/dsh/activity/model/response/StoreVos.java | 16
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java | 1
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GoodsInfoOneVo.java | 78
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html | 207 ++
cloud-server-activity/src/main/java/com/dsh/activity/model/response/GoodsInfoOneVo.java | 77
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/MD5.java | 5
cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java | 2
cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js | 4
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java | 12
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html | 351 ++++
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java | 2
cloud-server-account/src/main/resources/sharding-jdbc.properties | 4
cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseCityMapper.java | 16
cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseCityService.java | 16
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html | 274 +++
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java | 36
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/BallClient.java | 24
cloud-server-course/src/main/resources/sharding-jdbc.properties | 4
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/banckmoney.html | 18
cloud-server-management/src/main/webapp/static/modular/system/ball/ball_info.js | 534 ++++++
cloud-server-other/src/main/java/com/dsh/other/entity/BallQueryDto.java | 16
cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreVos.java | 18
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/examineCoursePackage_info.html | 7
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball.html | 81 +
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/examineCoursePackage.js | 6
cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml | 6
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js | 2
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/BallQueryDto.java | 12
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java | 4
cloud-server-other/src/main/java/com/dsh/other/service/GameService.java | 16
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/Game.java | 29
cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OrderUtil.java | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java | 239 ++
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageStudent.js | 2
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java | 1
cloud-server-other/src/main/java/com/dsh/other/service/impl/GameServiceImpl.java | 30
74 files changed, 4,392 insertions(+), 316 deletions(-)
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 7f0be18..7f92887 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
+ <component name="AnalysisUIOptions">
+ <option name="GROUP_BY_SEVERITY" value="true" />
+ </component>
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
@@ -22,7 +25,12 @@
<select />
</component>
<component name="ChangeListManager">
- <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="9.26。7" />
+ <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="9.26。15">
+ <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java" afterDir="false" />
+ </list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -51,13 +59,15 @@
<component name="MavenImportPreferences">
<option name="generalSettings">
<MavenGeneralSettings>
- <option name="mavenHome" value="$PROJECT_DIR$/../../../apache-maven/apache-maven-3.6.1" />
- <option name="userSettingsFile" value="D:\apache-maven\apache-maven-3.6.1\conf\settings.xml" />
+ <option name="mavenHome" value="使用 Maven 包装器" />
</MavenGeneralSettings>
</option>
</component>
<component name="PackageJsonUpdateNotifier">
<dismissed value="$PROJECT_DIR$/package.json" />
+ </component>
+ <component name="ProblemsViewState">
+ <option name="selectedTabId" value="ProjectErrors" />
</component>
<component name="ProjectId" id="2T0poWYlZShlnPso29uxjn4gQQo" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
@@ -67,42 +77,43 @@
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
- <component name="PropertiesComponent">{
- "keyToString": {
- "DefaultHtmlFileTemplate": "HTML File",
- "RequestMappingsPanelOrder0": "0",
- "RequestMappingsPanelOrder1": "1",
- "RequestMappingsPanelWidth0": "75",
- "RequestMappingsPanelWidth1": "75",
- "RunOnceActivity.OpenProjectViewOnStart": "true",
- "RunOnceActivity.ShowReadmeOnStart": "true",
- "WebServerToolWindowFactoryState": "false",
- "git-widget-placeholder": "master",
- "ignore.virus.scanning.warn.message": "true",
- "last_opened_file_path": "D:/JavaTool/PlayPai1/cloud-server-management/src/main/webapp/static/modular/system/coursePackage",
- "node.js.detected.package.eslint": "true",
- "node.js.detected.package.tslint": "true",
- "node.js.selected.package.eslint": "(autodetect)",
- "node.js.selected.package.tslint": "(autodetect)",
- "nodejs_package_manager_path": "npm",
- "project.structure.last.edited": "模块",
- "project.structure.proportion": "0.15",
- "project.structure.side.proportion": "0.54367816",
- "settings.editor.selected.configurable": "preferences.pluginManager",
- "spring.configuration.checksum": "b0c8222ba40624e179f539b98c2e8cad",
- "vue.rearranger.settings.migration": "true"
+ <component name="PropertiesComponent"><![CDATA[{
+ "keyToString": {
+ "DefaultHtmlFileTemplate": "HTML File",
+ "RequestMappingsPanelOrder0": "0",
+ "RequestMappingsPanelOrder1": "1",
+ "RequestMappingsPanelWidth0": "75",
+ "RequestMappingsPanelWidth1": "75",
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "WebServerToolWindowFactoryState": "false",
+ "git-widget-placeholder": "master",
+ "ignore.virus.scanning.warn.message": "true",
+ "last_opened_file_path": "D:/ttt/java/PlayPai/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball",
+ "node.js.detected.package.eslint": "true",
+ "node.js.detected.package.tslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "nodejs_package_manager_path": "npm",
+ "project.structure.last.edited": "模块",
+ "project.structure.proportion": "0.15",
+ "project.structure.side.proportion": "0.54367816",
+ "service.view.auto.scroll.to.source": "true",
+ "settings.editor.selected.configurable": "MavenSettings",
+ "spring.configuration.checksum": "7fb6c6ffe49cf7315145a28a96be3d8f",
+ "vue.rearranger.settings.migration": "true"
}
-}</component>
+}]]></component>
<component name="ReactorSettings">
<option name="notificationShown" value="true" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
+ <recent name="D:\ttt\java\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system\ball" />
+ <recent name="D:\ttt\java\PlayPai\cloud-server-management\src\main\webapp\static\modular\system\ball" />
+ <recent name="D:\ttt\java\PlayPai\cloud-server-other\src\main\resources\mapper" />
<recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\coursePackage" />
<recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system\coursePackage" />
- <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system\tStudent" />
- <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\tCoupon" />
- <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\tStudent" />
@@ -110,11 +121,11 @@
<recent name="D:\ttt\java\PlayPai\cloud-server-parent" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
- <recent name="com.dsh.course.mapper" />
- <recent name="com.dsh.course.service.impl" />
- <recent name="com.dsh.course.service" />
- <recent name="com.dsh.course.entity" />
- <recent name="com.dsh.course.entity.dto" />
+ <recent name="com.dsh.other.mapper" />
+ <recent name="com.dsh.other.service.impl" />
+ <recent name="com.dsh.other.service" />
+ <recent name="com.dsh.other.entity" />
+ <recent name="com.dsh.other.controller" />
</key>
</component>
<component name="RunDashboard">
@@ -227,8 +238,8 @@
<item itemvalue="Spring Boot.OtherApplication" />
<item itemvalue="Spring Boot.UserApplication" />
<item itemvalue="Spring Boot.AccountApplication" />
- <item itemvalue="Spring Boot.AuthApplication" />
<item itemvalue="Spring Boot.ActivityApplication" />
+ <item itemvalue="Spring Boot.AuthApplication" />
<item itemvalue="Spring Boot.CourseApplication" />
<item itemvalue="Spring Boot.CompetitionApplication" />
<item itemvalue="应用程序.BigDecimalToChineseWords" />
@@ -284,7 +295,16 @@
<workItem from="1695633789585" duration="4703000" />
<workItem from="1695638521906" duration="1415000" />
<workItem from="1695689815334" duration="13353000" />
- <workItem from="1695718856285" duration="16156000" />
+ <workItem from="1695718856285" duration="22098000" />
+ <workItem from="1695775091167" duration="4246000" />
+ <workItem from="1695794503293" duration="3283000" />
+ <workItem from="1695799021203" duration="5869000" />
+ <workItem from="1695820563853" duration="56000" />
+ <workItem from="1695863479059" duration="12419000" />
+ <workItem from="1696427897814" duration="1362000" />
+ <workItem from="1696433675086" duration="2211000" />
+ <workItem from="1696462020097" duration="481000" />
+ <workItem from="1696465598653" duration="19850000" />
</task>
<task id="LOCAL-00001" summary="后台代码删除">
<created>1690249807612</created>
@@ -489,7 +509,95 @@
<option name="project" value="LOCAL" />
<updated>1695735077405</updated>
</task>
- <option name="localTasksCounter" value="28" />
+ <task id="LOCAL-00028" summary="9.26。7">
+ <option name="closed" value="true" />
+ <created>1695735363112</created>
+ <option name="number" value="00028" />
+ <option name="presentableId" value="LOCAL-00028" />
+ <option name="project" value="LOCAL" />
+ <updated>1695735363112</updated>
+ </task>
+ <task id="LOCAL-00029" summary="9.26。8">
+ <option name="closed" value="true" />
+ <created>1695735796008</created>
+ <option name="number" value="00029" />
+ <option name="presentableId" value="LOCAL-00029" />
+ <option name="project" value="LOCAL" />
+ <updated>1695735796008</updated>
+ </task>
+ <task id="LOCAL-00030" summary="9.26。9">
+ <option name="closed" value="true" />
+ <created>1695736281231</created>
+ <option name="number" value="00030" />
+ <option name="presentableId" value="LOCAL-00030" />
+ <option name="project" value="LOCAL" />
+ <updated>1695736281231</updated>
+ </task>
+ <task id="LOCAL-00031" summary="9.26。10">
+ <option name="closed" value="true" />
+ <created>1695739914189</created>
+ <option name="number" value="00031" />
+ <option name="presentableId" value="LOCAL-00031" />
+ <option name="project" value="LOCAL" />
+ <updated>1695739914189</updated>
+ </task>
+ <task id="LOCAL-00032" summary="9.26。11">
+ <option name="closed" value="true" />
+ <created>1695740202022</created>
+ <option name="number" value="00032" />
+ <option name="presentableId" value="LOCAL-00032" />
+ <option name="project" value="LOCAL" />
+ <updated>1695740202022</updated>
+ </task>
+ <task id="LOCAL-00033" summary="9.26。12">
+ <option name="closed" value="true" />
+ <created>1695795966970</created>
+ <option name="number" value="00033" />
+ <option name="presentableId" value="LOCAL-00033" />
+ <option name="project" value="LOCAL" />
+ <updated>1695795966970</updated>
+ </task>
+ <task id="LOCAL-00034" summary="9.26。13">
+ <option name="closed" value="true" />
+ <created>1695820597140</created>
+ <option name="number" value="00034" />
+ <option name="presentableId" value="LOCAL-00034" />
+ <option name="project" value="LOCAL" />
+ <updated>1695820597140</updated>
+ </task>
+ <task id="LOCAL-00035" summary="9.26。14">
+ <option name="closed" value="true" />
+ <created>1695886217811</created>
+ <option name="number" value="00035" />
+ <option name="presentableId" value="LOCAL-00035" />
+ <option name="project" value="LOCAL" />
+ <updated>1695886217811</updated>
+ </task>
+ <task id="LOCAL-00036" summary="9.26。15">
+ <option name="closed" value="true" />
+ <created>1696485767075</created>
+ <option name="number" value="00036" />
+ <option name="presentableId" value="LOCAL-00036" />
+ <option name="project" value="LOCAL" />
+ <updated>1696485767076</updated>
+ </task>
+ <task id="LOCAL-00037" summary="9.26。15">
+ <option name="closed" value="true" />
+ <created>1696488897294</created>
+ <option name="number" value="00037" />
+ <option name="presentableId" value="LOCAL-00037" />
+ <option name="project" value="LOCAL" />
+ <updated>1696488897295</updated>
+ </task>
+ <task id="LOCAL-00038" summary="9.26。15">
+ <option name="closed" value="true" />
+ <created>1696489413711</created>
+ <option name="number" value="00038" />
+ <option name="presentableId" value="LOCAL-00038" />
+ <option name="project" value="LOCAL" />
+ <updated>1696489413712</updated>
+ </task>
+ <option name="localTasksCounter" value="39" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@@ -522,7 +630,15 @@
<MESSAGE value="9.26。5" />
<MESSAGE value="9.26。6" />
<MESSAGE value="9.26。7" />
- <option name="LAST_COMMIT_MESSAGE" value="9.26。7" />
+ <MESSAGE value="9.26。8" />
+ <MESSAGE value="9.26。9" />
+ <MESSAGE value="9.26。10" />
+ <MESSAGE value="9.26。11" />
+ <MESSAGE value="9.26。12" />
+ <MESSAGE value="9.26。13" />
+ <MESSAGE value="9.26。14" />
+ <MESSAGE value="9.26。15" />
+ <option name="LAST_COMMIT_MESSAGE" value="9.26。15" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
@@ -544,7 +660,7 @@
</line-breakpoint>
<line-breakpoint type="java-line">
<url>file://$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java</url>
- <line>1294</line>
+ <line>1355</line>
<option name="timeStamp" value="14" />
</line-breakpoint>
</breakpoints>
diff --git a/cloud-server-account/src/main/resources/sharding-jdbc.properties b/cloud-server-account/src/main/resources/sharding-jdbc.properties
index d3f7a4e..9c041c5 100644
--- a/cloud-server-account/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-account/src/main/resources/sharding-jdbc.properties
@@ -3,9 +3,9 @@
#��������
datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://192.168.110.80:3306/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://8.137.22.229:3306/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
datasource.master0.username=root
-datasource.master0.password=123456
+datasource.master0.password=playpai2023!
datasource.master0.maxActive=20
datasource.master0.maxWait=60000
datasource.master0.minIdle=5
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 ab18fcb..2935877 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
@@ -10,11 +10,14 @@
import com.dsh.activity.feignclient.course.model.CoursePackagePaymentConfig;
import com.dsh.activity.feignclient.model.*;
import com.dsh.activity.feignclient.other.StoreClient;
+import com.dsh.activity.feignclient.other.model.Store;
import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse;
import com.dsh.activity.model.CoachChangeStateVO;
import com.dsh.activity.model.PointMerchandiseIncomeVo;
import com.dsh.activity.model.PointMerchandiseVo;
import com.dsh.activity.model.request.*;
+import com.dsh.activity.model.response.GoodsInfoOneVo;
+import com.dsh.activity.model.response.StoreVos;
import com.dsh.activity.service.*;
import com.dsh.activity.util.GDMapGeocodingUtil;
import com.dsh.activity.util.StrUtils;
@@ -144,6 +147,10 @@
public List<PointMerchandiseIncomeVo> getAmount(){
return userPointsMerchandiseService.getAmount();
}
+
+ @Resource
+ private PointsMerchandiseCityService pmdsCityService;
+
@ResponseBody
@PostMapping("/base/pointMerchars/convertGoods")
@@ -736,4 +743,232 @@
return mapList;
}
+ @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;
+ }
+
+
+ @PostMapping("/base/pointMerchars/queryDetailsOfGoods")
+ public GoodsInfoOneVo queryDetailsOfGoods(@RequestBody Integer id){
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ GoodsInfoOneVo infoOneVo = new GoodsInfoOneVo();
+ PointsMerchandise byId = pmdsService.getById(id);
+
+ if (ToolUtil.isNotEmpty(byId)){
+ infoOneVo.setName(byId.getName());
+ infoOneVo.setCover(byId.getCover());
+ infoOneVo.setPics(byId.getProductImages());
+ infoOneVo.setPrice(byId.getPrice());
+ infoOneVo.setExchangeMethod(byId.getRedemptionMethod());
+ switch (byId.getRedemptionMethod()){
+ case 1:
+ infoOneVo.setIntegral(byId.getIntegral());
+ break;
+ case 2:
+ infoOneVo.setIntegral(byId.getIntegral());
+ infoOneVo.setCash(byId.getCash());
+ break;
+ case 3:
+ infoOneVo.setCash(byId.getCash());
+ break;
+ default:
+ break;
+ }
+ switch (byId.getUserPopulation()){
+ case 1:
+ infoOneVo.setUserPopulation("全部用户");
+ break;
+ case 2:
+ infoOneVo.setUserPopulation("年度会员");
+ break;
+ case 3:
+ infoOneVo.setUserPopulation("已有学员用户");
+ break;
+ default:
+ break;
+ }
+ infoOneVo.setQuantityIssued(byId.getQuantityIssued());
+ List<UserPointsMerchandise> list = upmseService.list(new LambdaQueryWrapper<UserPointsMerchandise>()
+ .eq(UserPointsMerchandise::getPointsMerchandiseId,byId.getId()));
+ infoOneVo.setUseScope(byId.getUseScope());
+ switch (byId.getUseScope()){
+ case 1:
+ infoOneVo.setExchangeArea("全国通用");
+ break;
+ case 2:
+ infoOneVo.setExchangeArea("指定城市");
+ break;
+ case 3:
+ infoOneVo.setExchangeArea("指定门店");
+ break;
+ default:
+ break;
+ }
+ infoOneVo.setHasPicked(list.size());
+ infoOneVo.setPickUpQuantity(byId.getPickUpQuantity());
+ infoOneVo.setValidTime(simpleDateFormat.format(byId.getStartTime())+"至"+ simpleDateFormat.format(byId.getEndTime()));
+ infoOneVo.setRedemptionInstructions(byId.getRedemptionInstructions());
+ infoOneVo.setSort(byId.getSort());
+ }
+ return infoOneVo;
+ }
+
+
+ @ResponseBody
+ @PostMapping("/base/pointMerchars/getProvinces")
+ public List<StoreVos> getProvinces(@RequestBody Integer id){
+ List<StoreVos> storeVos = new ArrayList<>();
+ List<PointsMerchandiseCity> list = pmdsCityService.list(new LambdaQueryWrapper<PointsMerchandiseCity>()
+ .eq(PointsMerchandiseCity::getPointsMerchandiseId,id));
+ if (list.size() > 0 ){
+ for (PointsMerchandiseCity pointsMerchandiseCity : list) {
+ StoreVos storeVos1 = new StoreVos();
+ storeVos1.setNum1(pointsMerchandiseCity.getProvince());
+ storeVos1.setNum2(pointsMerchandiseCity.getCity());
+ storeVos.add(storeVos1);
+ }
+ }
+ return storeVos;
+ }
+
+
+ @ResponseBody
+ @PostMapping("/base/pointMerchars/getStoreList")
+ public List<StoreVos> getStoreList(@RequestBody Integer id){
+ List<StoreVos> storeVos = new ArrayList<>();
+ List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
+ .eq("pointsMerchandiseId",id));
+ if (list.size() > 0 ){
+ List<Integer> collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
+ List<Store> stores = stoClient.queryStoreByIds(collect);
+ if (stores.size() > 0 ){
+ for (Store store : stores) {
+ StoreVos storeVos1 = new StoreVos();
+ storeVos1.setNum1(store.getProvince() +"省"+ store.getCity() +"市");
+ storeVos1.setNum2(store.getName());
+ storeVos.add(storeVos1);
+ }
+ }
+ }
+ return storeVos;
+ }
+
+
+
+ @ResponseBody
+ @PostMapping("/base/pointMerchars/updateGoodsDetail")
+ public boolean updateGoodsDetail(@RequestBody Map<String, Object> map){
+ try {
+ Integer pointMerchandiseId = (Integer) map.get("pointMerchandiseId");
+ PointsMerchandise byId1 = pmdsService.getById(pointMerchandiseId);
+
+ Integer quantityIssued = (Integer) map.get("quantityIssued");
+ Integer pickUpQuantity = (Integer) map.get("pickUpQuantity");
+ String redemptionInstructions = (String) map.get("redemptionInstructions");
+ String cover = (String) map.get("cover");
+ String productImages = (String) map.get("productImages");
+ Integer sort = (Integer) map.get("sort");
+
+ byId1.setQuantityIssued(quantityIssued);
+ byId1.setPickUpQuantity(pickUpQuantity);
+ byId1.setRedemptionInstructions(redemptionInstructions);
+ if (ToolUtil.isNotEmpty(cover)){
+ byId1.setCover(cover);
+ }
+ if (ToolUtil.isNotEmpty(productImages)){
+ byId1.setProductImages(productImages);
+ }
+ byId1.setSort(sort);
+ pmdsService.updateById(byId1);
+ return true;
+ }catch (Exception e){
+ return false;
+ }
+ }
+
+
+
+ @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;
+ }
+
+ }
+
+ @ResponseBody
+ @PostMapping("/base/pointMerchars/writeOffGoodsStatus")
+ public boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map){
+ try {
+ String o = (String) map.get("goodsId");
+ Integer managerId = (Integer) map.get("managerId");
+ UserPointsMerchandise byId = upmseService.getOne(new LambdaQueryWrapper<UserPointsMerchandise>()
+ .eq(UserPointsMerchandise::getId,Long.parseLong(o) ));
+ if (byId.getStatus() == 2){
+ return false;
+ }
+ byId.setStatus(2);
+ byId.setVerificationUserId(managerId);
+ byId.setVerificationTime(new Date());
+ upmseService.update(byId,new LambdaQueryWrapper<UserPointsMerchandise>()
+ .eq(UserPointsMerchandise::getUserId,byId.getUserId())
+ .eq(UserPointsMerchandise::getId,byId.getId()));
+ System.out.println(byId);
+ return true;
+ }catch (Exception e){
+ return false;
+ }
+ }
+
+
}
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 9b7bd28..bb20553 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/entity/PointsMerchandiseCity.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseCity.java
new file mode 100644
index 0000000..357ef8f
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseCity.java
@@ -0,0 +1,67 @@
+package com.dsh.activity.entity;
+
+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 lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 积分商品使用门店关系数据
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_points_merchandise_city")
+public class PointsMerchandiseCity extends Model<PointsMerchandiseCity> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 积分商品id
+ */
+ @TableField("pointsMerchandiseId")
+ private Integer pointsMerchandiseId;
+ /**
+ *
+ */
+ @TableField("city")
+ private String city;
+ /**
+ *
+ */
+ @TableField("cityCode")
+ private String cityCode;
+ /**
+ *
+ */
+ @TableField("province")
+ private String province;
+ /**
+ *
+ */
+ @TableField("provinceCode")
+ private String provinceCode;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseCityMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseCityMapper.java
new file mode 100644
index 0000000..91eb2c9
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseCityMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.activity.entity.PointsMerchandiseCity;
+
+/**
+ * <p>
+ * 积分商品使用门店关系数据 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-12
+ */
+public interface PointsMerchandiseCityMapper extends BaseMapper<PointsMerchandiseCity> {
+
+}
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 59743fe..4183f97 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
@@ -31,4 +31,8 @@
List<Map<String, Object>> ticketList(@Param("query") IntegralGoodsOfSearch ofSearch);
int changeState(@Param("query") CoachChangeStateVO dto);
+
+ 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/model/response/GoodsInfoOneVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/response/GoodsInfoOneVo.java
new file mode 100644
index 0000000..9dd5f71
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/response/GoodsInfoOneVo.java
@@ -0,0 +1,77 @@
+package com.dsh.activity.model.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class GoodsInfoOneVo {
+
+
+ String name;
+ /**
+ * 封面图
+ */
+ String cover;
+ /**
+ * 原价
+ */
+ BigDecimal price;
+ /**
+ * 兑换方式(1=积分,2=现金+积分, 3=现金)
+ */
+ Integer exchangeMethod;
+ /**
+ * 现金
+ */
+ BigDecimal cash;
+ /**
+ * 积分
+ */
+ Integer integral;
+ /**
+ * 图片
+ */
+ String pics;
+ /**
+ * 用户人群
+ */
+ String userPopulation;
+ /**
+ * 发放数量
+ */
+ Integer quantityIssued;
+ /**
+ * 已领数量
+ */
+ Integer hasPicked;
+ /**
+ * 限领数量
+ */
+ Integer pickUpQuantity;
+ /**
+ * 有效期
+ */
+ String validTime;
+ /**
+ * 兑换地点
+ */
+ String exchangeArea;
+ /**
+ * 兑换地点 (1=全国,2=指定城市,3=指定门店)
+ */
+ Integer useScope;
+ /**
+ * 商品说明
+ */
+ String redemptionInstructions;
+ /**
+ * 排序
+ */
+ Integer sort;
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/response/StoreVos.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/response/StoreVos.java
new file mode 100644
index 0000000..aa7ffbb
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/response/StoreVos.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.model.response;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class StoreVos {
+
+ String num1;
+
+ String num2;
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseCityService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseCityService.java
new file mode 100644
index 0000000..9b42bbe
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseCityService.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.activity.entity.PointsMerchandiseCity;
+
+/**
+ * <p>
+ * 积分商品使用门店关系数据 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-12
+ */
+public interface PointsMerchandiseCityService extends IService<PointsMerchandiseCity> {
+
+}
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 a028077..764cd43 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
@@ -20,6 +20,8 @@
List<Map<String, Object>> queryGoodsListOfSearch(IntegralGoodsOfSearch ofSearch);
+ void saveCity(Integer id, String province, String provinceCode, String city, String cityCode);
+
List<Map<String, Object>> ticketList(IntegralGoodsOfSearch ofSearch);
Object changeState(CoachChangeStateVO dto);
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseCityServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseCityServiceImpl.java
new file mode 100644
index 0000000..457096c
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseCityServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.activity.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.PointsMerchandiseCity;
+import com.dsh.activity.mapper.PointsMerchandiseCityMapper;
+import com.dsh.activity.service.PointsMerchandiseCityService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 积分商品使用门店关系数据 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-12
+ */
+@Service
+public class PointsMerchandiseCityServiceImpl extends ServiceImpl<PointsMerchandiseCityMapper, PointsMerchandiseCity> implements PointsMerchandiseCityService {
+
+}
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 1ac6e3a..8be3a23 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
@@ -28,6 +28,12 @@
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);
+ }
+
@Override
public List<Map<String, Object>> ticketList(IntegralGoodsOfSearch ofSearch) {
return this.baseMapper.ticketList(ofSearch);
diff --git a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseCityMapper.xml b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseCityMapper.xml
new file mode 100644
index 0000000..9ff98bd
--- /dev/null
+++ b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseCityMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dsh.activity.mapper.PointsMerchandiseCityMapper">
+
+
+</mapper>
diff --git a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
index 5969172..52bffed 100644
--- a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
@@ -81,4 +81,10 @@
</if>
</where>
</select>
+
+
+ <insert id="saveCity">
+ insert into t_points_merchandise_city (id,pointsMerchandiseId,city,cityCode,province,provinceCode) value (null ,#{id},#{city},#{cityCode},#{province},#{provinceCode})
+ </insert>
+
</mapper>
diff --git a/cloud-server-activity/src/main/resources/sharding-jdbc.properties b/cloud-server-activity/src/main/resources/sharding-jdbc.properties
index 54db095..f7b7fb6 100644
--- a/cloud-server-activity/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-activity/src/main/resources/sharding-jdbc.properties
@@ -3,9 +3,9 @@
#��������
datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://192.168.110.80:3306/playpai_activity?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://8.137.22.229:3306/playpai_activity?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
datasource.master0.username=root
-datasource.master0.password=123456
+datasource.master0.password=playpai2023!
datasource.master0.maxActive=20
datasource.master0.maxWait=60000
datasource.master0.minIdle=5
diff --git a/cloud-server-competition/src/main/resources/sharding-jdbc.properties b/cloud-server-competition/src/main/resources/sharding-jdbc.properties
index ffe6f6b..e9334d0 100644
--- a/cloud-server-competition/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-competition/src/main/resources/sharding-jdbc.properties
@@ -3,9 +3,9 @@
#��������
datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://192.168.110.80:3306/playpai_competition?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://8.137.22.229:3306/playpai_competition?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
datasource.master0.username=root
-datasource.master0.password=123456
+datasource.master0.password=playpai2023!
datasource.master0.maxActive=20
datasource.master0.maxWait=60000
datasource.master0.minIdle=5
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 b1478b6..337f37d 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,9 +2,11 @@
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.TCoursePackage;
import com.dsh.course.entity.TCoursePackagePayment;
import com.dsh.course.entity.TCoursePackageType;
import com.dsh.course.feignclient.model.ExerciseVideo;
@@ -34,6 +36,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;
@@ -340,6 +343,20 @@
}
+ @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;
+ }
+
+
/**
* 获取课程管理列表数据
* @param queryCourseList
@@ -416,4 +433,22 @@
public List<TCourse> queryCourseByType(@RequestBody Integer type){
return courseService.list(new QueryWrapper<TCourse>().eq("type", type).eq("state", 1));
}
+
+
+ @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/CoursePackageController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
index 3359ab0..555c8a6 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
@@ -210,6 +210,7 @@
@ResponseBody
@PostMapping("/coursePackage/addCoursePackage")
public Integer addCoursePackage(@RequestBody TCoursePackage coursePackage){
+ coursePackage.setNeedNum(coursePackage.getCodeTime());
return coursePackageService.addCoursePackage(coursePackage);
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
index f8c2125..aba1585 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
@@ -1,6 +1,7 @@
package com.dsh.course.controller;
+import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -9,6 +10,7 @@
import com.dsh.course.feignclient.account.AppUserClient;
import com.dsh.course.feignclient.account.StudentClient;
import com.dsh.course.feignclient.account.model.Student;
+import com.dsh.course.mapper.CoursePackageSchedulingMapper;
import com.dsh.course.model.dto.ToClassDto;
import com.dsh.course.service.*;
import com.dsh.course.util.ResultUtil;
@@ -23,10 +25,9 @@
import javax.annotation.Resource;
import javax.swing.text.html.parser.Entity;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
import java.util.stream.Collectors;
@Api
@@ -49,6 +50,9 @@
return counsumService.getRefund();
}
+
+ @Resource
+ private CoursePackageSchedulingMapper coursePackageSchedulingService;
//获取学员课时数信息
@RequestMapping("/getInfo")
@ResponseBody
@@ -170,7 +174,7 @@
List<TCoursePackage> list = packageService.list(new QueryWrapper<TCoursePackage>()
.select("id", "name")
.eq("storeId", storeId)
- .eq("type","1")
+ .eq("type","1").ne("id",id)
);
List<SelectDto> selectDtos = new ArrayList<>();
for (TCoursePackage t :list){
@@ -466,6 +470,7 @@
payment.setLaveClassHours(laveClassHoursnew);
payment.setTotalClassHours(totalClassHoursnew);
payment.setAppUserId(null);
+ payment.setStatus(3);
paymentService.updateById(payment);
@@ -481,7 +486,126 @@
holi.setLaveClassHours(toHoliDto.getClassNum());
holi.setState(1);
holi.setInsertTime(new Date());
+ holi.setPayStatus(2);
paymentService.save(holi);
+
+ TCoursePackage tCoursePackage = packageService.getById(toHoliDto.getClassId());
+ String classWeeks = tCoursePackage.getClassWeeks();
+ List<Integer> week = week(classWeeks);
+
+ String[] split = tCoursePackage.getClassStartTime().split(",");
+ String[] split1 = tCoursePackage.getClassEndTime().split(",");
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+ SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ // 本周周几
+ int i = DateUtil.dayOfWeek(new Date())-1;
+ for (Integer integer : week) {
+ if(integer<i){
+ // 找下一周的时间
+ Calendar instance = Calendar.getInstance();
+ instance.add(Calendar.DATE,7-(i-integer));
+ Date time = instance.getTime();
+
+ for (int i1 = 0; i1 < split.length; i1++) {
+
+ CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+ coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+ try {
+ Date parse = format1.parse(format.format(time) + " " + split[i1]);
+ Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
+ coursePackageScheduling.setClassDate(parse);
+ coursePackageScheduling.setEndDate(parse1);
+ coursePackageScheduling.setStatus(1);
+ coursePackageSchedulingService.insert(coursePackageScheduling);
+
+ CoursePackageStudent student1 = new CoursePackageStudent();
+ student1.setAppUserId(student.getAppUserId());
+ student1.setStudentId(student.getId());
+ student1.setCoursePackageId(tCoursePackage.getId());
+ student1.setCoursePackagePaymentId(holi.getId());
+ student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+ student1.setSignInOrNot(1);
+ student1.setReservationStatus(1);
+ student1.setInsertTime(new Date());
+ studentService.save(student1);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ }else if(integer>i) {
+ Calendar instance = Calendar.getInstance();
+ instance.add(Calendar.DATE,integer-i);
+ Date time1 = instance.getTime();
+ List<Date> list = new ArrayList<>();
+ list.add(time1);
+ instance.add(Calendar.DATE,7);
+ Date time2 = instance.getTime();
+ list.add(time2);
+ for (Date time : list) {
+ for (int i1 = 0; i1 < split.length; i1++) {
+ CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+ coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+ try {
+ Date parse = format1.parse(format.format(time) + " " + split[i1]);
+ Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
+ coursePackageScheduling.setClassDate(parse);
+ coursePackageScheduling.setEndDate(parse1);
+ coursePackageScheduling.setStatus(1);
+ coursePackageSchedulingService.insert(coursePackageScheduling);
+
+ CoursePackageStudent student1 = new CoursePackageStudent();
+ student1.setAppUserId(student.getAppUserId());
+ student1.setStudentId(student.getId());
+ student1.setCoursePackageId(tCoursePackage.getId());
+ student1.setCoursePackagePaymentId(holi.getId());
+ student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+ student1.setSignInOrNot(1);
+ student1.setReservationStatus(1);
+ student1.setInsertTime(new Date());
+ studentService.save(student1);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ }else {
+ Calendar instance = Calendar.getInstance();
+ instance.add(Calendar.DATE,7);
+ Date time = instance.getTime();
+
+ for (int i1 = 0; i1 < split.length; i1++) {
+ CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+ coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+ try {
+ Date parse = format1.parse(format.format(time) + " " + split[i1]);
+ Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
+ coursePackageScheduling.setClassDate(parse);
+ coursePackageScheduling.setEndDate(parse1);
+ coursePackageScheduling.setStatus(1);
+ coursePackageSchedulingService.insert(coursePackageScheduling);
+
+ CoursePackageStudent student1 = new CoursePackageStudent();
+ student1.setAppUserId(student.getAppUserId());
+ student1.setStudentId(student.getId());
+ student1.setCoursePackageId(tCoursePackage.getId());
+ student1.setCoursePackagePaymentId(holi.getId());
+ student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+ student1.setSignInOrNot(1);
+ student1.setReservationStatus(1);
+ student1.setInsertTime(new Date());
+ studentService.save(student1);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+
+
System.out.println("保存成功=============》="+holi);
@@ -496,7 +620,36 @@
-
+ }
+ private List<Integer> week(String week){
+ String[] split = week.split(";");
+ ArrayList<Integer> integers = new ArrayList<>();
+ for (String s : split) {
+ switch (s){
+ case "周一":
+ integers.add(1);
+ break;
+ case "周二":
+ integers.add(2);
+ break;
+ case "周三":
+ integers.add(3);
+ break;
+ case "周四":
+ integers.add(4);
+ break;
+ case "周五":
+ integers.add(5);
+ break;
+ case "周六":
+ integers.add(6);
+ break;
+ case "周日":
+ integers.add(7);
+ break;
+ }
+ }
+ return integers;
}
@RequestMapping(value = "/toTrans",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8")
@@ -543,10 +696,127 @@
holi.setLaveClassHours(laveClassHours);
holi.setState(1);
holi.setInsertTime(new Date());
+ holi.setPayStatus(2);
paymentService.save(holi);
System.out.println("保存成功=============》="+holi);
+ TCoursePackage tCoursePackage = packageService.getById(toHoliDto.getClassId());
+ String classWeeks = tCoursePackage.getClassWeeks();
+ List<Integer> week = week(classWeeks);
+
+ String[] split = tCoursePackage.getClassStartTime().split(",");
+ String[] split1 = tCoursePackage.getClassEndTime().split(",");
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+ SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ // 本周周几
+ int i = DateUtil.dayOfWeek(new Date())-1;
+ for (Integer integer : week) {
+ if(integer<i){
+ // 找下一周的时间
+ Calendar instance = Calendar.getInstance();
+ instance.add(Calendar.DATE,7-(i-integer));
+ Date time = instance.getTime();
+
+ for (int i1 = 0; i1 < split.length; i1++) {
+
+ CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+ coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+ try {
+ Date parse = format1.parse(format.format(time) + " " + split[i1]);
+ Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
+ coursePackageScheduling.setClassDate(parse);
+ coursePackageScheduling.setEndDate(parse1);
+ coursePackageScheduling.setStatus(1);
+ coursePackageSchedulingService.insert(coursePackageScheduling);
+
+ CoursePackageStudent student1 = new CoursePackageStudent();
+ student1.setAppUserId(student.getAppUserId());
+ student1.setStudentId(student.getId());
+ student1.setCoursePackageId(tCoursePackage.getId());
+ student1.setCoursePackagePaymentId(holi.getId());
+ student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+ student1.setSignInOrNot(1);
+ student1.setReservationStatus(1);
+ student1.setInsertTime(new Date());
+ studentService.save(student1);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ }else if(integer>i) {
+ Calendar instance = Calendar.getInstance();
+ instance.add(Calendar.DATE,integer-i);
+ Date time1 = instance.getTime();
+ List<Date> list = new ArrayList<>();
+ list.add(time1);
+ instance.add(Calendar.DATE,7);
+ Date time2 = instance.getTime();
+ list.add(time2);
+ for (Date time : list) {
+ for (int i1 = 0; i1 < split.length; i1++) {
+ CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+ coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+ try {
+ Date parse = format1.parse(format.format(time) + " " + split[i1]);
+ Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
+ coursePackageScheduling.setClassDate(parse);
+ coursePackageScheduling.setEndDate(parse1);
+ coursePackageScheduling.setStatus(1);
+ coursePackageSchedulingService.insert(coursePackageScheduling);
+
+ CoursePackageStudent student1 = new CoursePackageStudent();
+ student1.setAppUserId(student.getAppUserId());
+ student1.setStudentId(student.getId());
+ student1.setCoursePackageId(tCoursePackage.getId());
+ student1.setCoursePackagePaymentId(holi.getId());
+ student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+ student1.setSignInOrNot(1);
+ student1.setReservationStatus(1);
+ student1.setInsertTime(new Date());
+ studentService.save(student1);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ }else {
+ Calendar instance = Calendar.getInstance();
+ instance.add(Calendar.DATE,7);
+ Date time = instance.getTime();
+
+ for (int i1 = 0; i1 < split.length; i1++) {
+ CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+ coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+ try {
+ Date parse = format1.parse(format.format(time) + " " + split[i1]);
+ Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
+ coursePackageScheduling.setClassDate(parse);
+ coursePackageScheduling.setEndDate(parse1);
+ coursePackageScheduling.setStatus(1);
+ coursePackageSchedulingService.insert(coursePackageScheduling);
+
+ CoursePackageStudent student1 = new CoursePackageStudent();
+ student1.setAppUserId(student.getAppUserId());
+ student1.setStudentId(student.getId());
+ student1.setCoursePackageId(tCoursePackage.getId());
+ student1.setCoursePackagePaymentId(holi.getId());
+ student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+ student1.setSignInOrNot(1);
+ student1.setReservationStatus(1);
+ student1.setInsertTime(new Date());
+ studentService.save(student1);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
index 0a0f74a..49b711f 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -1008,7 +1008,7 @@
student1.setCoursePackageId(tCoursePackage.getId());
student1.setCoursePackagePaymentId(tCoursePackagePayment1.getId());
student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
- student1.setSignInOrNot(0);
+ student1.setSignInOrNot(1);
student1.setReservationStatus(1);
student1.setInsertTime(new Date());
student1.setType(1);
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 5323555..e3932d7 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
@@ -1072,7 +1072,7 @@
student1.setCoursePackageId(tCoursePackage.getId());
student1.setCoursePackagePaymentId(paymentId);
student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
- student1.setSignInOrNot(0);
+ student1.setSignInOrNot(1);
student1.setReservationStatus(1);
student1.setInsertTime(new Date());
cpsMapper.insert(student1);
@@ -1109,7 +1109,7 @@
student1.setCoursePackageId(tCoursePackage.getId());
student1.setCoursePackagePaymentId(paymentId);
student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
- student1.setSignInOrNot(0);
+ student1.setSignInOrNot(1);
student1.setReservationStatus(1);
student1.setInsertTime(new Date());
cpsMapper.insert(student1);
@@ -1133,10 +1133,6 @@
coursePackageScheduling.setClassDate(parse);
coursePackageScheduling.setEndDate(parse1);
coursePackageScheduling.setStatus(1);
- coursePackageScheduling.setCourseId(tCoursePackage.getId());
- coursePackageScheduling.setIntegral(0);
- coursePackageScheduling.setCancelClasses("");
- coursePackageScheduling.setDeductClassHour(0);
coursePackageSchedulingService.save(coursePackageScheduling);
CoursePackageStudent student1 = new CoursePackageStudent();
@@ -1145,7 +1141,7 @@
student1.setCoursePackageId(tCoursePackage.getId());
student1.setCoursePackagePaymentId(paymentId);
student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
- student1.setSignInOrNot(0);
+ student1.setSignInOrNot(1);
student1.setReservationStatus(1);
student1.setInsertTime(new Date());
cpsMapper.insert(student1);
diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml
index 8f0c860..5ea7737 100644
--- a/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml
@@ -25,6 +25,8 @@
cancelClasses,
deductClassHour,
integral
- FROM t_course_package_scheduling where coursePackageId = #{item.coursePackageId} order by classDate desc
+ FROM t_course_package_scheduling where coursePackageId = #{item.coursePackageId} GROUP BY classDate
+ order by classDate desc
+
</select>
</mapper>
\ No newline at end of file
diff --git a/cloud-server-course/src/main/resources/sharding-jdbc.properties b/cloud-server-course/src/main/resources/sharding-jdbc.properties
index 09e20a5..ca0dde7 100644
--- a/cloud-server-course/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-course/src/main/resources/sharding-jdbc.properties
@@ -3,9 +3,9 @@
#��������
datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://192.168.110.80:3306/playpai_course?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://8.137.22.229:3306/playpai_course?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
datasource.master0.username=root
-datasource.master0.password=123456
+datasource.master0.password=playpai2023!
datasource.master0.maxActive=20
datasource.master0.maxWait=60000
datasource.master0.minIdle=5
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 8834020..a682775 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
@@ -7,6 +7,9 @@
import com.dsh.course.feignClient.activity.model.PointMercharsVo;
import com.dsh.guns.modular.system.model.CoachChangeStateVO;
import com.dsh.guns.modular.system.model.PointMerchandiseIncomeVo;
+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;
@@ -48,4 +51,37 @@
@PostMapping("/base/pointMerchars/queryUserPayedGoodsList")
List<Map<String, Object>> queryUserPayedGoodsList(@RequestBody PointMercharsPayedVo pointMercharsPayedVo);
+ @PostMapping("/base/pointMerchars/queryPointMerchaseById")
+ PointsMerchandise queryPointMerchaseById(Integer id);
+
+
+ @PostMapping("/base/pointMerchars/getshopName")
+ Integer getshopName(Integer id);
+
+
+ @PostMapping("/base/pointMerchars/queryDetailsOfGoods")
+ GoodsInfoOneVo queryDetailsOfGoods(@RequestBody Integer id);
+
+ @PostMapping("/base/pointMerchars/getProvinces")
+ List<StoreVos> getProvinces(@RequestBody Integer id);
+
+ @PostMapping("/base/pointMerchars/getStoreList")
+ List<StoreVos> getStoreList(@RequestBody Integer id);
+
+ @PostMapping("/base/pointMerchars/updateGoodsDetail")
+ boolean updateGoodsDetail(@RequestBody Map<String, Object> stringObjectHashMap);
+
+ @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/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..4e8d7ca6
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java
@@ -0,0 +1,174 @@
+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;
+ @TableField("cardType")
+ private Integer cardType;
+
+ @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 fe050a9..171b993 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
@@ -95,4 +95,16 @@
*/
@PostMapping("/course/queryCourseByType")
List<TCourse> queryCourseByType(Integer type);
+
+
+ @PostMapping("/course/getPageageType")
+ List<Map<String, Object>> getPageageType();
+
+
+
+ @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/CourseStuddentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java
index 30dd1e0..7ac96bf 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java
@@ -89,7 +89,6 @@
@RequestMapping(value = "/courdent/toHoli",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8")
String toHoli(@RequestBody ToHoliDto toHoliDto);
@RequestMapping(value = "/courdent/toTrans",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8")
-
String toTrans(@RequestBody ToHoliDto toHoliDto);
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/BallClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/BallClient.java
new file mode 100644
index 0000000..c012371
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/BallClient.java
@@ -0,0 +1,24 @@
+package com.dsh.course.feignClient.other;
+
+import com.dsh.course.dto.StudentSearch;
+import com.dsh.course.dto.TStudentDto;
+import com.dsh.course.feignClient.other.model.Banner;
+import com.dsh.guns.modular.system.model.AdvertisementChangeStateDTO;
+import com.dsh.guns.modular.system.model.AdvertisementQuery;
+import com.dsh.guns.modular.system.model.Game;
+import com.dsh.guns.modular.system.model.dto.BallQueryDto;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-other")
+public interface BallClient {
+
+ @PostMapping("/student/webStudentList")
+ List<Game> list(@RequestBody BallQueryDto ballQueryDto);
+ @PostMapping("/save")
+ void save(@RequestBody Game game);
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachController.java
index 5099a1e..aecb6e1 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachController.java
@@ -128,7 +128,9 @@
coach.setCityManagerId(objectId);
}
- if (coach.getDiploma().equals("")) coach.setDiploma(null);
+ if (coach.getDiploma().equals("")) {
+ coach.setDiploma(null);
+ }
if (coach.getCertificateImg().equals("") ){
coach.setCertificateImg(null);
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java
index 79b3940..4447d2b 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java
@@ -172,7 +172,7 @@
for (QueryAppUserVO queryAppUserVO : queryAppUserVOS) {
if (queryAppUserVO.getSalesmanUserId()!=null){
for (User sale : sales) {
- if (queryAppUserVO.getSalesmanUserId() == sale.getId()){
+ if (queryAppUserVO.getSalesmanUserId().equals(sale.getId())){
result.add(queryAppUserVO);
}
}
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 963fbd3..7f0e88c 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
@@ -172,7 +172,9 @@
@RequestMapping(value = "/onChange")
@ResponseBody
public Object onChange(Integer oneId) {
- if (oneId == null) return null;
+ if (oneId == null) {
+ return null;
+ }
try {
TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, oneId));
QueryWrapper<TCity> query = new QueryWrapper<TCity>().eq("parent_id", one.getId());
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java
index b29cf19..58cef35 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java
@@ -16,6 +16,7 @@
import com.dsh.guns.core.util.ToolUtil;
import com.dsh.guns.modular.system.model.TSite;
import com.dsh.guns.modular.system.model.TStore;
+import com.dsh.guns.modular.system.model.dto.SelectDto;
import com.dsh.guns.modular.system.service.ICoursePackageService;
import com.dsh.guns.modular.system.service.IStoreService;
import com.dsh.guns.modular.system.service.ITSiteService;
@@ -556,6 +557,11 @@
public String showExamineCoursePackageDetails(Model model, Integer id){
TCoursePackage tCoursePackage = coursePackageService.queryById(id);
model.addAttribute("item", tCoursePackage);
+ System.out.println("============"+ tCoursePackage.getAuditStatus());
+ model.addAttribute("auditStatus", tCoursePackage.getAuditStatus());
+
+ model.addAttribute("authRemark", tCoursePackage.getAuthRemark());
+
model.addAttribute("classTime", tCoursePackage.getClassStartTime() + ":00 - " + tCoursePackage.getClassEndTime() + ":00");
String[] split = tCoursePackage.getClassWeeks().split(";");
List<String> list5 = Arrays.asList("周一", "周二", "周三", "周四", "周五", "周六", "周日");
@@ -587,11 +593,13 @@
List<Coach> coaches = coachClient.queryCoachByCity(cityCode);
model.addAttribute("coach", coaches);
List<CoursePackagePaymentConfig> list4 = coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(id);
+ if(list4.size()!=0){
+ CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0);
+ model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true);
+ model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true);}
model.addAttribute("coursePackagePaymentConfig", list4.remove(0));
model.addAttribute("coursePackagePaymentConfigs", list4);
- CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0);
- model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true);
- model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true);
+
return PREFIX + "examineCoursePackage_info.html";
}
@@ -606,6 +614,7 @@
@ResponseBody
@PostMapping("/queryCity")
public List<Map<String, Object>> queryCity(String code){
+
Integer objectType = UserExt.getUser().getObjectType();
Integer objectId = UserExt.getUser().getObjectId();
String cityCode = null;
@@ -613,7 +622,24 @@
CityManager cityManager = cityManagerClient.queryCityManagerById(objectId);
cityCode = cityManager.getCityCode();
}
+ System.out.println("======="+storeService.queryCity(code, cityCode));
return storeService.queryCity(code, cityCode);
+ }
+
+
+ @ResponseBody
+ @PostMapping("/queryCity1/{code}")
+ public ResultUtil queryCity1(@PathVariable("code") String code){
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ String cityCode = null;
+ if(objectType == 2){//城市管理员
+ CityManager cityManager = cityManagerClient.queryCityManagerById(objectId);
+ cityCode = cityManager.getCityCode();
+ }
+ System.out.println("======="+storeService.queryCity(code, cityCode));
+// return storeService.queryCity(code, cityCode);
+ return new ResultUtil(0,null,null,storeService.queryCity(code, cityCode),null);
}
@@ -626,7 +652,28 @@
@PostMapping("/queryStore")
public List<TStore> queryStore(String cityCode){
List<TStore> list = storeService.list(new QueryWrapper<TStore>().eq("cityCode", cityCode).eq("state", 1));
+ System.out.println("====list="+list);
return list;
+ }
+
+
+ @ResponseBody
+ @PostMapping("/queryStore1/{cityCode}")
+ public ResultUtil queryStore1(@PathVariable("cityCode") String cityCode){
+ List<TStore> list = storeService.list(new QueryWrapper<TStore>().select("id","name").eq("cityCode", cityCode).eq("state", 1));
+// Map<String,Integer> map = new LinkedHashMap<>();
+ List<SelectDto> selectDtos = new ArrayList<>();
+ Map<String,Integer> map = new HashMap<>();
+// for (TStore store : list) {
+// SelectDto selectDto = new SelectDto();
+// selectDto.setId(Long.valueOf(store.getId()));
+// selectDto.setValue(store.getName());
+// selectDtos.add(selectDto);
+//
+// }
+// map.put("options",selectDtos);
+
+ return new ResultUtil(0,0,null,list,null);
}
/**
@@ -637,7 +684,8 @@
@ResponseBody
@PostMapping("/querySite")
public List<TSite> querySite(Integer storeId){
- List<TSite> list = siteService.list(new QueryWrapper<TSite>().eq("storeId", storeId).eq("state", 1));
+ System.out.println("==storeId==="+storeId);
+ List<TSite> list = siteService.list(new QueryWrapper<TSite>().select("id","name").eq("storeId", storeId).eq("state", 1));
return list;
}
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 58c86e5..7c36464 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,15 +13,14 @@
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;
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.CouponDataVo;
-import com.dsh.guns.modular.system.model.Region;
-import com.dsh.guns.modular.system.model.TCity;
-import com.dsh.guns.modular.system.model.TStore;
+import com.dsh.guns.modular.system.model.*;
import com.dsh.guns.modular.system.service.ICityService;
import com.dsh.guns.modular.system.service.IRegionService;
import com.dsh.guns.modular.system.service.IStoreService;
@@ -34,11 +33,10 @@
import javax.annotation.Resource;
import java.io.IOException;
+import java.math.BigDecimal;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.stream.Collectors;
@@ -48,7 +46,7 @@
@Controller
@RequestMapping("/tGoods")
-public class TGoodsController {
+public class TGoodsController extends BaseController {
@@ -71,6 +69,9 @@
private AppUserClient appUserClient;
@Autowired
private ICityService cityService;
+
+ @Autowired
+ private CourseClient courseClient;
@Resource
private PointMercharsClient pointMercharsClient;
@@ -96,7 +97,72 @@
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";
+ }
+
+ /**
+ * 跳转到添加
+ */
+ @RequestMapping("/tGoods_info")
+ public String tGoodsInfo(Model model) {
+ Integer objectType = UserExt.getUser().getObjectType();
+ System.out.println(objectType);
+ model.addAttribute("userType",objectType);
+ 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";
+ }
+
+
}
@@ -303,15 +369,131 @@
client.insertIntoData(dataVo);
return new SuccessTip<>();
}
+
+ /**
+ * 编辑 商品详情
+ * @param pointMerchandiseId 商品Id
+ * @param quantityIssued 发放数量
+ * @param pickUpQuantity 限领数量
+ * @param redemptionInstructions 说明
+ * @param cover 封面图
+ * @param productImages 商品图片
+ * @param sort 排序
+ * @return
+ */
@PostMapping(value = "/update")
@ResponseBody
- public Object update( Integer id,Integer num,Integer num1,String text){
- Coupon coupon = client.queryCouponById(id);
- coupon.setQuantityIssued(num);
- coupon.setPickUpQuantity(num1);
- coupon.setIllustrate(text);
- client.updateCouponData(coupon);
+ public Object update( Integer pointMerchandiseId,Integer quantityIssued,Integer pickUpQuantity,String redemptionInstructions,String cover,String productImages,Integer sort){
+ Map<String, Object> stringObjectHashMap = new HashMap<>();
+ stringObjectHashMap.put("pointMerchandiseId",pointMerchandiseId);
+ stringObjectHashMap.put("quantityIssued",quantityIssued);
+ stringObjectHashMap.put("pickUpQuantity",pickUpQuantity);
+ stringObjectHashMap.put("redemptionInstructions",redemptionInstructions);
+ stringObjectHashMap.put("cover",cover);
+ stringObjectHashMap.put("productImages",productImages);
+ stringObjectHashMap.put("sort",sort);
+ System.out.println(stringObjectHashMap);
+ 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,Integer cardType
+ ) 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.setCardType(cardType);
+ 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<>();
+
}
@@ -338,7 +520,7 @@
/**
- * 跳转到修改车辆管理
+ * 跳转到修改商品详情
*/
@RequestMapping("/tGoods_update/{id}")
public String tCityUpdate(@PathVariable Integer id, Model model) {
@@ -346,8 +528,11 @@
PointMercharsVo pointMercharsVo = pointMercharsClient.queryPointMerchaseDetailOfId(id);
System.out.println("pointMercharsVo:"+pointMercharsVo);
String[] split = pointMercharsVo.getPics().split(",");
+ List<String> list = Arrays.asList(split);
+ model.addAttribute("id",id);
model.addAttribute("item",pointMercharsVo);
- model.addAttribute("pictures",split);
+ model.addAttribute("pictures",list);
+ System.out.println(list);
return PREFIX + "TGoods_edit.html";
}
@@ -434,11 +619,23 @@
*/
@RequestMapping("/write_off")
@ResponseBody
- public Object GoodsWriteOff(Integer id){
- System.out.println(id);
- // TODO: 2023/8/15 核销操作
- return new SuccessTip<>();
+ public Object GoodsWriteOff(String id){
+ Integer objectType = UserExt.getUser().getObjectType();
+ Map<String, Object> stringObjectHashMap = new HashMap<>();
+ stringObjectHashMap.put("goodsId",id);
+ stringObjectHashMap.put("managerId",objectType);
+ boolean b = pointMercharsClient.writeOffGoodsStatus(stringObjectHashMap);
+ System.out.println(b);
+ if (b){
+ return new SuccessTip<>();
+ }else {
+ return ERROR;
+ }
+
}
+
+
+
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java
index a0b3d26..cfff158 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java
@@ -176,7 +176,7 @@
List<TQueryBenefitsVideosVO> courseByCourseIds = courseClient.getCourseByCourseIds(vo);
for (BenefitsVideos benefitsVideos : benefitVideoById) {
for (TQueryBenefitsVideosVO courseByCourseId : courseByCourseIds) {
- if (benefitsVideos.getCourseId() == courseByCourseId.getId()){
+ if (benefitsVideos.getCourseId().equals(courseByCourseId.getId())){
courseByCourseId.setIntegral(benefitsVideos.getIntegral());
courseByCourseId.setBenefitsVideosId(benefitsVideos.getId());
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
new file mode 100644
index 0000000..8179ac2
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
@@ -0,0 +1,188 @@
+package com.dsh.guns.modular.system.controller.system;
+
+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.dsh.course.feignClient.account.CityManagerClient;
+import com.dsh.course.feignClient.account.CoachClient;
+import com.dsh.course.feignClient.account.model.CityManager;
+import com.dsh.course.feignClient.account.model.Coach;
+import com.dsh.course.feignClient.course.CoursePackageClient;
+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.TCoursePackageType;
+import com.dsh.course.feignClient.other.BallClient;
+import com.dsh.guns.config.UserExt;
+import com.dsh.guns.core.base.controller.BaseController;
+import com.dsh.guns.modular.system.model.*;
+import com.dsh.guns.modular.system.model.dto.BallQueryDto;
+import com.dsh.guns.modular.system.model.dto.ConsumeQuery;
+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 com.dsh.guns.modular.system.service.ITSiteService;
+import com.dsh.guns.modular.system.util.HttpRequestUtil;
+import com.dsh.guns.modular.system.util.ResultUtil;
+import com.google.common.base.Ascii;
+import com.google.gson.JsonObject;
+import com.netflix.ribbon.proxy.annotation.Http;
+import com.sun.org.apache.xerces.internal.impl.io.ASCIIReader;
+import io.netty.util.AsciiString;
+import io.rong.util.HttpUtil;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.logging.log4j.util.Base64Util;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpRequest;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.util.Base64Utils;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+
+@Controller
+@RequestMapping("/ball")
+public class BallController extends BaseController {
+ private String PREFIX = "/system/ball/";
+@Resource
+private BallClient ballClient;
+ @Autowired
+ private ICityService cityService;
+
+ @Autowired
+ private ICoursePackageService coursePackageService;
+
+ @Resource
+ private CoursePackageTypeClient coursePackageTypeClient;
+
+ @Autowired
+ private IStoreService storeService;
+
+ @Resource
+ private CityManagerClient cityManagerClient;
+
+ @Autowired
+ private ITSiteService siteService;
+
+ @Resource
+ private CoachClient coachClient;
+
+ @Resource
+ private CoursePackagePaymentConfigClient coursePackagePaymentConfigClient;
+
+ @Resource
+ private CoursePackageDiscountClient coursePackageDiscountClient;
+
+ @Resource
+ private CoursePackageClient coursePackageClient;
+
+ @RequestMapping("/tolist")
+ public String tolist(Model model) {
+
+ List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+ model.addAttribute("list",list);
+ String roleid = UserExt.getUser().getRoleid();
+ model.addAttribute("role",roleid);
+
+ return PREFIX+"ball.html";
+ }
+
+
+ /**
+ * 获取变更列表
+ */
+ /**
+ * 获取有效期
+ */
+ @RequestMapping("/list")
+ @ResponseBody
+ public List<Game> changelist(BallQueryDto ballQueryDto) {
+System.out.println("=======ballQueryDto=========="+ballQueryDto);
+
+ return ballClient.list(ballQueryDto);
+ }
+
+ @RequestMapping("/save")
+ @ResponseBody
+ public ResultUtil save(String red,String blue,String province,String city, Integer site,Integer store) {
+// JSONObject jsonObject = JSONObject.parseObject("111");
+ Game game = new Game();
+ game.setRed(red);
+ game.setBlue(blue);
+ game.setProvince(province);
+ game.setCity(city);
+ game.setSiteId(site);
+ game.setStoreId(store);
+ System.out.println("============"+game);
+ ballClient.save(game);
+ return null;
+ }
+
+ @RequestMapping("/pre_add")
+ public String add(Model model) {
+// Map<String,String> map = new HashMap<>();
+// map.put("sign","0DB011836143EEE2C2E072967C9F4E4B");
+// map.put("space_id","1001");
+// map.put("sutu_id","1001");
+//
+// String request = HttpRequestUtil.getRequest("https://try.daowepark.com/v7/user_api/general/gameList", map);
+// System.out.println("=======request=========="+request);
+////
+//// return ballClient.list(ballQueryDto);
+// }
+
+Map<String,String> map =new HashMap<>();
+map.put("sign","0DB011836143EEE2C2E072967C9F4E4B");
+ map.put("space_id","1001");
+ map.put("sutu_id","1001");
+
+ String req = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/gameList", map);
+ System.out.println("================"+req);
+// AsciiString cached = AsciiString.cached(req);
+ String convertedString = StringEscapeUtils.unescapeJava(req);
+
+System.out.println("-------------"+convertedString);
+ JSONObject parse = JSONObject.parseObject(convertedString);
+ JSONArray data = JSONObject.parseArray(parse.getString("data"));
+ JSONObject jsonObject =data.getJSONObject(0);
+
+
+
+ //
+
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ List<TCoursePackageType> tCoursePackageTypes = coursePackageTypeClient.queryAllCoursePackageType();
+ model.addAttribute("coursePackageType", tCoursePackageTypes);
+ String cityCode = null;
+ if(objectType == 2){//城市管理员
+ CityManager cityManager = cityManagerClient.queryCityManagerById(objectId);
+ cityCode = cityManager.getCityCode();
+ }
+ List<Map<String, Object>> list = storeService.queryProvince(cityCode);
+ model.addAttribute("province", list);
+ Object code = list.get(0).get("code");
+ List<Map<String, Object>> list1 = storeService.queryCity(code.toString(), cityCode);
+ model.addAttribute("city", list1);
+ String code1 = list1.get(0).get("code").toString();
+ List<TStore> list2 = storeService.list(new QueryWrapper<TStore>().eq("cityCode", code1).eq("state", 1));
+ model.addAttribute("store", list2);
+ TStore store = list2.get(0);
+ List<TSite> list3 = siteService.list(new QueryWrapper<TSite>().eq("storeId", store.getId()).eq("state", 1));
+ model.addAttribute("site", list3);
+
+
+ return PREFIX+"ball_pre_add.html";
+ }}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/KaptchaController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/KaptchaController.java
index 469f65f..2110f79 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/KaptchaController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/KaptchaController.java
@@ -23,6 +23,7 @@
* @author fengshuonan
* @date 2017-05-05 23:10
*/
+
@Controller
@RequestMapping("/kaptcha")
public class KaptchaController {
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
index 401004f..7b0eccb 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
@@ -557,8 +557,9 @@
if (resultUtil==""||resultUtil==null){
return new ResultUtil<>(0,0,"报名成功");
- }else
- return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil);
+ }else{
+ return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil);}
+
}
@@ -581,8 +582,8 @@
if (resultUtil==""){
return new ResultUtil<>(0,0,"报名成功");
- }else
- return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil);
+ }else{
+ return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil);}
}
//赠课
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/Convert.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/Convert.java
index 5e71f40..b89bfd2 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/Convert.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/Convert.java
@@ -37,10 +37,11 @@
try {
if (clazz.isAssignableFrom(String.class)) {
// ----2016-12-19---zhuangqian----防止beetlsql对空字符串不检测导致无法入库的问题----
- if (StrKit.isBlank(String.valueOf(value)))
- return " ";
- else
- return String.valueOf(value);
+ if (StrKit.isBlank(String.valueOf(value))) {
+ return " ";
+ } else {
+ return String.valueOf(value);
+ }
}
return clazz.cast(value);
} catch (ClassCastException e) {
@@ -83,7 +84,9 @@
return null;
}
- if (StrKit.isBlank(valueStr)) return null;
+ if (StrKit.isBlank(valueStr)) {
+ return null;
+ }
BasicType basicType = null;
try {
@@ -971,10 +974,12 @@
c = strText.charAt(i);
intAsc = (int) c;
strHex = Integer.toHexString(intAsc);
- if (intAsc > 128)
- str.append("\\u" + strHex);
- else // 低位在前面补00
- str.append("\\u00" + strHex);
+ if (intAsc > 128) {
+ str.append("\\u" + strHex);
+ } else // 低位在前面补00
+ {
+ str.append("\\u00" + strHex);
+ }
}
return str.toString();
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/MD5.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/MD5.java
index 3e824cd..63cad97 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/MD5.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/MD5.java
@@ -25,8 +25,9 @@
*
*/
public static String md5(String input) {
- if (input == null)
- return null;
+ if (input == null) {
+ return null;
+ }
try {
// 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”)
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/SignUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/SignUtil.java
index 72a4b79..c256e9b 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/SignUtil.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/SignUtil.java
@@ -73,10 +73,11 @@
private static String byteArrayToString(byte[] byteArray){
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < byteArray.length; i++) {
- if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
+ if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) {
strBuilder.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
- else
+ } else {
strBuilder.append(Integer.toHexString(0xFF & byteArray[i]));
+ }
}
return strBuilder.toString();
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/Game.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/Game.java
new file mode 100644
index 0000000..890a043
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/Game.java
@@ -0,0 +1,29 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+import java.util.Date;
+@Data
+public class Game {
+ private Integer id;
+ private Integer operationId;
+ private String operation;
+ private String province;
+
+ private String provinceCode;
+ private String city;
+ private String cityCode;
+ private Integer storeId;
+ private String store;
+
+ private Integer siteId;
+
+ private String site;
+
+ private String blue;
+ private String red;
+
+ private Date insertTime;
+
+ // 获取和设置方法
+}
\ No newline at end of file
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GoodsInfoOneVo.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GoodsInfoOneVo.java
new file mode 100644
index 0000000..dfc1294
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GoodsInfoOneVo.java
@@ -0,0 +1,78 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class GoodsInfoOneVo {
+
+
+ String name;
+ /**
+ * 封面图
+ */
+ String cover;
+ /**
+ * 原价
+ */
+ BigDecimal price;
+ /**
+ * 兑换方式(1=积分,2=现金+积分, 3=现金)
+ */
+ Integer exchangeMethod;
+ /**
+ * 现金
+ */
+ BigDecimal cash;
+ /**
+ * 积分
+ */
+ Integer integral;
+ /**
+ * 图片
+ */
+ String pics;
+ /**
+ * 用户人群
+ */
+ String userPopulation;
+ /**
+ * 发放数量
+ */
+ Integer quantityIssued;
+ /**
+ * 已领数量
+ */
+ Integer hasPicked;
+ /**
+ * 限领数量
+ */
+ Integer pickUpQuantity;
+ /**
+ * 有效期
+ */
+ String validTime;
+ /**
+ * 兑换点
+ */
+ String exchangeArea;
+ /**
+ * 兑换地点 (1=全国,2=指定城市,3=指定门店)
+ */
+ Integer useScope;
+ /**
+ * 商品说明
+ */
+ String redemptionInstructions;
+ /**
+ * 排序
+ */
+ Integer sort;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreVos.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreVos.java
new file mode 100644
index 0000000..1ce4dc4
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreVos.java
@@ -0,0 +1,18 @@
+package com.dsh.guns.modular.system.model;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class StoreVos {
+
+ String num1;
+
+ String num2;
+
+ String num3;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/BallQueryDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/BallQueryDto.java
new file mode 100644
index 0000000..7b5c7b9
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/BallQueryDto.java
@@ -0,0 +1,12 @@
+package com.dsh.guns.modular.system.model.dto;
+
+import lombok.Data;
+
+@Data
+public class BallQueryDto {
+ String provinceCode;
+ String cityCode;
+ String store;
+ String site;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
index 1f11123..601afed 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
@@ -417,7 +417,7 @@
}
List<CoursePackageStudent> coursePackageStudents = coursePackageStudentClient.queryByCoursePackageSchedulingId(id);
if(coursePackageStudents.size() > 0){
- return ResultUtil.error("不能取消本次");
+// return ResultUtil.error("不能取消本次");
}
coursePackageScheduling = new CoursePackageScheduling();
coursePackageScheduling.setId(id);
@@ -479,7 +479,7 @@
tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours() - deductClassHour);
}
- if(coursePackageStudent.getSignInOrNot() == 0){
+ if(coursePackageStudent.getReservationStatus() == 0){
tCoursePackagePayment.setAbsencesNumber(tCoursePackagePayment.getAbsencesNumber() + 1);
}
System.out.println("====tCoursePackagePayment====="+tCoursePackagePayment);
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/HttpRequestUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/HttpRequestUtil.java
index 79d78e4..f63c573 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/HttpRequestUtil.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/HttpRequestUtil.java
@@ -2,6 +2,8 @@
import java.io.IOException;
import java.io.PrintWriter;
+import java.net.URISyntaxException;
+import java.util.Iterator;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
@@ -14,8 +16,46 @@
import org.apache.commons.httpclient.SimpleHttpConnectionManager;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.utils.URIBuilder;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.util.EntityUtils;
+
public class HttpRequestUtil {
-
+
+ /***
+ * get请求(带参数)
+ * @param url
+ * @return String
+ */
+ public static String getReq(String url, Map<String, String> params) {
+ String result = null;
+ try {
+ URIBuilder uriBuilder = new URIBuilder(url);
+ Iterator maplist = params.entrySet().iterator();
+ while (maplist.hasNext()) {
+ Map.Entry<String, String> map = (Map.Entry<String, String>) maplist.next();
+ uriBuilder.addParameter(map.getKey(), map.getValue());
+ }
+ CloseableHttpClient client = HttpClientBuilder.create().build();
+ HttpPost get = new HttpPost(uriBuilder.build());
+ get.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36");
+ HttpResponse response = client.execute(get);
+ result = EntityUtils.toString(response.getEntity(), "UTF-8");
+
+ } catch (URISyntaxException e) {
+ e.printStackTrace();
+ } catch (ClientProtocolException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
public static String postRequest(String url, Map<String, String> params) {
// 构造HttpClient的实例
HttpClient httpClient = new HttpClient();
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OrderUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OrderUtil.java
index 6820eff..649b6a8 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OrderUtil.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/OrderUtil.java
@@ -12,7 +12,7 @@
public class OrderUtil {
/* 订单号 */
- private static long orderNum = 0l;
+ private static long orderNum = 0L;
/* 日期 */
private static String date;
@@ -25,7 +25,7 @@
String str = new SimpleDateFormat("yyMMddHHmmss").format(new Date());
if (date == null || !date.equals(str)) {
date = str;
- orderNum = 0l;
+ orderNum = 0L;
}
orderNum++;
long orderNo = Long.parseLong((date)) * 1000000;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/three/Base64Coder.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/three/Base64Coder.java
index be8cd9c..d1bd814 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/three/Base64Coder.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/three/Base64Coder.java
@@ -26,16 +26,18 @@
char_array_4[1] = (byte) (((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4));
char_array_4[2] = (byte) (((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6));
char_array_4[3] = (byte) (char_array_3[2] & 0x3f);
- for (i = 0; (i < 4); i++)
+ for (i = 0; (i < 4); i++) {
retContent += base64_alphabet[char_array_4[i]];
+ }
i = 0;
}
}
// handling the last input content
if (i > 0) {
- for (j = i; j < 3; j++)
+ for (j = i; j < 3; j++) {
char_array_3[j] = 0; // padding of zero
+ }
char_array_4[0] = (byte) ((char_array_3[0] & 0xfc) >> 2); // right
// shift
@@ -43,12 +45,15 @@
char_array_4[2] = (byte) (((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6));
char_array_4[3] = (byte) (char_array_3[2] & 0x3f);
- for (j = 0; (j < i + 1); j++)
+ for (j = 0; (j < i + 1); j++) {
retContent += base64_alphabet[char_array_4[j]];
+ }
while ((i++ < 3))
// padding of '=' of output string
+ {
retContent += '=';
+ }
}
return retContent;
@@ -68,33 +73,38 @@
mLength--;
char_array_4[i++] = data[enCode++];
if (i == 4) {
- for (i = 0; i < 4; i++)
+ for (i = 0; i < 4; i++) {
char_array_4[i] = findChar((char) char_array_4[i]);
+ }
char_array_3[0] = (byte) ((char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4));
char_array_3[1] = (byte) (((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2));
char_array_3[2] = (byte) (((char_array_4[2] & 0x3) << 6) + char_array_4[3]);
- for (i = 0; (i < 3); i++)
+ for (i = 0; (i < 3); i++) {
retContent += (char) char_array_3[i];
+ }
i = 0;
}
}
// last content handling
if (i > 0) {
- for (j = i; j < 4; j++)
+ for (j = i; j < 4; j++) {
char_array_4[j] = 0;
+ }
- for (j = 0; j < 4; j++)
+ for (j = 0; j < 4; j++) {
char_array_4[j] = findChar((char) char_array_4[j]);
+ }
char_array_3[0] = (byte) ((char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4));
char_array_3[1] = (byte) (((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2));
char_array_3[2] = (byte) (((char_array_4[2] & 0x3) << 6) + char_array_4[3]);
- for (j = 0; (j < i - 1); j++)
+ for (j = 0; (j < i - 1); j++) {
retContent += (char) char_array_3[j];
+ }
}
return retContent;
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball.html
new file mode 100644
index 0000000..90cd023
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball.html
@@ -0,0 +1,81 @@
+@layout("/common/_container.html"){
+<div class="row" id = "ttt">
+ <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">
+ @if(role=='1'){
+ <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>
+ @}
+ @if(role=='1'){
+ <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="store" name="门店名称" />
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="site" name="场地名称" />
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="userName" name="所属用户" />
+ </div>
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="TStudent.search()"/>
+ </div>
+ </div>
+ <div class="hidden-xs" id="TStudentTableToolbar" role="group">
+ <#button name="添加" icon="fa-plus" clickFun="TStudent.openAddTStudent()"/>
+
+ <#button name="修改" icon="fa-edit" clickFun="TStudent.openTStudentDetail()" space="true"/>
+ <#button name="查看详情" icon="fa-edit" clickFun="TStudent.openTStudentDetail1()" space="true"/>
+
+ @if(shiro.hasPermission("/tStudent/delete")){
+ <#button name="删除" icon="fa-remove" clickFun="TStudent.delete()" space="true"/>
+ @}
+<!-- <button id="exportButton">TTTTTTTTTT</button>-->
+ </div>
+ <#table id="TStudentTable"/>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<script src="${ctxPath}/modular/system/ball/ball.js"></script>
+<script src="${ctxPath}/modular/system/tShop/tShop.js"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.4.0/jspdf.umd.min.js">
+</script>
+<script>
+
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_add.html
new file mode 100644
index 0000000..a66a03b
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_add.html
@@ -0,0 +1,214 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+ <div class="ibox-content">
+ <div class="form-horizontal">
+ <div class="row">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*所在省:</label>
+ <div class="col-sm-4">
+ <select class="form-control" id="provinceCode" name="provinceCode">
+ @for(obj in province){
+ <option value="${obj.code}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*所在市:</label>
+ <div class="col-sm-4">
+ <select class="form-control" id="cityCode" name="cityCode">
+ @for(obj in city){
+ <option value="${obj.code}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*所属门店:</label>
+ <div class="col-sm-4">
+ <select class="form-control" id="storeId" name="storeId">
+ @for(obj in store){
+ <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-4">
+ <select class="form-control" id="siteId" name="siteId">
+ @for(obj in site){
+ <option value="${obj.id}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+
+
+ <div class="hr-line-dashed"></div>
+
+ <div id="config">
+
+ <div>
+ <div class="col-sm-4">
+ <div>游戏1*</div>
+ <div id="pic">
+ <div id="headPic" class="headPic">
+ <label class="col-sm-3 control-label">所在省:</label>
+ <img src="${ctxPath}/img/NoPIC.png" id="img" style="width: 200px; height: 150px; border: 1px solid black;">
+ </div>
+ <input type="file" id="fil" class="fil" hidden="hidden">
+ </div>
+
+ <input type="text" class="form-control">
+ <input type="text" class="form-control">
+ <input type="text" class="form-control">
+ </div>
+
+ <div class="col-sm-4">
+ <div>游戏1*</div>
+
+ <div id="pic">
+ 图片:<div id="headPic" class="headPic">
+ <img src="${ctxPath}/img/NoPIC.png" id="img" style="width: 200px; height: 150px; border: 1px solid black;">
+ </div>
+ <input type="file" id="fil" class="fil" hidden="hidden">
+ </div>
+
+ <input type="text" class="form-control">
+ <input type="text" class="form-control">
+ <input type="text" class="form-control">
+ </div>
+
+
+
+
+
+ </div>
+ </div>
+
+ <h3>课时设置</h3>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*支付方式:</label>
+ <div class="col-sm-4" style="margin-top: 6px;">
+ <input type="checkbox" name="payType" value="1"> 现金
+ <input type="checkbox" name="payType" value="2"> 玩湃币
+ </div>
+ </div>
+
+<!-- <input type="text" id = "counpons">-->
+ </div>
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10">
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.addSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="CoursePackageInfo.close()"/>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<script src="${ctxPath}/modular/system/ball/ball_info.js"></script>
+<script type="text/javascript">
+ laydate.render({
+ elem: '#classStartTime'
+ ,type: 'time'
+ ,range: true
+ });
+
+ laydate.render({
+ elem: '#holitime'
+ ,range: true //或 range: '~' 来自定义分割字符
+ });
+
+ var avatarUp = new $WebUpload("coverDrawing");
+ avatarUp.setUploadBarId("progressBar");
+ avatarUp.init();
+
+ var avatarUp1 = new $WebUpload("detailDrawing");
+ avatarUp1.setUploadBarId("progressBar");
+ avatarUp1.init();
+
+ var avatarUp1 = new $WebUpload("introduceDrawing");
+ avatarUp1.setUploadBarId("progressBar");
+ avatarUp1.init();
+ function addTime(){
+ var i = $('#dayTime > div').length
+
+ let htmlStr =' <div style="display:flex">\n' +
+ ' <input class="form-control" id="classStartTime'+i+'" name="classStartTime" placeholder="请选择" style="width: 200px;">\n' +
+ ' <i class="fa fa-trash-o" style="font-size:24px" onclick="removePrice1(this)"></i>\n' +
+ ' </div>'
+ $('#dayTime').append(htmlStr);
+ console.log("========="+i)
+ laydate.render({
+ elem: '#classStartTime'+i,
+ type: 'time',
+ range: true
+ });
+ }
+
+
+
+ let fil = document.querySelector('#fil') // 文件框,只不过隐藏了起来
+ let headPic = document.querySelector('#headPic') //图片上传框
+
+ headPic.addEventListener('click', function () {
+ fil.click() //点击上传图片,文件上传框打开
+ })
+
+ //头像上传
+ fil.addEventListener('change', function (e) {//注意,头像上传时用的时change事件
+ // console.log(this.files[0]); //文件的信息都放在files里
+ let fd = new FormData()
+ fd.append('file', this.files[0])
+ //原生ajax实现实现图片上传
+ let xhr = new XMLHttpRequest() //创建ajax对象
+ xhr.open('post', Feng.ctxPath + '/mgr/uploadImg')
+ xhr.send(fd) //将格式处理好的数据,作为参数发送
+ xhr.onreadystatechange = function () {
+ // if (xhr.code != 1) {
+ let data = xhr.responseText;
+ console.log(data);
+ $('#img').src = data;
+ img.src = data
+ // }
+ }
+ })
+
+ // document.addEventListener('DOMContentLoaded', function() {
+ //
+ // let filList = document.querySelectorAll('.fil'); // 获取所有具有类名为 'fil' 的元素列表
+ // let headPicList = document.querySelectorAll('.headPic'); // 获取所有具有类名为 'headPic' 的元素列表
+ //
+ // // 为每个元素添加事件监听器
+ // filList.forEach(function(fil) {
+ // fil.addEventListener('change', function(e) {
+ // let fd = new FormData();
+ // fd.append('file', this.files[0]);
+ // let xhr = new XMLHttpRequest();
+ // xhr.open('post', Feng.ctxPath + '/mgr/uploadImg');
+ // xhr.send(fd);
+ // xhr.onreadystatechange = function() {
+ // // if (xhr.readyState === 4 && xhr.status === 200) {
+ // let data = xhr.responseText;
+ // console.log(data);
+ // headPicList.forEach(function(headPic) {
+ // headPic.querySelector('img').src = data;
+ // });
+ // // }
+ // };
+ // });
+ // });
+ //
+ // // 为每个元素添加点击事件监听器
+ // headPicList.forEach(function(headPic) {
+ // headPic.addEventListener('click', function() {
+ // let fil = this.querySelector('.fil');
+ // fil.click();
+ // });
+ // });
+ // });
+
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html
new file mode 100644
index 0000000..6c4a8d0
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html
@@ -0,0 +1,351 @@
+<!DOCTYPE html>
+<html lang="zh">
+<head>
+ <meta charset="UTF-8" />
+ <title>amis demo</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta
+ name="viewport"
+ content="width=device-width, initial-scale=1, maximum-scale=1"
+ />
+ <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+ <link rel="stylesheet" href="${ctxPath}/sdk/sdk.css" />
+ <link rel="stylesheet" href="${ctxPath}/sdk/helper.css" />
+ <link rel="stylesheet" href="${ctxPath}/sdk/iconfont.css" />
+ <!-- 这是默认主题所需的,如果是其他主题则不需要 -->
+ <!-- 从 1.1.0 开始 sdk.css 将不支持 IE 11,如果要支持 IE11 请引用这个 css,并把前面那个删了 -->
+ <!-- <link rel="stylesheet" href="sdk-ie11.css" /> -->
+ <!-- 不过 amis 开发团队几乎没测试过 IE 11 下的效果,所以可能有细节功能用不了,如果发现请报 issue -->
+ <style>
+ html,
+ body,
+ .app-wrapper {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ }
+ </style>
+</head>
+<body>
+<div id="root" class="app-wrapper"></div>
+<script src="${ctxPath}/sdk/sdk.js"></script>
+<script type="text/javascript">
+ (function () {
+ let amis = amisRequire('amis/embed');
+ // 通过替换下面这个配置来生成不同页面
+ let amisJSON = {
+ "type": "page",
+ "id": "u:8c028a595aa6",
+ "body": [
+ {
+ "type": "form",
+ "id": "u:24af29be25d2",
+ "title": "表单",
+ "body": [
+ {
+ "label": "所属运营商:",
+ "type": "select",
+ "name": "operator",
+ "id": "u:970f68a2c4ee",
+ "mode": "horizontal",
+ "size": "lg",
+ "multiple": false,
+ "source": {
+ "url": "/api/v1/rep/cus/",
+ "method": "get",
+ "messages": {
+ }
+ },
+ "labelField": "customerName",
+ "valueField": "id",
+ "showInvalidMatch": false,
+ "searchable": true,
+ "clearable": true,
+ "horizontal": {
+ "leftFixed": "lg"
+ }
+ },
+ {
+ "type": "input-city",
+ "label": "所在省:",
+ "name": "province",
+ "id": "u:091b190331f6",
+ "mode": "horizontal",
+ "allowCity": false,
+ "allowDistrict": false,
+ "onEvent": {
+ "change": {
+ "weight": 0,
+ "actions": [
+ {
+ "componentId": "u:63c85c19f3aa",
+ "actionType": "reload",
+ "dataMergeMode": "merge"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "type": "select",
+ "label": "所在市:",
+ "name": "city",
+ "id": "u:63c85c19f3aa",
+ "multiple": false,
+ "mode": "horizontal",
+ "size": "md",
+ "horizontal": {
+ "leftFixed": "lg"
+ },
+ "source": {
+ "url": "/coursePackage/queryCity1/$province",
+ "method": "post",
+ "messages": {
+ },
+ "sendOn": "this.province != null &&this.province != ' '"
+ },
+ "onEvent": {
+ "change": {
+ "weight": 0,
+ "actions": [
+ {
+ "componentId": "u:576899b1b531",
+ "actionType": "reload",
+ "dataMergeMode": "merge"
+ }
+ ]
+ }
+ },
+ "labelField": "name",
+ "valueField": "code"
+ },
+ {
+ "type": "select",
+ "label": "所属门店:",
+ "name": "store",
+ "id": "u:576899b1b531",
+ "multiple": false,
+ "mode": "horizontal",
+ "size": "md",
+ "horizontal": {
+ "leftFixed": "lg"
+ },
+ "source": {
+ "method": "post",
+ "url": "/coursePackage/queryStore1/$city",
+ "messages": {
+ },
+ "sendOn": "this.city != null &&this.city != ' '"
+ },
+ "labelField": "name",
+ "valueField": "id",
+ "onEvent": {
+ "change": {
+ "weight": 0,
+ "actions": [
+ {
+ "componentId": "u:0d288f4bdd8e",
+ "actionType": "reload",
+ "dataMergeMode": "merge"
+ },
+ {
+ "componentId": "u:0d288f4bdd8e",
+ "args": {
+ "value": " "
+ },
+ "actionType": "setValue"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "type": "select",
+ "label": "所属场地:",
+ "name": "site",
+ "id": "u:0d288f4bdd8e",
+ "multiple": false,
+ "mode": "horizontal",
+ "size": "md",
+ "horizontal": {
+ "leftFixed": "lg"
+ },
+ "source": {
+ "url": "/coursePackage/querySite",
+ "method": "post",
+ "messages": {
+ },
+ "data": {
+ "storeId": "$store"
+ },
+ "dataType": "form"
+ },
+ "labelField": "name",
+ "valueField": "id"
+ },
+ {
+ "type": "tpl",
+ "tpl": "设备ID:",
+ "inline": true,
+ "wrapperComponent": "",
+ "id": "u:587781d5d181",
+ "style": {
+ "marginLeft": "0"
+ }
+ },
+ {
+ "type": "input-text",
+ "label": "蓝色方",
+ "name": "blue",
+ "id": "u:a4dbdeb9165e",
+ "mode": "inline",
+ "size": "xs",
+ "horizontal": {
+ "leftFixed": "sm"
+ },
+ "value": ""
+ },
+ {
+ "type": "input-text",
+ "label": "红色方",
+ "name": "red",
+ "id": "u:b0544634a698",
+ "mode": "inline"
+ },
+ {
+ "type": "tpl",
+ "tpl": "请编辑内容",
+ "inline": true,
+ "wrapperComponent": "",
+ "id": "u:89c3a95a6721"
+ },
+ {
+ "type": "button",
+ "label": "按钮",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "componentId": "u:24af29be25d2",
+ "actionType": "submit"
+ }
+ ]
+ }
+ },
+ "id": "u:b96a47957f17"
+ },
+ {
+ "type": "divider",
+ "id": "u:cc7161244b32"
+ },
+ {
+ "type": "tpl",
+ "id": "u:89c3a95a6721",
+ "tpl": "游戏配置:",
+ "inline": true,
+ "wrapperComponent": "h2"
+ },
+ {
+ "type": "container",
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "激战球场",
+ "subTitle": "副标题"
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "image",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "object-upload://default",
+ "method": "post"
+ },
+ "id": "u:824383a8e878",
+ "labelClassName": "text-dark"
+ },
+ {
+ "type": "input-text",
+ "label": "游戏名称",
+ "name": "ciji",
+ "id": "u:a4dbdeb9115e",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "激战球场"
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "cijiCoin",
+ "id": "u:99015dfd4264",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "cijiCash",
+ "id": "u:31888fb92add",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "cijiInt",
+ "id": "u:c42ab4593d20",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:8445330f451b"
+ }
+ ],
+ "style": {
+ "position": "static",
+ "display": "block",
+ "flexWrap": "nowrap",
+ "maxWidth": "300px",
+ "overflowX": "auto",
+ "margin": "0"
+ },
+ "id": "u:08adb1dcf6b9",
+ "isFixedHeight": false,
+ "isFixedWidth": false
+ }
+ ],
+ "api": {
+ "url": "/ball/save",
+ "method": "post",
+ "messages": {
+ },
+ "dataType": "json"
+ }
+ }
+ ]
+ };
+ let amisScoped = amis.embed('#root', amisJSON);
+
+
+ })();
+
+ function test(){
+ console.log("测试成功")
+ }
+
+ var myButton = document.getElementById("ttt");
+ myButton.addEventListener("click",test);
+</script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/examineCoursePackage.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/examineCoursePackage.html
index b490e0e..152721d 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/examineCoursePackage.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/examineCoursePackage.html
@@ -58,9 +58,8 @@
@if(shiro.hasPermission("/coursePackage/examineCoursePackage")){
<#button name="审核" icon="fa-plus" clickFun="ExamineCoursePackage.examineCoursePackage()"/>
@}
- @if(shiro.hasPermission("/coursePackage/detailsExamineCoursePackage")){
<#button name="详情" icon="fa-check-circle" clickFun="ExamineCoursePackage.detailsExamineCoursePackage()" space="true"/>
- @}
+
</div>
<#table id="managerTable"/>
</div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/examineCoursePackage_info.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/examineCoursePackage_info.html
index 9fe4f92..a16fef0 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/examineCoursePackage_info.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/examineCoursePackage_info.html
@@ -204,14 +204,15 @@
<div class="form-group">
<label class="col-sm-3 control-label">*审核状态:</label>
<div class="col-sm-8" style="margin-top: 6px;">
- <input name="auditStatus" type="radio" value="2"/> 通过
- <input name="auditStatus" type="radio" value="3"/> 拒绝
+ <input name="auditStatus" type="radio" value="2" ${auditStatus == 2 ? 'checked' : ''}/> 通过
+ <input name="auditStatus" type="radio" value="3" ${auditStatus == 3 ? 'checked':''}/> 拒绝
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*拒绝理由:</label>
<div class="col-sm-8" style="margin-top: 6px;">
- <textarea id="authRemark" style="width: 100%;height: 200px;" placeholder="请输入拒绝理由"></textarea>
+ <textarea id="authRemark" style="width: 100%;height: 200px;" placeholder="请输入拒绝理由" >${authRemark!}</textarea>
+
</div>
</div>
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..e64b2c4 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
@@ -49,13 +49,22 @@
</div>
<div id="b1">
<#input id="name" name="商品名称" type="text"/>
+ <div class="form-group" id="ticket" hidden>
+ <label class="col-sm-3 control-label">门票类型:</label>
+ <div class="col-sm-9">
+ <input type="radio" name="cardType" value="1" checked> 日卡
+ <input type="radio" name="cardType" value="2"> 月卡
+ <input type="radio" name="cardType" value="3" > 季卡
+ <input type="radio" name="cardType" value="4" > 年卡
+ </div>
+ </div>
<#input id="price" name="原价" type="text"/>
<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 +85,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 +141,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>
@@ -161,7 +173,7 @@
<option value="">请选择</option>
</select>
<label class="col-sm-1" style="width: 7%;margin-top: 7px">市</label>
- <label name="addBranch" class="col-sm-1" onclick="TCarInfoDlg.addBranch()" style="border: 0px;cursor: pointer;margin-top: 1%"><i class="fa fa-plus-circle"></i></label>
+ <label name="addBranch" class="col-sm-1" onclick="TGoodsInfoDlg.addBranch()" style="border: 0px;cursor: pointer;margin-top: 1%"><i class="fa fa-plus-circle"></i></label>
</div>
<div id="cityDemo"></div>
</div>
@@ -217,7 +229,7 @@
<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)">
+ <select class="form-control" id="pCode" name="pCode" onchange="TGoodsInfoDlg.oneChange(this)">
<option value="">选择省</option>
@for(obj in list){
<option value="${obj.code}">${obj.name}</option>
@@ -228,9 +240,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="TGoodsInfoDlg.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="TGoodsInfoDlg.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="TGoodsInfoDlg.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>
@@ -242,29 +386,64 @@
<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()"/>
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TGoodsInfoDlg.addSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
</div>
</div>
</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++;
+ }
+ $("#ticket").hide()
}else {
- $("#b2 ").hide()
+ $("#b2").hide()
$("#b1").show()
+ $("#ticket").show()
}
}
@@ -341,7 +520,7 @@
},
methods: {
handleAvatarSuccess(res, file) {
- TCarInfoDlg.goodsPicArray.push(file);
+ TGoodsInfoDlg.goodsPicArray.push(file);
},
beforeAvatarUpload(file) {
const isLt2M = file.size / 1024 / 1024 < 10;
@@ -351,7 +530,34 @@
return isLt2M;
},
handleRemove(file, fileList) {
- couponInfoDlg.goodsPicArray = couponInfoDlg.goodsPicArray.filter(item => {
+ TGoodsInfoDlg.goodsPicArray = TGoodsInfoDlg.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) {
+ TGoodsInfoDlg.goodsPicArray = TGoodsInfoDlg.goodsPicArray.filter(item => {
return item.uid != file.uid;
});
},
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html
new file mode 100644
index 0000000..e0e7f55
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html
@@ -0,0 +1,207 @@
+@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;
+ display: inline-block;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409eff;
+ }
+
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 110px;
+ margin-top: 40px;
+ 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">
+ <div class="form-horizontal" id="carInfoForm">
+ <div id="b1">
+ <#input id="name" name="*商品名称:" type="text" value="${item.name}" readonly="true" />
+
+ <#input id="cover" name="*原价:" avatarImg="${item.price}" readonly="true" />
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*兑换方式:</label>
+ <div class="col-sm-4">
+ @if(exchangeMethod == 1){
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="1" checked style="margin-top: 10px" disabled/>
+ <label class="col-sm-1" style="margin-left: -15px;width: 16%;margin-top: 7px">全部用户</label>
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="2" style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px" disabled/>
+ <label class="col-sm-1" style="width: 16%;margin-top: 7px">年度会员</label>
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="3" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px" disabled/>
+ <label class="col-sm-1" style="width: 18%;margin-top: 5px">已有学员用户</label>
+ @}
+
+ @if(exchangeMethod == 2){
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="1" style="margin-top: 10px" disabled/>
+ <label class="col-sm-1" style="margin-left: -15px;width: 16%;margin-top: 7px">全部用户</label>
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="2" checked style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px" disabled/>
+ <label class="col-sm-1" style="width: 16%;margin-top: 7px">年度会员</label>
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="3" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px" disabled/>
+ <label class="col-sm-1" style="width: 18%;margin-top: 5px">已有学员用户</label>
+ @}
+
+ @if(exchangeMethod == 3){
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="1" style="margin-top: 10px" disabled/>
+ <label class="col-sm-1" style="margin-left: -15px;width: 16%;margin-top: 7px">全部用户</label>
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="2" style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px" disabled/>
+ <label class="col-sm-1" style="width: 16%;margin-top: 7px">年度会员</label>
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="3" checked style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px" disabled/>
+ <label class="col-sm-1" style="width: 18%;margin-top: 5px">已有学员用户</label>
+ @}
+
+ </div>
+ </div>
+
+ <#input id="cover" name="*所需现金:" avatarImg="${item.cash}" readonly="true" />
+ <#input id="cover" name="*所需积分:" avatarImg="${item.integral}" readonly="true" />
+
+ <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">
+ @if(pictures != null){
+ @for(im in pictures){
+ <img height="100px" width="100px" src="${im}">
+ @}
+ @}
+ </div>
+ </div>
+
+ <#input id="quantityIssued" name="*用户人群:" type="text" value="${item.userPopulation}" readonly="true" />
+ <#input id="quantityIssued" name="*发放数量:" type="text" value="${item.quantityIssued}" readonly="true" />
+ <#input id="quantityIssued" name="*限领数量:" type="text" value="${item.pickUpQuantity}" readonly="true" />
+ <#input id="quantityIssued" name="*已兑换数量:" type="text" value="${item.hasPicked}" readonly="true" />
+ <#input id="quantityIssued" name="*有效期:" type="text" value="${item.validTime}" readonly="true" />
+
+ <#input id="quantityIssued" name="*兑换地点:" type="text" value="${item.exchangeArea}" readonly="true" />
+
+ @if(item.useScope == 2){
+ <table class="table table-bordered" style="width: 70%;margin-left: 228px;" >
+ <thead>
+ <tr>
+ <td>所在省市</td>
+ <td>所属账号</td>
+ <td>门店名称</td>
+ </tr>
+ </thead>
+ @for(s in store){
+ <td>${s.num1}</td>
+ <td>${s.num2}</td>
+ <td>${s.num3}</td>
+ @}
+ </table>
+ @}
+
+ @if(item.useScope == 3){
+ <table class="table table-bordered" style="width: 70%;margin-left: 228px;" >
+ <thead>
+ <tr>
+ <td>所在省市</td>
+ <td>所属账号</td>
+ <td>门店名称</td>
+ </tr>
+ </thead>
+ @for(c in city){
+ <td>${c.num1}</td>
+ <td>${c.num2}</td>
+ @}
+ </table>
+ @}
+ <div class="form-group" style="margin-left:262px">
+ <label class="col-sm-3 control-label">兑换说明:</label>
+ <div class="col-sm-4">
+ <textarea type="text/plain" id="editor" style="height: 300px;width: 800px;" readonly>${item.redemptionInstructions}</textarea>
+ </div>
+ </div>
+ <#input id="quantityIssued" name="*排序:" type="text" value="${item.sort}" readonly="true" />
+
+ </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>
+
+</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>
+ var vue2 = new Vue({
+ el: '#app',
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TGoodsInfoDlg.goodsPicArray.push(file.response);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ TGoodsInfoDlg.goodsPicArray = TGoodsInfoDlg.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_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html
index 59b18fe..0d43e8b 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html
@@ -8,6 +8,7 @@
height: 100px;
width: 100px;
overflow: hidden;
+ display: inline-block;
}
.avatar-uploader .el-upload:hover {
@@ -42,7 +43,7 @@
<div class="ibox-content">
<div class="form-horizontal" id="carInfoForm">
<div id="b1">
-
+ <input id="goodsId" value="${id}" hidden="hidden">
<#input id="name" name="商品名称" type="text" value="${item.name}" readonly="true" />
<#avatar id="cover" name="商品封面:" avatarImg="${item.cover}" />
@@ -52,7 +53,14 @@
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label">商品图片(请上传不超过五张图片): </label>
- <div class="col-sm-2" style="width: 100%;margin-left: 12%;margin-top: 1%">
+ <div class="col-sm-2" style="width: 100%;margin-left: 24%;margin-top: 1%">
+ <div class="avatar-uploader" style="display: flex;">
+ @for(im in pictures){
+ <div style="margin-right: 16px;position: relative">
+ <img height="100px" width="100px" src="${im}">
+ <i class="el-icon-delete" onclick="delImg(this)" style="color: red;font-size: 18px;position: absolute;left: 0;right: 0;top: 0;bottom: 0"></i>
+ </div>
+ @}
<el-upload
:limit="5"
class="avatar-uploader"
@@ -63,17 +71,12 @@
:on-remove="handleRemove">
<i class="el-icon-plus"></i>
</el-upload>
- <el-dialog :visible.sync="dialogVisible">
-<!-- <img width="100%" :src="imageUrl1" alt="">-->
- @for(im in pictures){
- <img width="100%" src="${im}">
- @}
+ </div>
</div>
</div>
</div>
</div>
-
<div class="form-group">
<label class="col-sm-3 control-label">发放数量:</label>
<div class="col-sm-9">
@@ -109,8 +112,8 @@
<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()"/>
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TGoodsInfoDlg.editSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
</div>
</div>
@@ -132,7 +135,7 @@
},
methods: {
handleAvatarSuccess(res, file) {
- TCarInfoDlg.goodsPicArray.push(file);
+ TGoodsInfoDlg.goodsPicArray.push(file.response);
},
beforeAvatarUpload(file) {
const isLt2M = file.size / 1024 / 1024 < 10;
@@ -142,7 +145,7 @@
return isLt2M;
},
handleRemove(file, fileList) {
- TCarInfoDlg.goodsPicArray = TCarInfoDlg.goodsPicArray.filter(item => {
+ TGoodsInfoDlg.goodsPicArray = TGoodsInfoDlg.goodsPicArray.filter(item => {
return item.uid != file.uid;
});
},
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/banckmoney.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/banckmoney.html
index 8e61277..6b29097 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/banckmoney.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/banckmoney.html
@@ -44,20 +44,22 @@
"body": [
{
"type": "form",
- "title": "表单",
- "hidden": true,
+ "id": "u:285d560cf7ab",
+ "title": "表单1",
"body": [
{
"label": "文本",
"type": "input-text",
"name": "id",
- "id": "u:99d3d8869d55"
+ "id": "u:99d3d8869d55",
+ "hidden": true
},
{
"label": "文本",
"type": "input-text",
"name": "ids",
- "id": "u:5b12dc7c90"
+ "id": "u:5b12dc7c90",
+ "hidden": true
}
],
"api": {
@@ -65,10 +67,14 @@
"method": "post",
"requestAdaptor": "",
"adaptor": "",
- "messages": {},
+ "messages": {
+ },
"dataType": "form"
},
- "id": "u:285d560cf7ab"
+ "actions": [
+ ],
+ "wrapWithPanel": false,
+ "visible": true
},
{
"type": "property",
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html
index 3795524..dc30dbe 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html
@@ -838,7 +838,7 @@
"url": "/tStudent/backmoney",
"params": {
"ids": "$ids",
- "id": "$id"
+ "id": "$studentId"
}
}
}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/ball.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/ball.js
new file mode 100644
index 0000000..b9aa25e
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/ball.js
@@ -0,0 +1,133 @@
+/**
+ * 管理初始化
+ */
+var TStudent = {
+ id: "TStudentTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TStudent.initColumn = function () {
+ return [
+ {field: 'selectItem', radio: true},
+ {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '所属运营商', field: 'operation', visible: true, align: 'center', valign: 'middle'},
+ {title: '省', field: 'province', visible: true, align: 'center', valign: 'middle'},
+ {title: '市', field: 'city', visible: true, align: 'center', valign: 'middle'},
+ { title: '门店名称', field: 'store', visible: true, align: 'center', valign: 'middle'},
+ { title: '所属场地', field: 'site', visible: true, align: 'center', valign: 'middle'},
+ { title: '设备ID', field: 'blue', visible: true, align: 'center', valign: 'middle'},
+ { title: '设备类型', field: 'red', visible: true, align: 'center', valign: 'middle'},
+ { title: '设备类型', field: 'red', visible: true, align: 'center', valign: 'middle'},
+ { title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle'}
+
+
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TStudent.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TStudent.seItem = selected[0];
+ return true;
+ }
+};
+
+/**
+ * 点击添加
+ */
+TStudent.openAddTStudent = function () {
+ var index = layer.open({
+ type: 2,
+ title: '添加',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/ball/pre_add'
+ });
+ this.layerIndex = index;
+};
+
+/**
+ * 打开修改
+ */
+TStudent.openTStudentDetail = function () {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tStudent/tStudent_update/' + TStudent.seItem.id
+ });
+ this.layerIndex = index;
+ }
+};
+
+
+/**
+ * 打开详情
+ */
+TStudent.openTStudentDetail1 = function () {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tStudent/tStudent_info/' + TStudent.seItem.id
+ });
+ this.layerIndex = index;
+ }
+};
+
+
+
+/**
+ * 删除
+ */
+TStudent.delete = function () {
+ if (this.check()) {
+ var ajax = new $ax(Feng.ctxPath + "/tStudent/delete", function (data) {
+ Feng.success("删除成功!");
+ TStudent.table.refresh();
+ }, function (data) {
+ Feng.error("删除失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("tStudentId",this.seItem.id);
+ ajax.start();
+ }
+};
+
+/**
+ * 查询列表
+ */
+TStudent.search = function () {
+ var queryData = {};
+ queryData['provinceCode'] = $("#pCode").val();
+ queryData['cityCode'] = $("#cCode").val();
+ queryData['store'] = $("#store").val();
+ queryData['site'] = $("#site").val();
+
+
+ TStudent.table.refresh({query: queryData});
+};
+
+$(function () {
+ var defaultColunms = TStudent.initColumn();
+ var table = new BSTable(TStudent.id, "/ball/list", defaultColunms);
+ table.setPaginationType("client");
+ TStudent.table = table.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/ball_info.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/ball_info.js
new file mode 100644
index 0000000..abd40bf
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/ball_info.js
@@ -0,0 +1,534 @@
+/**
+ * 用户详情对话框(可用于添加和修改对话框)
+ */
+var CoursePackageInfo = {
+ userInfoData: {},
+};
+
+
+
+/**
+ * 关闭此对话框
+ */
+CoursePackageInfo.close = function () {
+ parent.layer.close(window.parent.CoursePackage.layerIndex);
+};
+
+
+CoursePackageInfo.openDia = function (i) {
+
+ let index = layer.open({
+ type: 2,
+ title: '编辑',
+ area: ['80%', '80%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/coursePackage/conpun/'+i
+ });
+ this.layerIndex = index;
+};
+
+CoursePackageInfo.openDia1 = function (i) {
+ var ids = $("#counpons"+i).val()
+
+ console.log($("#counpons"+i).val())
+ let index = layer.open({
+ type: 2,
+ title: '编辑',
+ area: ['80%', '80%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/coursePackage/conpun1'+'/'+i+'?conpunids='+ids
+ });
+ this.layerIndex = index;
+};
+/**
+ * 提交添加用户
+ */
+CoursePackageInfo.addSubmit = function () {
+ let province = $('#provinceCode option:checked').text();
+ let provinceCode = $('#provinceCode').val();
+ let city = $('#cityCode option:checked').text();
+ let cityCode = $('#cityCode').val();
+ let storeId = $('#storeId').val();
+ let coursePackageTypeId = $('#coursePackageTypeId').val();
+ let name = $('#name').val();
+ let siteId = $('#siteId').val();
+ let coachId = $('#coachId').val();
+ let maxSubscribeNumber = $('#maxSubscribeNumber').val();
+ let codeTime = $('#codeTime').val();
+ let type = $('#type').val();
+ let holitime = $('#holitime').val();
+
+
+ // let classStartTime = JSON.stringify($('#classStartTime').val());
+
+
+ var inputElements = document.querySelectorAll('input[name="classStartTime"]');
+ let classStartTime = JSON.stringify(Array.from(inputElements).map(function(element) {
+ return element.value;
+ }))
+
+ let classWeeks = '';
+ $('input[name="classWeeks"]:checked').each(function (index, e) {
+ classWeeks += $(e).val() + ";";
+ })
+ let coverDrawing = $('#coverDrawing').val();
+ let detailDrawing = $('#detailDrawing').val();
+ let introduceDrawing = $('#introduceDrawing').val();
+ let sort = $('#sort').val();
+ let validDays = $('#validDays').val();
+ let price = [];
+ $('#price > .form-group').each(function (i, e) {
+ let classHours = $($(e).find(".classNumber_span input[class='classNumber']")[0]).val();
+ let cash = $($(e).find(".cash_span input[class='cash']")[0]).val();
+ let paiCoin = $($(e).find(".paiCoin_span input[class='paiCoin']")[0]).val();
+ let counpons = $($(e).find(".counpons")).val();
+ price.push({
+ classHours: classHours,
+ cashPayment: typeof cash == "undefined" ? 0 : cash,
+ playPaiCoin: typeof paiCoin == "undefined" ? 0 : paiCoin,
+ couponIds: typeof counpons == "undefined" ? 0 : counpons
+ });
+ });
+ if(null == provinceCode || '' == provinceCode){
+ Feng.error("所在省不能为空");
+ return
+ }
+ if(null == cityCode || '' == cityCode){
+ Feng.error("所在市不能为空");
+ return
+ }
+ if(null == storeId || '' == storeId){
+ Feng.error("所属门店不能为空");
+ return
+ }
+ if(null == coursePackageTypeId || '' == coursePackageTypeId){
+ Feng.error("课程类型不能为空");
+ return
+ }
+ if(null == name || '' == name){
+ Feng.error("课包名称不能为空");
+ return
+ }
+ if(null == siteId || '' == siteId){
+ Feng.error("上课场地不能为空");
+ return
+ }
+ if(null == coachId || '' == coachId){
+ Feng.error("授课教师不能为空");
+ return
+ }
+ // if(null == maxSubscribeNumber || '' == maxSubscribeNumber){
+ // Feng.error("最多预约人数不能为空");
+ // return
+ // }
+ // if(null == codeTime || '' == codeTime){
+ // Feng.error("扣除课时数不能为空不能为空");
+ // return
+ // }
+ // if(null == classStartTime || '' == classStartTime){
+ // Feng.error("上课时间不能为空");
+ // return
+ // }
+ // if(null == classWeeks || '' == classWeeks){
+ // Feng.error("上课时间不能为空");
+ // return
+ // }
+ classWeeks = classWeeks.substring(0, classWeeks.length - 1);
+
+ if(null == coverDrawing || '' == coverDrawing){
+ Feng.error("课包封面不能为空");
+ return
+ }
+ if(null == detailDrawing || '' == detailDrawing){
+ Feng.error("详情页不能为空");
+ return
+ }
+ if(null == introduceDrawing || '' == introduceDrawing){
+ Feng.error("课包介绍不能为空");
+ return
+ }
+ // if(null == validDays || '' == validDays){
+ // Feng.error("课时有效期不能为空");
+ // return
+ // }
+
+ let obj = {
+ province: province,
+ provinceCode: provinceCode,
+ city: city,
+ cityCode: cityCode,
+ storeId: storeId,
+ coursePackageTypeId: coursePackageTypeId,
+ name: name,
+ siteId: siteId,
+ coachId: coachId,
+ maxSubscribeNumber: maxSubscribeNumber,
+ classStartTime: classStartTime,
+ codeTime:codeTime,
+ // classStartTime: classStartTime.split(" - ")[0],
+ // classEndTime: classStartTime.split(" - ")[1],
+ classWeeks: classWeeks,
+ coverDrawing: coverDrawing,
+ detailDrawing: detailDrawing,
+ introduceDrawing: introduceDrawing,
+ sort: sort,
+ validDays: validDays,
+ coursePackagePaymentConfig: JSON.stringify(price),
+ type:type,
+ holitime:holitime
+ }
+
+ //提交信息
+ var ajax = new $ax(Feng.ctxPath + "/coursePackage/addCoursePackage", function (data) {
+ if(data.code == 200){
+ Feng.success("添加成功!");
+ CoursePackageInfo.close();
+ window.parent.CoursePackage.table.refresh();
+ }else{
+ Feng.error(data.msg);
+ }
+ }, function (data) {
+ Feng.error("添加失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set(obj);
+ ajax.start();
+};
+
+/**
+ * 提交修改
+ */
+CoursePackageInfo.editSubmit = function () {
+ let id = $('#id').val();
+ let province = $('#provinceCode option:checked').text();
+ let provinceCode = $('#provinceCode').val();
+ let city = $('#cityCode option:checked').text();
+ let cityCode = $('#cityCode').val();
+ let storeId = $('#storeId').val();
+ let coursePackageTypeId = $('#coursePackageTypeId').val();
+ let name = $('#name').val();
+ let siteId = $('#siteId').val();
+ let coachId = $('#coachId').val();
+ let maxSubscribeNumber = $('#maxSubscribeNumber').val();
+ let codeTime = $('#codeTime').val();
+ let type = $('#type').val();
+
+ let holitime = $('#holitime').val();
+
+ var inputElements = document.querySelectorAll('input[name="classStartTime"]');
+ let classStartTime = JSON.stringify(Array.from(inputElements).map(function(element) {
+ return element.value;
+ }))
+
+ // let classStartTime = $('#classStartTime').val();
+ let classWeeks = '';
+ $('input[name="classWeeks"]:checked').each(function (index, e) {
+ classWeeks += $(e).val() + ";";
+ })
+ let coverDrawing = $('#coverDrawing').val();
+ let detailDrawing = $('#detailDrawing').val();
+ let introduceDrawing = $('#introduceDrawing').val();
+ let sort = $('#sort').val();
+ let validDays = $('#validDays').val();
+ // let counpons = $($(e).find(".counpons")).val();
+
+ let price = [];
+ $('#price>.form-group').each(function (i, e) {
+ let classHours = $($(e).find(".classNumber_span input[class='classNumber']")[0]).val();
+ let cash = $($(e).find(".cash_span input[class='cash']")[0]).val();
+ let paiCoin = $($(e).find(".paiCoin_span input[class='paiCoin']")[0]).val();
+ let counpons = $($(e).find(".counpons")).val();
+
+ price.push({
+ classHours: classHours,
+ cashPayment: typeof cash == "undefined" ? 0 : cash,
+ playPaiCoin: typeof paiCoin == "undefined" ? 0 : paiCoin,
+ couponIds: typeof counpons == "undefined" ? 0 : counpons
+
+ })
+ });
+ if(null == provinceCode || '' == provinceCode){
+ Feng.error("所在省不能为空");
+ return
+ }
+ if(null == cityCode || '' == cityCode){
+ Feng.error("所在市不能为空");
+ return
+ }
+ if(null == storeId || '' == storeId){
+ Feng.error("所属门店不能为空");
+ return
+ }
+ if(null == coursePackageTypeId || '' == coursePackageTypeId){
+ Feng.error("课程类型不能为空");
+ return
+ }
+ if(null == name || '' == name){
+ Feng.error("课包名称不能为空");
+ return
+ }
+ if(null == siteId || '' == siteId){
+ Feng.error("上课场地不能为空");
+ return
+ }
+ if(null == coachId || '' == coachId){
+ Feng.error("授课教师不能为空");
+ return
+ }
+ // if(null == maxSubscribeNumber || '' == maxSubscribeNumber){
+ // Feng.error("最多预约人数不能为空");
+ // return
+ // }
+ // if(null == codeTime || '' == codeTime){
+ // Feng.error("扣除课时不能为空");
+ // return
+ // }
+ // if(null == classStartTime || '' == classStartTime){
+ // Feng.error("上课时间不能为空");
+ // return
+ // }
+ // if(null == classWeeks || '' == classWeeks){
+ // Feng.error("周不能为空");
+ // return
+ // }
+ classWeeks = classWeeks.substring(0, classWeeks.length - 1);
+
+ if(null == coverDrawing || '' == coverDrawing){
+ Feng.error("课包封面不能为空");
+ return
+ }
+ if(null == detailDrawing || '' == detailDrawing){
+ Feng.error("详情页不能为空");
+ return
+ }
+ if(null == introduceDrawing || '' == introduceDrawing){
+ Feng.error("课包介绍不能为空");
+ return
+ }
+ // if(null == validDays || '' == validDays){
+ // Feng.error("课时有效期不能为空");
+ // return
+ // }
+
+ let obj = {
+ id: id,
+ province: province,
+ provinceCode: provinceCode,
+ city: city,
+ cityCode: cityCode,
+ storeId: storeId,
+ coursePackageTypeId: coursePackageTypeId,
+ name: name,
+ siteId: siteId,
+ coachId: coachId,
+ maxSubscribeNumber: maxSubscribeNumber,
+ codeTime: codeTime,
+ type:type,
+ classStartTime: classStartTime,
+ // classEndTime: classStartTime.split(" - ")[1],
+ classWeeks: classWeeks,
+ coverDrawing: coverDrawing,
+ detailDrawing: detailDrawing,
+ introduceDrawing: introduceDrawing,
+ sort: sort,
+ validDays: validDays,
+ coursePackagePaymentConfig: JSON.stringify(price),
+ holitime:holitime
+ }
+
+ console.log("======="+obj)
+
+ //提交信息
+ var ajax = new $ax(Feng.ctxPath + "/coursePackage/updateCoursePackage", function (data) {
+ if(data.code == 200){
+ Feng.success("编辑成功!");
+ CoursePackageInfo.close();
+ window.parent.CoursePackage.table.refresh();
+ }else{
+ Feng.error(data.msg);
+ }
+ }, function (data) {
+ Feng.error("编辑失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set(obj);
+ ajax.start();
+};
+
+
+
+
+function queryStore() {
+ let ajax = new $ax(Feng.ctxPath + "/coursePackage/queryStore", function (data) {
+ let htmlStr = '';
+ for (let i = 0; i < data.length; i++) {
+ htmlStr += '<option value="' + data[i].id + '">' + data[i].name + '</option>'
+ }
+ $('#storeId').html(htmlStr);
+
+ querySite();
+ }, function (data) {
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("cityCode", $('#cityCode').val());
+ ajax.start();
+}
+
+
+
+function querySite(){
+ let ajax = new $ax(Feng.ctxPath + "/coursePackage/querySite", function (data) {
+ let htmlStr = '';
+ for (let i = 0; i < data.length; i++) {
+ htmlStr += '<option value="' + data[i].id + '">' + data[i].name + '</option>'
+ }
+ $('#siteId').html(htmlStr);
+ }, function (data) {
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("storeId", $('#storeId').val());
+ ajax.start();
+}
+
+
+function queryCoach(){
+ let ajax = new $ax(Feng.ctxPath + "/coursePackage/queryCoach", function (data) {
+ let htmlStr = '';
+ for (let i = 0; i < data.length; i++) {
+ htmlStr += '<option value="' + data[i].id + '">' + data[i].name + '</option>'
+ }
+ $('#coachId').html(htmlStr);
+ }, function (data) {
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("cityCode", $('#cityCode').val());
+ ajax.start();
+}
+
+
+function addPrice(y){
+ console.log("===="+y)
+ let cash = false;
+ let paiCoin = false;
+ $('input[name="payType"]:checked').each(function (index, e) {
+ let v = $(e).val();
+ if(v == 1){
+ cash = true;
+ }
+ if(v == 2){
+ paiCoin = true;
+ }
+ })
+ var i = $('#price > div').length+1
+ let htmlStr = ''
+
+
+ if (y===1){
+
+ htmlStr += '<div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label">*课时数:</label>\n' +
+ ' <div class="col-sm-8">\n' +
+ ' <span class="classNumber_span"><input class="classNumber" type="number" min="0" placeholder="请输入" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> </span> <span class="cash_span">\n';
+
+ }
+ if (y===2){
+
+ htmlStr += '<div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label"></label>\n' +
+ ' <div class="col-sm-8">\n' +
+ ' <span class="classNumber_span" hidden="hidden"><input class="classNumber" type="number" min="0" placeholder="请输入" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> </span> <span class="cash_span">\n';
+
+ }
+ '<div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label">*课时数:</label>\n' +
+ ' <div class="col-sm-8">\n' +
+ ' <span class="classNumber_span"><input class="classNumber" type="number" min="0" placeholder="请输入" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> </span> <span class="cash_span">\n';
+ if(cash){
+ htmlStr += '现金支付:<input class="cash" type="number" min="0" placeholder="请输入金额" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> ¥ \n';
+ }
+ htmlStr += '</span> <span class="paiCoin_span">';
+ if(paiCoin){
+ htmlStr += '玩湃币支付:<input class="paiCoin" type="number" min="0" placeholder="请输入金额" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> 币 \n';
+ }
+ htmlStr += '<button type="button" class="btn btn-info " onclick="CoursePackageInfo.openDia('+i+')" id="ensure">\n' +
+ ' <i class="fa fa-check"></i> 优惠卷\n' +
+ '</button>';
+
+ htmlStr += '</span> <i class="fa fa-trash-o" style="font-size:24px" onclick="removePrice(this)"></i>\n' +
+ '</div>\n' +'<input type="text" hidden="hidden" class = "counpons" id = "counpons'+i+'" >'+i+
+ '</div>';
+ $('#price').append(htmlStr);
+}
+
+
+
+
+function removePrice(e){
+ $(e).parent('div').parent('div').remove();
+}
+
+function removePrice1(e){
+ $(e).parent('div').remove();
+}
+
+
+
+$(function () {
+ $('#provinceCode').change(function () {
+ let ajax = new $ax(Feng.ctxPath + "/coursePackage/queryCity", function (data) {
+ let htmlStr = '';
+ for (let i = 0; i < data.length; i++) {
+ htmlStr += '<option value="' + data[i].code + '">' + data[i].name + '</option>'
+ }
+ $('#cityCode').html(htmlStr);
+
+ queryStore();
+ queryCoach();
+ }, function (data) {
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("code", $(this).val());
+ ajax.start();
+ })
+
+
+ $('#cityCode').change(function () {
+ queryStore();
+ })
+
+
+ $('#storeId').change(function () {
+ querySite();
+ })
+
+ $('input[name="payType"]').click(function () {
+ $('input[name="payType"]').each(function (index, e) {
+ let v = $(e).val();
+ if(v == 1) {
+ if (e.checked) {
+ $('span[class="cash_span"]').each(function (index, e) {
+ $(e).html('现金支付:<input class="cash" type="number" min="0" placeholder="请输入金额" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> ¥ ');
+ })
+ } else {
+ $('span[class="cash_span"]').each(function (index, e) {
+ $(e).html('');
+ })
+ }
+ }
+
+ if(v == 2){
+ if (e.checked) {
+ $('span[class="paiCoin_span"]').each(function (index, e) {
+ $(e).html('玩湃币支付:<input class="paiCoin" type="number" min="0" placeholder="请输入金额" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> 币 ')
+ })
+ } else {
+ $('span[class="paiCoin_span"]').each(function (index, e) {
+ $(e).html('');
+ })
+ }
+ }
+ })
+ })
+
+
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js
index 79f80b2..59ad350 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js
@@ -300,7 +300,7 @@
if(res.code == 200){
Feng.success("保存成功!");
layer.closeAll();
- RegistrationRecord.table.refresh();
+ ClassRecord.table.refresh();
}else{
Feng.error(res.msg);
}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageStudent.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageStudent.js
index c1d1b38..16a688e 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageStudent.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageStudent.js
@@ -31,7 +31,7 @@
},
{title: '到课状态', field: 'signInOrNot', align: 'center', valign: 'middle',
formatter: function (v, row) {
- if (row.reservationStatus === 0) {
+ if (row.signInOrNot === 2) {
return '请假';
} else {
switch (v) {
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/examineCoursePackage.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/examineCoursePackage.js
index 3e9d1a6..1d0e26b 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/examineCoursePackage.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/examineCoursePackage.js
@@ -99,7 +99,11 @@
Feng.error("请选择审核结果");
return
}
- let authRemark = $('#authRemark').text();
+
+ let authRemark = $('#authRemark').val();
+ console.log("========="+authRemark)
+
+
if(3 == auditStatus && '' == authRemark){
Feng.error("请输入拒绝理由");
return
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 f323923..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,11 +130,11 @@
if (this.check()) {
var index = layer.open({
type: 2,
- title:'编辑',
+ title:'详情',
area: ['100%', '100%'], //宽高
fix: false, //不固定
maxmin: true,
- content: Feng.ctxPath + '/tGoods/tCity_update/' + TPointProducts.seItem.id
+ content: Feng.ctxPath + '/tGoods/goods_info/' + TPointProducts.seItem.id
});
this.layerIndex = index;
}
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 f297923..73d4659 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
@@ -2,11 +2,12 @@
* 初始化车辆管理详情对话框
*/
var language=1;
-var TCarInfoDlg = {
- tCarInfoData : {},
+var TGoodsInfoDlg = {
+ tGoodsInfoData : {},
validateFields: {
},
goodsPicArray:[],
+ goodsPicArray1:[],
storeIds: [],
};
@@ -14,7 +15,7 @@
/**
* 验证数据是否为空
*/
-TCarInfoDlg.validate = function () {
+TGoodsInfoDlg.validate = function () {
$('#carInfoForm').data("bootstrapValidator").resetForm();
$('#carInfoForm').bootstrapValidator('validate');
return $("#carInfoForm").data('bootstrapValidator').isValid();
@@ -23,8 +24,8 @@
/**
* 清除数据
*/
-TCarInfoDlg.clearData = function() {
- this.tCarInfoData = {};
+TGoodsInfoDlg.clearData = function() {
+ this.tGoodsInfoData = {};
}
/**
@@ -33,8 +34,8 @@
* @param key 数据的名称
* @param val 数据的具体值
*/
-TCarInfoDlg.set = function(key, val) {
- this.tCarInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
+TGoodsInfoDlg.set = function(key, val) {
+ this.tGoodsInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
return this;
}
@@ -44,14 +45,14 @@
* @param key 数据的名称
* @param val 数据的具体值
*/
-TCarInfoDlg.get = function(key) {
+TGoodsInfoDlg.get = function(key) {
return $("#" + key).val();
}
/**
* 关闭此对话框
*/
-TCarInfoDlg.close = function() {
+TGoodsInfoDlg.close = function() {
parent.layer.close(window.parent.TPointProducts.layerIndex);
}
@@ -59,7 +60,7 @@
/**
* 收集数据
*/
-TCarInfoDlg.collectData = function() {
+TGoodsInfoDlg.collectData = function() {
this
.set('id')
.set('isPlatCar')
@@ -114,18 +115,6 @@
});
this.layerIndex = index;
}
-// 门票管理页面的门店列表展示
-function storeList1(){
- var index = layer.open({
- type: 2,
- title: '门店列表',
- area: ['80%', '80%'], //宽高
- fix: false, //不固定
- maxmin: true,
- content: Feng.ctxPath + '/tCouponManage/storeList'
- });
- this.layerIndex = index;
-}
TCarInfoDlg.selecUserOpt = function (arrays){
console.log(arrays)
//获取所有的值
@@ -157,15 +146,15 @@
console.log(e);
var row = $(e).closest('tr');
var value = row.find('#id').val();
- TCarInfoDlg.storeIds.splice(TCarInfoDlg.storeIds.indexOf(parseInt(value)), 1)
+ TGoodsInfoDlg.storeIds.splice(TGoodsInfoDlg.storeIds.indexOf(parseInt(value)), 1)
$(e).parent().parent().remove();
- console.log('storeIds',TCarInfoDlg.storeIds)
+ console.log('storeIds',TGoodsInfoDlg.storeIds)
}
-TCarInfoDlg.delete = function (o) {
+TGoodsInfoDlg.delete = function (o) {
$(o).parent("div").remove()
}
var num = 0;
-TCarInfoDlg.addBranch = function () {
+TGoodsInfoDlg.addBranch = function () {
num=num+1;
var a= "";
a = "<div style=\'margin-left: 25%\' class=\"col-sm-9 control-label\">\n" +
@@ -177,7 +166,7 @@
" <option value=\"\">请选择</option>\n" +
" </select>\n" +
" <label class=\"col-sm-1\" style=\"width: 7%;margin-top: 7px\">市</label>\n" +
- " <label name=\"addBranch\" class=\"col-sm-1\" onclick=\"TCarInfoDlg.delete(this)\" style=\"border: 0px;cursor: pointer;margin-top: 1%\"><i class=\"fa fa-trash\"></i></label>"+
+ " <label name=\"addBranch\" class=\"col-sm-1\" onclick=\"TGoodsInfoDlg.delete(this)\" style=\"border: 0px;cursor: pointer;margin-top: 1%\"><i class=\"fa fa-trash\"></i></label>"+
" </div>";
$("#cityDemo").append($(a));
getProvince(num);
@@ -241,7 +230,7 @@
/**
* 提交添加
*/
-TCarInfoDlg.addSubmit = function() {
+TGoodsInfoDlg.addSubmit = function() {
this.clearData();
this.collectData();
@@ -249,121 +238,412 @@
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();
- TCarInfoDlg.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.tCarInfoData);
- 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.set("cardType",document.querySelector('input[name="cardType"]:checked').value);
+ ajax.start();
+
+ }
+
+
}
+
+/**
+ * 删除图片的函数
+ * @param e
+ */
+function delImg(e){
+
+ $(e).parent().remove();
+}
+
/**
* 提交修改
*/
-TCarInfoDlg.editSubmit = function() {
+TGoodsInfoDlg.editSubmit = function() {
+ let cover = $("#cover").val();
+ let goodsId = $("#goodsId").val();
+ var productImages = "";
+ if (TGoodsInfoDlg.goodsPicArray.length > 0){
+ productImages = TGoodsInfoDlg.goodsPicArray.join(',');
+ }
+ let quantityIssued = $("#quantityIssued").val();
+ let pickUpQuantity = $("#pickUpQuantity").val();
+ let editor = jQuery.trim(TGoodsInfoDlg.editor.getContent());
+ console.log('editor:',editor)
- this.clearData();
- this.collectData();
- if(!this.validate()){
- return ;
- }
- let pCode = $("#pCode").val()
- let cCode = $("#cCode").val()
- let name = $("#name").val()
- let phone = $("#phone").val()
+ let sort = $("#sort").val();
- if(pCode==''){
- Feng.info("请选择省")
- return;
+ if (quantityIssued === undefined || quantityIssued === null || quantityIssued === ''){
+ return Feng.error('发放数量不能为空!');
}
- if(cCode==''){
- Feng.info("请选择市")
- return;
+ if (pickUpQuantity === undefined || pickUpQuantity === null || pickUpQuantity === ''){
+ return Feng.error('限领数量不能为空!');
}
- if(name==''){
- Feng.info("管理员姓名不能为空")
- return;
+ let quantityHas = $("#quantityHas").val();
+ if (quantityIssued <= quantityHas){
+ return Feng.error('发放数量小于已领数量!');
}
- if(phone==''){
- Feng.info("管理员手机号不能为空")
- return;
+
+
+ if (editor === undefined || editor === null || editor === ''){
+ return Feng.error('兑换说明不能为空!');
}
+ if (sort === undefined || sort === null || sort === ''){
+ return Feng.error('排序不能为空!');
+ }
+
//提交信息
- 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);
- }
+ var ajax = new $ax(Feng.ctxPath + "/tGoods/update", function(data){
+ Feng.success("修改成功!");
+ window.parent.TPointProducts.table.refresh();
+ TGoodsInfoDlg.close();
},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.set("pointMerchandiseId",goodsId);
+ ajax.set("quantityIssued",quantityIssued);
+ ajax.set("pickUpQuantity",pickUpQuantity);
+ ajax.set("redemptionInstructions",editor);
+ ajax.set("cover",cover);
+ ajax.set("productImages",productImages);
+ ajax.set("sort",sort);
ajax.start();
}
$(function() {
+
getProvince(null);
- Feng.initValidator("carInfoForm", TCarInfoDlg.validateFields);
+ Feng.initValidator("carInfoForm", TGoodsInfoDlg.validateFields);
// 初始化图片上传
var carPhoto = new $WebUpload("cover");
carPhoto.setUploadBarId("progressBar");
@@ -371,13 +651,17 @@
var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
drivingLicensePhoto.setUploadBarId("progressBar");
drivingLicensePhoto.init();
- TCarInfoDlg.editor = UE.getEditor('editor');
+ var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
+ drivingLicensePhoto.setUploadBarId("progressBar");
+ drivingLicensePhoto.init();
+ TGoodsInfoDlg.editor = UE.getEditor('editor');
+ TGoodsInfoDlg.editor1 = UE.getEditor('editor1');
});
/**
* 选择分公司后执行
*/
-TCarInfoDlg.oneChange = function (e) {
+TGoodsInfoDlg.oneChange = function (e) {
var oneId=$(e).val();
var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){
if(data!=null){
@@ -397,12 +681,72 @@
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();
+}
/**
* 类型改变执行
* @param e
*/
-TCarInfoDlg.companyTypeClick = function (e) {
+TGoodsInfoDlg.companyTypeClick = function (e) {
if (1 == e){
$(".companyDiv").hide();
} else if (2 == e){
@@ -413,7 +757,7 @@
/**
* 车辆品牌改变时执行
*/
-TCarInfoDlg.brandChange = function (e) {
+TGoodsInfoDlg.brandChange = function (e) {
var carBrandId=$(e).val();
var ajax = new $ax(Feng.ctxPath + "/tCar/brandChange", function(data){
if(data!=null){
@@ -438,7 +782,7 @@
/**
* 专车服务被点击
*/
-TCarInfoDlg.zcServerClick = function () {
+TGoodsInfoDlg.zcServerClick = function () {
var serverBox1 = $('#serverBox1').prop('checked');
if (serverBox1){
$("#zcModelDiv").show();
@@ -450,7 +794,7 @@
/**
* 跨城服务被点击
*/
-TCarInfoDlg.kcServerClick = function () {
+TGoodsInfoDlg.kcServerClick = function () {
var serverBox3 = $('#serverBox3').prop('checked');
if (serverBox3){
$("#kcModelDiv").show();
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tPay_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tPay_info.js
index 8045689..2c49494 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tPay_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tPay_info.js
@@ -20,7 +20,7 @@
{title: '联系方式', field: 'phone', visible: true, align: 'center', valign: 'middle'},
{title: '使用状态', field: 'status', visible: true, align: 'center', valign: 'middle',
formatter: function (value, row, index) {
- return {1: "未使用", 2: "待核销"}[value]
+ return {1: "未使用", 2: "已核销"}[value]
}
},
];
@@ -46,14 +46,17 @@
* @constructor
*/
TPayInfo.WriteOff = function (){
- if (this.check()) {
+ if (TPayInfo.check()) {
+ if (TPayInfo.seItem.status === 2){
+ return Feng.error("重复核销!");
+ }
var ajax = new $ax(Feng.ctxPath + "/tGoods/write_off", function (data) {
Feng.success("核销成功!");
TPayInfo.table.refresh();
}, function (data) {
Feng.error("核销失败!" + data.responseJSON.message + "!");
});
- ajax.set("id",this.seItem.id);
+ ajax.set("id",TPayInfo.seItem.id);
ajax.start();
}
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java
new file mode 100644
index 0000000..4012ed7
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java
@@ -0,0 +1,50 @@
+package com.dsh.other.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.other.entity.*;
+import com.dsh.other.feignclient.model.AdvertisementChangeStateDTO;
+import com.dsh.other.feignclient.model.AdvertisementQuery;
+import com.dsh.other.model.BannerVo;
+import com.dsh.other.service.GameService;
+import com.dsh.other.service.IBannerService;
+import com.dsh.other.util.ResultUtil;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/7/11 17:48
+ */
+@RestController
+@RequestMapping("")
+public class BallController {
+ @Autowired
+ private GameService gameService;
+
+ @ResponseBody
+ @PostMapping("/student/webStudentList")
+ public List<Game> list(@RequestBody BallQueryDto ballQueryDto){
+ List<Game> games = gameService.queryAll(ballQueryDto);
+ return games;
+ }
+
+
+ @ResponseBody
+ @PostMapping("/save")
+ public void save(@RequestBody Game game){
+
+ gameService.save(game);
+ }
+
+
+
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/BallQueryDto.java b/cloud-server-other/src/main/java/com/dsh/other/entity/BallQueryDto.java
new file mode 100644
index 0000000..733af90
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/BallQueryDto.java
@@ -0,0 +1,16 @@
+package com.dsh.other.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BallQueryDto {
+ String provinceCode;
+ String cityCode;
+ String store;
+ String site;
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/Game.java b/cloud-server-other/src/main/java/com/dsh/other/entity/Game.java
new file mode 100644
index 0000000..0f64bb9
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/Game.java
@@ -0,0 +1,50 @@
+package com.dsh.other.entity;
+
+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.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_game")
+public class Game {
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ @TableField("operationId")
+ private Integer operationId;
+ private String operation;
+ @TableField("province")
+ private String province;
+ @TableField("provinceCode")
+ private String provinceCode;
+ @TableField("city")
+ private String city;
+ @TableField("cityCode")
+ private String cityCode;
+ @TableField("storeId")
+ private Integer storeId;
+ private String store;
+ @TableField("siteId")
+ private Integer siteId;
+
+ private String site;
+ @TableField("blue")
+
+ private String blue;
+ @TableField("red")
+
+ private String red;
+ @TableField("insertTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date insertTime;
+
+ // 获取和设置方法
+}
\ No newline at end of file
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/GameMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/GameMapper.java
new file mode 100644
index 0000000..d37627b
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/GameMapper.java
@@ -0,0 +1,21 @@
+package com.dsh.other.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.other.entity.BallQueryDto;
+import com.dsh.other.entity.Game;
+import com.dsh.other.entity.Notice;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 公告 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+public interface GameMapper extends BaseMapper<Game> {
+
+ List<Game> queryAll(BallQueryDto ballQueryDto);
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/GameService.java b/cloud-server-other/src/main/java/com/dsh/other/service/GameService.java
new file mode 100644
index 0000000..0d275e4
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/GameService.java
@@ -0,0 +1,16 @@
+package com.dsh.other.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.other.entity.BallQueryDto;
+import com.dsh.other.entity.Game;
+import com.dsh.other.entity.Protocol;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/6/14 15:04
+ */
+public interface GameService extends IService<Game> {
+ List<Game> queryAll(BallQueryDto ballQueryDto);
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/GameServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/GameServiceImpl.java
new file mode 100644
index 0000000..d95dd0d
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/GameServiceImpl.java
@@ -0,0 +1,30 @@
+package com.dsh.other.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.other.entity.BallQueryDto;
+import com.dsh.other.entity.Game;
+import com.dsh.other.entity.Notice;
+import com.dsh.other.mapper.GameMapper;
+import com.dsh.other.mapper.NoticeMapper;
+import com.dsh.other.service.GameService;
+import com.dsh.other.service.NoticeService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 公告 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+@Service
+public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements GameService {
+
+ @Override
+ public List<Game> queryAll(BallQueryDto ballQueryDto) {
+ return this.baseMapper.queryAll(ballQueryDto);
+ }
+}
diff --git a/cloud-server-other/src/main/resources/mapper/GameMapper.xml b/cloud-server-other/src/main/resources/mapper/GameMapper.xml
new file mode 100644
index 0000000..59b4d6c
--- /dev/null
+++ b/cloud-server-other/src/main/resources/mapper/GameMapper.xml
@@ -0,0 +1,34 @@
+<?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.other.mapper.GameMapper">
+
+ <select id="queryAll" resultType="com.dsh.other.entity.Game">
+ SELECT
+ ga.*,st.`name` as store,op.`name` as operation,si.`name` as site
+ FROM
+ t_game ga
+ LEFT JOIN t_store st ON ga.storeId = st.id
+ LEFT JOIN t_operator op ON ga.operationId = op.id
+ LEFT JOIN t_site si on ga.siteId = si.id
+ <where>
+ <if test="provinceCode!=null and provinceCode!=''">
+ ga.provinceCode = #{provinceCode}
+
+ </if>
+ <if test="cityCode!=null and cityCode!=''">
+ and ga.cityCode = #{cityCode}
+
+ </if>
+ <if test="store!=null and store!=''">
+ and st.`name` = #{store}
+
+ </if>
+ <if test="site!=null and site!=''">
+ and si.`name` = #{site}
+
+ </if>
+ </where>
+
+
+ </select>
+</mapper>
--
Gitblit v1.7.1