From 7808456a1e50af2dbd67488278eac85a558bd8f9 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期日, 08 十月 2023 17:05:36 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai
---
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html | 89
logs/mb-cloud-management/2023-10/debug.2023-10-07.0.log117386460201400.tmp | 79
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java | 34
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java | 9
cloud-server-other/src/main/java/com/dsh/other/service/TGameRecordService.java | 17
cloud-server-other/src/main/java/com/dsh/other/util/HttpRequestUtil.java | 254 +
.idea/workspace.xml | 91
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java | 8
cloud-server-management/src/main/webapp/static/modular/system/ball/ball.js | 7
cloud-server-course/src/main/java/com/dsh/course/entity/PacQueryDto.java | 16
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html | 2
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 120
cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java | 3
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionAuditController.java | 19
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TCity_edit.html | 98
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java | 11
cloud-server-other/src/main/java/com/dsh/other/mapper/GameMapper.java | 4
cloud-server-course/src/main/java/com/dsh/course/model/QueryDataFee.java | 16
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 45
cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java | 2
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java | 9
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java | 11
cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods.js | 259 +
cloud-server-other/src/main/java/com/dsh/other/entity/TGameConfig.java | 3
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html | 1049 ++++
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html | 286 +
cloud-server-activity/src/main/java/com/dsh/activity/model/QueryDataFee.java | 16
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/QueryDataFee.java | 16
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java | 9
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GameConfigDto.java | 9
cloud-server-course/src/main/java/com/dsh/course/entity/dto/StudentQeryDto.java | 14
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_two.html | 396 ++
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_edit.html | 157
cloud-server-management/src/main/webapp/static/modular/system/ball/ball_info.js | 2
cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java | 9
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java | 7
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoodsAudit.html | 66
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java | 17
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java | 35
cloud-server-other/src/main/java/com/dsh/other/service/impl/GameServiceImpl.java | 7
cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tPay_info.js | 102
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/TimeDto.java | 7
cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods_info.js | 804 ++++
cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java | 6
cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml | 71
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_edit.html | 123
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java | 9
cloud-server-other/src/main/java/com/dsh/other/entity/TStoreOtherConfigTrue.java | 3
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteBookingServiceImpl.java | 1
cloud-server-other/src/main/java/com/dsh/other/mapper/TGameRecordMapper.java | 17
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/BookingQuery.java | 19
cloud-server-account/src/main/java/com/dsh/account/model/QueryDataFee.java | 16
cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java | 2
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TStoreList.html | 58
cloud-server-other/src/main/java/com/dsh/other/entity/TGameRecord.java | 65
cloud-server-competition/src/main/java/com/dsh/competition/model/QueryDataFee.java | 16
cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/TStoreInfo.js | 157
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java | 153
cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java | 45
cloud-server-other/src/main/java/com/dsh/other/entity/Game.java | 4
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html | 112
cloud-server-other/src/main/resources/mapper/GameMapper.xml | 11
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java | 10
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 129
cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java | 5
cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java | 71
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html | 1309 ++++++
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java | 445 ++
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java | 5
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java | 43
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetitionAudit/TCompetition_edit.html | 13
cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java | 7
cloud-server-other/src/main/java/com/dsh/other/entity/BookingQuery.java | 19
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html | 11
cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java | 124
cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java | 57
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_add.html | 569 ++
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/PacQueryDto.java | 17
cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js | 542 ++
.idea/modules.xml | 1
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java | 7
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java | 16
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/BallClient.java | 17
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GameConfig.java | 93
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_pay.html | 48
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBooking.java | 5
cloud-server-management/src/main/resources/mapper/SiteBookingMapper.xml | 6
cloud-server-management/src/main/resources/mapper/TStoreMapper.xml | 10
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java | 18
cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition_info.js | 45
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TGameConfig.java | 70
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/paike.html | 410 ++
cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java | 25
cloud-server-management/src/main/java/com/dsh/course/dto/JsDto.java | 10
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_one.html | 208 +
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/OrderDto.java | 9
cloud-server-other/src/main/java/com/dsh/other/service/impl/TGameRecordServiceImpl.java | 21
cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js | 200 +
cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java | 265 +
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball.html | 5
cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml | 34
cloud-server-other/src/main/resources/mapper/TGameRecordMapper.xml | 6
cloud-server-other/src/main/java/com/dsh/other/service/GameService.java | 4
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java | 6
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/jieshao.html | 1163 ++++++
cloud-server-management/src/main/java/com/dsh/course/dto/StudentQeryDto.java | 14
cloud-server-management/src/main/java/com/dsh/course/mapper/SiteBookingMapper.java | 1
cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java | 2
cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/platformIncome.html | 298 +
cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java | 32
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteBookingService.java | 7
113 files changed, 11,235 insertions(+), 307 deletions(-)
diff --git a/.idea/modules.xml b/.idea/modules.xml
index b047c60..43966e6 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -3,7 +3,6 @@
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/PlayPai.iml" filepath="$PROJECT_DIR$/.idea/PlayPai.iml" />
- <module fileurl="file://$PROJECT_DIR$/cloud-server-course/mb-cloud-course.iml" filepath="$PROJECT_DIR$/cloud-server-course/mb-cloud-course.iml" />
</modules>
</component>
</project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 7f92887..aacdc06 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -25,11 +25,13 @@
<select />
</component>
<component name="ChangeListManager">
- <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="9.26。15">
+ <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="10.8">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CourseCounsumServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CourseCounsumServiceImpl.java" 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" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -77,43 +79,43 @@
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
- <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 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:/Javaproject/PlayPay/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": "preferences.pluginManager",
+ "spring.configuration.checksum": "6e27eb92c8707375af194da5aa857bbc",
+ "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:\Javaproject\PlayPay\cloud-server-management\src\main\webapp\WEB-INF\view\system\ball" />
+ <recent name="D:\Javaproject\PlayPay\cloud-server-management\src\main\webapp\static\modular\system\ball" />
+ <recent name="D:\Javaproject\PlayPay\cloud-server-course\src\main\resources\mapper" />
<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" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\tStudent" />
@@ -121,11 +123,11 @@
<recent name="D:\ttt\java\PlayPai\cloud-server-parent" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
+ <recent name="com.dsh.guns.modular.system.service.impl" />
+ <recent name="com.dsh.guns.modular.system.service" />
<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">
@@ -305,6 +307,7 @@
<workItem from="1696433675086" duration="2211000" />
<workItem from="1696462020097" duration="481000" />
<workItem from="1696465598653" duration="19850000" />
+ <workItem from="1696639362946" duration="45956000" />
</task>
<task id="LOCAL-00001" summary="后台代码删除">
<created>1690249807612</created>
@@ -597,7 +600,15 @@
<option name="project" value="LOCAL" />
<updated>1696489413712</updated>
</task>
- <option name="localTasksCounter" value="39" />
+ <task id="LOCAL-00039" summary="10.8">
+ <option name="closed" value="true" />
+ <created>1696749061197</created>
+ <option name="number" value="00039" />
+ <option name="presentableId" value="LOCAL-00039" />
+ <option name="project" value="LOCAL" />
+ <updated>1696749061197</updated>
+ </task>
+ <option name="localTasksCounter" value="40" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@@ -638,7 +649,8 @@
<MESSAGE value="9.26。13" />
<MESSAGE value="9.26。14" />
<MESSAGE value="9.26。15" />
- <option name="LAST_COMMIT_MESSAGE" value="9.26。15" />
+ <MESSAGE value="10.8" />
+ <option name="LAST_COMMIT_MESSAGE" value="10.8" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
@@ -660,9 +672,14 @@
</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>1355</line>
+ <line>1358</line>
<option name="timeStamp" value="14" />
</line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionAuditController.java</url>
+ <line>139</line>
+ <option name="timeStamp" value="21" />
+ </line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
index 707bea3..b7c7d88 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
@@ -1,16 +1,21 @@
package com.dsh.account.controller;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.account.dto.*;
-import com.dsh.account.entity.Coach;
-import com.dsh.account.entity.GiftSearchDto;
-import com.dsh.account.entity.TStudent;
+import com.dsh.account.entity.*;
import com.dsh.account.feignclient.course.CoursePaymentClient;
import com.dsh.account.feignclient.course.model.TCoursePackagePayment;
+import com.dsh.account.model.QueryDataFee;
import com.dsh.account.model.StudentVo;
+import com.dsh.account.service.IVipPaymentService;
+import com.dsh.account.service.RechargeRecordsService;
+import com.dsh.account.service.TAppUserService;
import com.dsh.account.service.TStudentService;
import com.dsh.account.util.ResultUtil;
import com.dsh.account.util.TokenUtil;
+import com.dsh.account.util.ToolUtil;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@@ -19,10 +24,13 @@
import springfox.documentation.swagger2.mappers.ModelMapper;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.stream.Collectors;
/**
* @author zhibing.pu
@@ -37,6 +45,15 @@
@Autowired
private TokenUtil tokenUtil;
+
+ @Autowired
+ private TAppUserService appUserService;
+
+ @Autowired
+ private IVipPaymentService vipPaymentService;
+
+ @Autowired
+ private RechargeRecordsService rechargeRecordsService;
/**
* 添加学员
@@ -231,4 +248,105 @@
System.out.println("=======giftSelect======selectDtos====>"+list);
return list;
}
+
+
+ @PostMapping("/student/getUserPt")
+ @ResponseBody
+ public List<Integer> getUserPt(@RequestBody List<Integer> ids){
+ if(ids.size()==0){
+ ids.add(-1);
+ }
+ List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().in(TAppUser::getInsertType, 1));
+ return list.stream().map(TAppUser::getId).collect(Collectors.toList());
+ }
+
+
+ @PostMapping("/student/queryFee")
+ public HashMap<String, Object> queryFee(@RequestBody QueryDataFee queryDataFee){
+ HashMap<String, Object> map = new HashMap<>();
+ String data = queryDataFee.getData();
+ List<Integer> ids = queryDataFee.getIds();
+ if(ids.size()==0){
+ ids.add(-1);
+ }
+ LambdaQueryWrapper<VipPayment> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ if(ToolUtil.isNotEmpty(data)){
+ String stime = data.split(" - ")[0]+" 00:00:00";
+ String etime = data.split(" - ")[1]+" 23:59:59";
+ vipPaymentLambdaQueryWrapper.between(VipPayment::getInsertTime,stime,etime);
+ }
+ vipPaymentLambdaQueryWrapper.in(VipPayment::getAppUserId,ids);
+ vipPaymentLambdaQueryWrapper.eq(VipPayment::getPayStatus,2);
+ List<VipPayment> list = vipPaymentService.list(vipPaymentLambdaQueryWrapper);
+ double sum = list.stream().mapToDouble(VipPayment::getAmount).sum();
+
+ map.put("fee1",sum);
+
+ LambdaQueryWrapper<RechargeRecords> rechargeRecordsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ if(ToolUtil.isNotEmpty(data)){
+ String stime = data.split(" - ")[0]+" 00:00:00";
+ String etime = data.split(" - ")[1]+" 23:59:59";
+ rechargeRecordsLambdaQueryWrapper.between(RechargeRecords::getInsertTime,stime,etime);
+ }
+ rechargeRecordsLambdaQueryWrapper.in(RechargeRecords::getAppUserId,ids);
+ rechargeRecordsLambdaQueryWrapper.eq(RechargeRecords::getPayStatus,2);
+ List<RechargeRecords> list1 = rechargeRecordsService.list(rechargeRecordsLambdaQueryWrapper);
+ double sum1 = list1.stream().map(RechargeRecords::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add).doubleValue();
+
+ map.put("fee2",sum1);
+
+
+
+
+ return map;
+
+
+ }
+
+
+
+ @PostMapping("/student/queryUserAge")
+ public HashMap<String, Object> queryUserAge(){
+ HashMap<String, Object> map = new HashMap<>();
+ List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().in(TAppUser::getInsertType, 1));
+ List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());
+ if(collect.size()==0){
+ collect.add(-1);
+ }
+ List<TStudent> list1 = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect));
+ int age1=0;
+ int age2=0;
+ int age3=0;
+ int age4=0;
+ int boy=0;
+ int girl=0;
+ for (TStudent tStudent : list1) {
+ Date birthday = tStudent.getBirthday();
+ long l = DateUtil.betweenYear(birthday, new Date(), true);
+ if(l<7){
+ age1++;
+ }else if(l>=8 && l<11){
+ age2++;
+ }else if(l>=11 && l<=12){
+ age3++;
+ }else {
+ age4++;
+ }
+ if(tStudent.getSex()==1){
+ boy++;
+ }else {
+ girl++;
+ }
+ }
+ map.put("age1",age1);
+ map.put("age2",age2);
+ map.put("age3",age3);
+ map.put("age4",age4);
+ map.put("boy",boy);
+ map.put("girl",girl);
+ return map;
+
+
+
+ }
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java
index 40394d3..1cdf5c9 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java
@@ -3,6 +3,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.util.List;
+
@Data
public class RecordAppoint {
@@ -27,4 +29,11 @@
@ApiModelProperty(value = "课状态(1待上课 2已开始 3已完成 4已取消 5已请假 6旷课)")
private Integer status;
+
+ private Integer userId;
+
+ private Integer siteId;
+
+ private List<Integer> ids;
+
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/QueryDataFee.java b/cloud-server-account/src/main/java/com/dsh/account/model/QueryDataFee.java
new file mode 100644
index 0000000..ae5a8d4
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/QueryDataFee.java
@@ -0,0 +1,16 @@
+package com.dsh.account.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class QueryDataFee {
+ private String data;
+
+ private List<Integer> ids;
+}
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 b46d67c..6569c12 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
@@ -16,6 +16,7 @@
import com.dsh.activity.model.PointMerchandiseIncomeVo;
import com.dsh.activity.model.PointMerchandiseVo;
import com.dsh.activity.model.WriteOffDTO;
+import com.dsh.activity.model.QueryDataFee;
import com.dsh.activity.model.request.*;
import com.dsh.activity.model.response.GoodsInfoOneVo;
import com.dsh.activity.model.response.StoreVos;
@@ -76,6 +77,11 @@
@Resource
private CouponCityService ccityService;
+
+
+ @Resource
+ private PointsMerchandiseCityService pmdsCityService;
+
@Autowired
private UserPointsMerchandiseService userPointsMerchandiseService;
@@ -161,9 +167,6 @@
public List<PointMerchandiseIncomeVo> getAmount(){
return userPointsMerchandiseService.getAmount();
}
-
- @Resource
- private PointsMerchandiseCityService pmdsCityService;
@ResponseBody
@@ -637,7 +640,6 @@
-
public int dealTimeStatus(String startTime, String endTime){
LocalDate now = LocalDate.now();
LocalDate start = LocalDate.parse(startTime);
@@ -985,4 +987,114 @@
}
+
+ @ResponseBody
+ @PostMapping("/base/pointMerchars/getIntegralGoodsListOfSearchAudit")
+ public List<Map<String,Object>> getIntegralGoodsListOfSearchAudit(@RequestBody IntegralGoodsOfSearch ofSearch){
+ System.out.println(ofSearch);
+ List<Map<String, Object>> mapList = pmdsService.queryGoodsListOfSearchAudit(ofSearch);
+ if (mapList.size() > 0){
+ for (Map<String, Object> stringObjectMap : mapList) {
+ Integer o = (Integer) stringObjectMap.get("id");
+ String startTime = (String) stringObjectMap.get("startTime");
+ String endTime = (String) stringObjectMap.get("endTime");
+ stringObjectMap.put("timeValue",startTime + "至"+endTime);
+ int count1 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
+ .eq(UserPointsMerchandise::getPointsMerchandiseId, o));
+ int count2 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
+ .eq(UserPointsMerchandise::getPointsMerchandiseId, o)
+ .eq(UserPointsMerchandise::getStatus,2));
+ stringObjectMap.put("hasExchangeQty",count1);
+ stringObjectMap.put("hasPickQty",count2);
+
+ stringObjectMap.put("activeStatus",dealTimeStatus(startTime,endTime));
+ }
+ if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())){
+ mapList = dealTimeData(mapList,ofSearch.getActiveStatus());
+ }
+ }
+ System.out.println("mapList->"+mapList);
+ return mapList;
+ }
+
+
+ @PostMapping("/base/pointMerchars/updateType")
+ @ResponseBody
+ public Object updateType(@RequestBody String s){
+ String[] split = s.split("_");
+ PointsMerchandise byId = pmdsService.getById(split[0]);
+ byId.setStatus(Integer.valueOf(split[1]));
+ if(Integer.valueOf(split[1])==3){
+
+ byId.setRemark(split[2]);
+ }
+ return pmdsService.updateById(byId);
+
+ }
+
+
+ @PostMapping("/base/pointMerchars/queryFee")
+ @ResponseBody
+ public HashMap<String, Object> queryFee(@RequestBody QueryDataFee queryDataFee){
+ HashMap<String, Object> map = new HashMap<>();
+ String data = queryDataFee.getData();
+ List<Integer> ids = queryDataFee.getIds();
+ if(ids.size()==0){
+ ids.add(-1);
+ }
+ List<PointsMerchandise> list1 = pmdsService.list(new LambdaQueryWrapper<PointsMerchandise>().eq(PointsMerchandise::getRedemptionMethod, 3));
+ LambdaQueryWrapper<UserPointsMerchandise> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ if(ToolUtil.isNotEmpty(data)){
+ String stime = data.split(" - ")[0]+" 00:00:00";
+ String etime = data.split(" - ")[1]+" 23:59:59";
+ vipPaymentLambdaQueryWrapper.between(UserPointsMerchandise::getInsertTime,stime,etime);
+ }
+ vipPaymentLambdaQueryWrapper.in(UserPointsMerchandise::getUserId,ids);
+ List<Integer> collect = list1.stream().map(PointsMerchandise::getId).collect(Collectors.toList());
+ if(collect.size()==0){
+ collect.add(-1);
+ }
+ vipPaymentLambdaQueryWrapper.in(UserPointsMerchandise::getPointsMerchandiseId,collect);
+ vipPaymentLambdaQueryWrapper.eq(UserPointsMerchandise::getPayStatus,2);
+ ArrayList<Integer> objects = new ArrayList<>();
+ List<UserPointsMerchandise> list = upmseService.list(vipPaymentLambdaQueryWrapper);
+
+ double a =0;
+ double d =0;
+ double m =0;
+ double j =0;
+ double y =0;
+ for (UserPointsMerchandise userPointsMerchandise : list) {
+ for (PointsMerchandise pointsMerchandise : list1) {
+ if(pointsMerchandise.getId()==userPointsMerchandise.getPointsMerchandiseId()){
+ a += pointsMerchandise.getCash().doubleValue();
+ }
+ if(pointsMerchandise.getType()==3){
+ if(pointsMerchandise.getCardType()==1){
+ d += pointsMerchandise.getCash().doubleValue();
+ }
+ if(pointsMerchandise.getCardType()==2){
+ m += pointsMerchandise.getCash().doubleValue();
+ }
+ if(pointsMerchandise.getCardType()==3){
+ j += pointsMerchandise.getCash().doubleValue();
+ }
+ if(pointsMerchandise.getCardType()==4){
+ y += pointsMerchandise.getCash().doubleValue();
+ }
+ }
+ }
+
+ }
+
+ map.put("all",a);
+ map.put("day",d);
+ map.put("month",m);
+ map.put("quarter",j);
+ map.put("year",y);
+ return map;
+
+
+ }
+
}
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 bb20553..4fa8b3b 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
@@ -165,6 +165,10 @@
private Integer shelves;
@TableField("cardType")
private Integer cardType;
+ @TableField("status")
+ private Integer status;
+ @TableField("remark")
+ private String remark;
@Override
protected Serializable pkVal() {
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 4183f97..49248dd 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
@@ -27,6 +27,13 @@
@Param("activeStatus") Integer activeStatus,
@Param("state") Integer state,
@Param("page") Page<Map<String, Object>> page);
+ List<Map<String, Object>> queryGoodsListOfSearchAudit(@Param("name")String name,
+ @Param("type")Integer type,
+ @Param("redemptionMethod")Integer redemptionMethod,
+ @Param("userPopulation") Integer userPopulation,
+ @Param("activeStatus") Integer activeStatus,
+ @Param("state") Integer state,
+ @Param("page") Page<Map<String, Object>> page);
List<Map<String, Object>> ticketList(@Param("query") IntegralGoodsOfSearch ofSearch);
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryDataFee.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryDataFee.java
new file mode 100644
index 0000000..d83e5d7
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryDataFee.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class QueryDataFee {
+ private String data;
+
+ private List<Integer> ids;
+}
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 764cd43..4c7adc5 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
@@ -22,6 +22,8 @@
void saveCity(Integer id, String province, String provinceCode, String city, String cityCode);
+ List<Map<String, Object>> queryGoodsListOfSearchAudit(IntegralGoodsOfSearch ofSearch);
+
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/PointsMerchandiseServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
index 8be3a23..e0c9309 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
@@ -27,6 +27,11 @@
return this.baseMapper.queryGoodsListOfSearch(ofSearch.getName(),ofSearch.getType(),ofSearch.getRedemptionMethod(),
ofSearch.getUserPopulation(),ofSearch.getActiveStatus(),ofSearch.getState(),ofSearch.getPage());
}
+ @Override
+ public List<Map<String, Object>> queryGoodsListOfSearchAudit(IntegralGoodsOfSearch ofSearch) {
+ return this.baseMapper.queryGoodsListOfSearchAudit(ofSearch.getName(),ofSearch.getType(),ofSearch.getRedemptionMethod(),
+ ofSearch.getUserPopulation(),ofSearch.getActiveStatus(),ofSearch.getState(),ofSearch.getPage());
+ }
@Override
diff --git a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
index 6ca8f3c..129dead 100644
--- a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
@@ -16,6 +16,7 @@
pickUpQuantity,
`sort`,
shelves
+
from t_points_merchandise
where 1 = 1
<if test="name != null">
@@ -36,6 +37,39 @@
and `type` !=3
order by insertTime desc
</select>
+ <select id="queryGoodsListOfSearchAudit" resultType="java.util.Map">
+ SELECT id,
+ `name`,
+ `cover`,
+ `type`,
+ date_format(startTime ,'%Y-%m-%d') as startTime,
+ date_format(endTime ,'%Y-%m-%d') as endTime,
+ useScope,
+ userPopulation,
+ quantityIssued,
+ pickUpQuantity,
+ `sort`,
+ shelves,
+ status
+ from t_points_merchandise
+ where type =3 and `status` !=1
+ <if test="name != null">
+ and `name` like concat('%', #{name}, '%')
+ </if>
+ <if test="type != null">
+ and cardType = #{type}
+ </if>
+ <if test="redemptionMethod != null">
+ and redemptionMethod = #{redemptionMethod}
+ </if>
+ <if test="userPopulation != null">
+ and userPopulation = #{userPopulation}
+ </if>
+ <if test="activeStatus != null">
+ and `status` = #{activeStatus}
+ </if>
+ order by insertTime desc
+ </select>
<select id="ticketList" resultType="java.util.Map">
SELECT id,
`name`,
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
index 57f39c4..6990211 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
@@ -30,10 +30,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -548,5 +545,32 @@
}
}
+
+
+ @PostMapping("/base/competition/queryFee")
+ public Double queryFee(@RequestBody QueryDataFee queryDataFee){
+ HashMap<String, Object> map = new HashMap<>();
+ String data = queryDataFee.getData();
+ List<Integer> ids = queryDataFee.getIds();
+ if(ids.size()==0){
+ ids.add(-1);
+ }
+ LambdaQueryWrapper<PaymentCompetition> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ if(ToolUtil.isNotEmpty(data)){
+ String stime = data.split(" - ")[0]+" 00:00:00";
+ String etime = data.split(" - ")[1]+" 23:59:59";
+ vipPaymentLambdaQueryWrapper.between(PaymentCompetition::getInsertTime,stime,etime);
+ }
+ vipPaymentLambdaQueryWrapper.in(PaymentCompetition::getAppUserId,ids);
+ vipPaymentLambdaQueryWrapper.eq(PaymentCompetition::getPayStatus,2);
+ ArrayList<Integer> objects = new ArrayList<>();
+ objects.add(1);
+ objects.add(2);
+ vipPaymentLambdaQueryWrapper.in(PaymentCompetition::getPayType,objects);
+ List<PaymentCompetition> list = paymentCompetitionService.list(vipPaymentLambdaQueryWrapper);
+ double sum = list.stream().mapToDouble(PaymentCompetition::getAmount).sum();
+ return sum;
+ }
+
}
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/model/QueryDataFee.java b/cloud-server-competition/src/main/java/com/dsh/competition/model/QueryDataFee.java
new file mode 100644
index 0000000..fcfc378
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/model/QueryDataFee.java
@@ -0,0 +1,16 @@
+package com.dsh.competition.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class QueryDataFee {
+ private String data;
+
+ private List<Integer> ids;
+}
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 337f37d..fa41b2b 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
@@ -18,10 +18,7 @@
import com.dsh.course.service.TCoursePackageService;
import com.dsh.course.service.TCoursePackageTypeService;
import com.dsh.course.service.TCourseService;
-import com.dsh.course.util.PageFactory;
-import com.dsh.course.util.PayMoneyUtil;
-import com.dsh.course.util.ResultUtil;
-import com.dsh.course.util.TokenUtil;
+import com.dsh.course.util.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -35,10 +32,12 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
@Api
@CrossOrigin
@@ -451,4 +450,68 @@
public String getHours(@RequestBody Integer coursePackageId1){
return coursePackageService.getHours(coursePackageId1);
}
+
+ @PostMapping("/course/queryFee")
+ public HashMap<String, Object> queryFee(@RequestBody QueryDataFee queryDataFee){
+ HashMap<String, Object> map = new HashMap<>();
+ String data = queryDataFee.getData();
+ List<Integer> ids = queryDataFee.getIds();
+ if(ids.size()==0){
+ ids.add(-1);
+ }
+
+ LambdaQueryWrapper<TCoursePackagePayment> wrapper = new LambdaQueryWrapper<>();
+ if(ToolUtil.isNotEmpty(data)){
+ String stime = data.split(" - ")[0]+" 00:00:00";
+ String etime = data.split(" - ")[1]+" 23:59:59";
+ wrapper.between(TCoursePackagePayment::getInsertTime,stime,etime);
+ }
+ wrapper.in(TCoursePackagePayment::getAppUserId,ids);
+ wrapper.eq(TCoursePackagePayment::getPayStatus,2);
+ ArrayList<Integer> objects = new ArrayList<>();
+ objects.add(1);
+ objects.add(2);
+ objects.add(5);
+ objects.add(6);
+ wrapper.in(TCoursePackagePayment::getPayType,objects);
+ List<TCoursePackagePayment> list = coursePackagePaymentService.list(wrapper);
+ double v = list.stream().map(TCoursePackagePayment::getCashPayment).reduce(BigDecimal.ZERO, BigDecimal::add).doubleValue();
+ List<Integer> collect = list.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
+ if(collect.size()==0){
+ collect.add(-1);
+ }
+ //
+ List<TCoursePackage> list2 = coursePackageService.list(new LambdaQueryWrapper<TCoursePackage>().in(TCoursePackage::getId, collect));
+ // 课类型
+ List<TCoursePackageType> list1 = coursePackageTypeService.list();
+
+ for (TCoursePackagePayment tCoursePackagePayment : list) {
+ for (TCoursePackage tCoursePackage : list2) {
+ if(tCoursePackagePayment.getCoursePackageId().equals(tCoursePackage.getId())){
+ tCoursePackagePayment.setType(tCoursePackage.getCoursePackageTypeId());
+ }
+ }
+ }
+
+ ArrayList<HashMap<String, Object>> hashMaps = new ArrayList<>();
+
+ for (TCoursePackageType tCoursePackageType : list1) {
+ HashMap<String, Object> objectObjectHashMap = new HashMap<>();
+ objectObjectHashMap.put("name",tCoursePackageType.getName());
+ double a= 0;
+ for (TCoursePackagePayment tCoursePackagePayment : list) {
+ if(tCoursePackagePayment.getType().equals(tCoursePackageType.getId())){
+ a += tCoursePackagePayment.getCashPayment().doubleValue();
+ }
+ }
+ objectObjectHashMap.put("value",a);
+ hashMaps.add(objectObjectHashMap);
+ }
+
+ HashMap<String, Object> map1 = new HashMap<>();
+ map1.put("fee",v);
+ map1.put("data",hashMaps);
+
+ return map1;
+ }
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
index 737901c..2f691bb 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -1243,7 +1243,7 @@
return packagePaymentService.save(packagePayment);
}
-
+ @ResponseBody
@PostMapping("/base/coursePack/obtainStudentClassDetails")
public List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody WeeksOfCourseRest stuId){
try {
@@ -1558,4 +1558,47 @@
return a;
}
+
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/queryCourseData")
+ public List<Map<String,Object>> queryCourseData(@RequestBody List<Integer> ids){
+ // 找出课程类型 找出剩余的课时数
+ List<TCoursePackageType> list = coursePackageTypeService.list();
+ if(ids.size()==0){
+ ids.add(-1);
+ }
+ List<TCoursePackagePayment> list1 = packagePaymentService.listOne(ids);
+ List<Integer> collect = list1.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
+ if(collect.size()==0){
+ collect.add(-1);
+ }
+ List<TCoursePackage> list2 = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().in(TCoursePackage::getId, collect));
+ for (TCoursePackagePayment tCoursePackagePayment : list1) {
+ for (TCoursePackage tCoursePackage : list2) {
+ if(tCoursePackagePayment.getCoursePackageId().equals(tCoursePackage.getId())){
+ tCoursePackagePayment.setType(tCoursePackage.getType());
+ }
+ }
+ }
+
+
+ List<Map<String,Object>> mapList = new ArrayList<>();
+ for (TCoursePackageType tCoursePackageType : list) {
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("name",tCoursePackageType.getName());
+ int a =0;
+ for (TCoursePackagePayment tCoursePackagePayment : list1) {
+ if(tCoursePackagePayment.getType().equals(tCoursePackageType.getId())){
+ a += tCoursePackagePayment.getLaveClassHours();
+ }
+ }
+ map.put("value",a);
+ mapList.add(map);
+ }
+
+
+ return mapList;
+ }
+
+
}
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 aba1585..ee637bb 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
@@ -53,6 +53,40 @@
@Resource
private CoursePackageSchedulingMapper coursePackageSchedulingService;
+
+
+
+
+ @RequestMapping("/getStudentTotal")
+ @ResponseBody
+ public List<Map<String, Object>> get(@RequestBody StudentQeryDto studentQeryDto) {
+ System.out.println("-====studentQeryDto========="+studentQeryDto);
+ List<Map<String, Object>> pays = paymentService.getStudentTotal(studentQeryDto);
+ System.out.println("=========pays======"+pays);
+
+ return pays;
+
+ }
+
+
+ @RequestMapping("/bypac")
+ @ResponseBody
+ public List<Map<String, Object>> bypac(@RequestBody PacQueryDto pacQueryDto) {
+
+
+
+
+
+ System.out.println("-====studentQeryDto========="+pacQueryDto);
+ List<Map<String, Object>> pays = paymentService.bypac(pacQueryDto);
+ System.out.println("=========pays======"+pays);
+
+ return pays;
+
+ }
+
+
+
//获取学员课时数信息
@RequestMapping("/getInfo")
@ResponseBody
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/PacQueryDto.java b/cloud-server-course/src/main/java/com/dsh/course/entity/PacQueryDto.java
new file mode 100644
index 0000000..bb1929d
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/PacQueryDto.java
@@ -0,0 +1,16 @@
+package com.dsh.course.entity;
+
+
+import lombok.Data;
+
+@Data
+public class PacQueryDto {
+ String cityCode;
+ String store;
+ String name;
+ String times;
+ String start;
+ String end;
+ String provinceCode;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
index ef54715..f4ccf79 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
@@ -164,4 +164,29 @@
*/
@TableField("salesName")
private String salesName;
+
+ @TableField(exist = false)
+ private String studentName;
+ @TableField(exist = false)
+
+ private String province;
+ @TableField(exist = false)
+
+ private String city;
+ @TableField(exist = false)
+
+ private String courseName;
+ @TableField(exist = false)
+
+ private Integer hasHours;
+ @TableField(exist = false)
+
+ private BigDecimal laveCashPayment;
+ @TableField(exist = false)
+
+ private BigDecimal cashPayment1;
+
+
+ @TableField(exist = false)
+ private Integer type;
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/dto/StudentQeryDto.java b/cloud-server-course/src/main/java/com/dsh/course/entity/dto/StudentQeryDto.java
new file mode 100644
index 0000000..b22d696
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/dto/StudentQeryDto.java
@@ -0,0 +1,14 @@
+package com.dsh.course.entity.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class StudentQeryDto {
+ String cityCode;
+ String start;
+ String end;
+ String studentName;
+ String times;
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java
index 49d1ffc..c7d3f49 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java
@@ -3,6 +3,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.util.List;
+
@Data
public class RecordAppoint {
@@ -27,4 +29,10 @@
@ApiModelProperty(value = "课状态(1待上课 2已开始 3已完成 4已取消 5已请假 6旷课)")
private Integer status;
+ private Integer userId;
+
+ private Integer siteId;
+
+ private List<Integer> ids;
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
index 03f1be1..edd843d 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
@@ -2,7 +2,9 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.course.entity.PacQueryDto;
import com.dsh.course.entity.TCoursePackagePayment;
+import com.dsh.course.entity.dto.StudentQeryDto;
import com.dsh.course.model.QueryRegistrationRecord;
import com.dsh.course.model.BillingRequest;
import io.swagger.models.auth.In;
@@ -67,4 +69,11 @@
boolean updateHoursById(@Param("id") Long id, @Param("i") int i);
void updateBytime(@Param("coursePackagePayment") TCoursePackagePayment coursePackagePayment);
+
+ List<Map<String, Object>> getStudentTotal(StudentQeryDto studentQeryDto);
+
+ List<Map<String, Object>> pacQueryDto(PacQueryDto pacQueryDto);
+
+ List<TCoursePackagePayment> listOne(@Param("ids") List<Integer> ids);
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/QueryDataFee.java b/cloud-server-course/src/main/java/com/dsh/course/model/QueryDataFee.java
new file mode 100644
index 0000000..6609927
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/QueryDataFee.java
@@ -0,0 +1,16 @@
+package com.dsh.course.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class QueryDataFee {
+ private String data;
+
+ private List<Integer> ids;
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
index e69e432..441ec3d 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
@@ -3,7 +3,9 @@
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.course.entity.PacQueryDto;
import com.dsh.course.entity.TCoursePackagePayment;
+import com.dsh.course.entity.dto.StudentQeryDto;
import com.dsh.course.feignclient.model.RecordAppoint;
import com.dsh.course.model.*;
import com.dsh.course.model.vo.RegisterCourseVo;
@@ -133,4 +135,9 @@
List<RegisterOrderVO> listAllRegister(RegisterOrderQuery query);
+ List<Map<String, Object>> getStudentTotal(StudentQeryDto studentQeryDto);
+
+ List<Map<String, Object>> bypac(PacQueryDto pacQueryDto);
+ List<TCoursePackagePayment> listOne(List<Integer> ids);
+
}
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 49b711f..2bfc8a7 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
@@ -1,6 +1,9 @@
package com.dsh.course.service.impl;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alipay.api.domain.Person;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -9,6 +12,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.course.entity.*;
import com.dsh.course.entity.TAppUser;
+import com.dsh.course.entity.dto.StudentQeryDto;
import com.dsh.course.feignclient.account.AppUserClient;
import com.dsh.course.feignclient.account.CoachClient;
import com.dsh.course.feignclient.account.StudentClient;
@@ -46,6 +50,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -148,6 +153,108 @@
ETime = query.getRegisterTime().split(" - ")[1] + " 23:59:59";
}
return cpConfigMapper.listAllRegister(query,STime,ETime,query.getAmount());
+ }
+
+ @Override
+ public List<Map<String, Object>> getStudentTotal(StudentQeryDto studentQeryDto) {
+ List<Map<String, Object>> studentTotal = this.baseMapper.getStudentTotal(studentQeryDto);
+
+ for (Map<String, Object> student : studentTotal) {
+ BigDecimal cashPayment = (BigDecimal) student.get("cashPayment");
+ BigDecimal totalClassHours = (BigDecimal) student.get("totalClassHours");
+ BigDecimal hasHours = (BigDecimal) student.get("hasHours");
+
+ BigDecimal hasPayment = cashPayment.divide(totalClassHours, 2, RoundingMode.HALF_UP)
+ .multiply(hasHours).setScale(2, RoundingMode.HALF_UP);
+ student.put("hasPayment", hasPayment);
+
+
+ Integer appUserId = (Integer) student.get("appUserId");
+ AppUser appUser = appuClient.queryAppUser(appUserId);
+ student.put("province", appUser.getProvince());
+ student.put("provinceCode", appUser.getProvinceCode());
+
+ student.put("city", appUser.getCity());
+ student.put("cityCode", appUser.getCityCode());
+
+ Student studentId = studentClient.queryStudentById((Integer) student.get("studentId"));
+ student.put("studentName", studentId.getName());
+
+
+ }
+
+ if (studentQeryDto.getCityCode()!=null&&studentQeryDto.getCityCode()!="") {
+ String value = studentQeryDto.getCityCode();
+ boolean allZeros = value.substring(value.length() - 4).endsWith("0000");
+ System.out.println(allZeros); // Output: true
+ if (allZeros){
+ Iterator<Map<String, Object>> iterator = studentTotal.iterator();
+ while (iterator.hasNext()) {
+ Map<String, Object> student = iterator.next();
+ String cityCode = (String) student.get("provinceCode");
+ if (!cityCode.equals(studentQeryDto.getCityCode())) {
+ iterator.remove(); // Remove the element from the list
+ }
+ }
+ }else{
+ Iterator<Map<String, Object>> iterator = studentTotal.iterator();
+ while (iterator.hasNext()) {
+ Map<String, Object> student = iterator.next();
+ String cityCode = (String) student.get("cityCode");
+ if (!cityCode.equals(studentQeryDto.getCityCode())) {
+ iterator.remove(); // Remove the element from the list
+ }
+ }}
+ }
+
+ if (studentQeryDto.getStudentName()!=null&&studentQeryDto.getStudentName()!=""){
+ List<Map<String, Object>> totallike = new ArrayList<>();
+ for (Map<String, Object> student : studentTotal) {
+ String studentName = (String) student.get("studentName");
+ if (studentName.contains(studentQeryDto.getStudentName())){
+ totallike.add(student);
+ }
+
+ }
+ return totallike;
+ }
+ return studentTotal;
+ }
+
+ @Override
+ public List<Map<String, Object>> bypac(PacQueryDto pacQueryDto) {
+ if (pacQueryDto.getCityCode()!=null&&pacQueryDto.getCityCode()!=""){
+ String value = pacQueryDto.getCityCode();
+ boolean allZeros = value.substring(value.length() - 4).endsWith("0000");
+ System.out.println(allZeros); // Output: true
+
+ if (allZeros){
+ pacQueryDto.setProvinceCode(pacQueryDto.getCityCode());
+ pacQueryDto.setCityCode(null);
+ }
+
+ }
+ List<Map<String, Object>> maps = this.baseMapper.pacQueryDto(pacQueryDto);
+
+ if (pacQueryDto.getName()!=null&&pacQueryDto.getName()!=""){
+ List<Map<String, Object>> totallike = new ArrayList<>();
+ for (Map<String, Object> student : maps) {
+ String studentName = (String) student.get("name");
+ if (studentName.contains(pacQueryDto.getName())){
+ totallike.add(student);
+ }
+
+ }
+ return totallike;
+ }
+
+
+ return maps;
+ }
+
+ @Override
+ public List<TCoursePackagePayment> listOne(List<Integer> ids) {
+ return this.baseMapper.listOne(ids);
}
/**
@@ -642,6 +749,12 @@
TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
+
+ recordVo.setUserId(appUserId);
+ recordVo.setSiteId(coursePackage.getSiteId());
+ List<Integer> ids = getIds(coursePackage.getSiteId());
+ recordVo.setIds(ids);
+
recordVo.setCoursePackageName(coursePackage.getName());
recordVo.setCourseHours(tCoursePackagePayment.getClassHours());
Date date = DateUtil.getDate();
@@ -697,7 +810,23 @@
}
return recordVoList;
}
+ public List<Integer> getIds(Integer siteId) {
+ HttpRequest httpRequest = HttpRequest.get("https://try.daowepark.com/v7/user_api/general/get_space_area?space_id=" + siteId);
+ HttpResponse execute = httpRequest.execute();
+ String body = execute.body();
+ JSONObject jsonObject = JSONObject.parseObject(body);
+ Object data = jsonObject.get("data");
+ JSONArray array = JSONArray.parseArray(data.toString());
+ List<Integer> ids =new ArrayList<>();
+ for (Object o : array) {
+ JSONObject jsonObject1 = JSONObject.parseObject(o.toString());
+ Object id = jsonObject1.get("id");
+ Integer integer = Integer.valueOf(id.toString());
+ ids.add(integer);
+ }
+ return ids;
+ }
@Override
public ResultUtil insertVipPaymentCallback(String code, String orderNumber) {
TCoursePackagePayment coursePackagePayment = this.baseMapper.getCoursePackagePaymentByCode(code);
diff --git a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
index cbbc616..149f878 100644
--- a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
@@ -134,6 +134,77 @@
</select>
+ <select id="getStudentTotal" resultType="map">
+
+ SELECT * from(
+ SELECT studentId, totalClassHours, name as courseName, laveClassHours,cashPayment as cashPayment,hasHours,appUserId,insertTime
+ FROM (
+ SELECT studentId, totalClassHours, name, laveClassHours,cashPayment, (totalClassHours - laveClassHours) AS hasHours,py.appUserId,py.insertTime
+ FROM t_course_package_payment py
+ LEFT JOIN t_course_package cp ON py.coursePackageId = cp.id
+ UNION ALL
+ SELECT studentId, SUM(totalClassHours) AS totalClassHours,'总计' as name, SUM(laveClassHours) AS laveClassHours, SUM(cashPayment) AS cashPayment,
+ (SUM(totalClassHours) - SUM(laveClassHours)) AS hasHours,py.appUserId,py.insertTime
+ FROM t_course_package_payment py
+ LEFT JOIN t_course_package cp ON py.coursePackageId = cp.id
+ GROUP BY studentId
+ ORDER BY studentId, totalClassHours
+ ) subquery
+ ) a
+ <where>
+ <if test="null != start and '' != start and null != end and '' != end">
+ a.insertTime between #{start} and #{end}
+ </if>
+
+ </where>
+
+ </select>
+ <select id="pacQueryDto" resultType="map">
+
+ SELECT
+ coursePackageId,
+ SUM( cashPayment ) AS cashPayment,
+ SUM( totalClassHours ) AS totalClassHours,
+ SUM( totalClassHours - laveClassHours ) AS hasHours,
+ ROUND( SUM(( totalClassHours - laveClassHours ) * ( cashPayment / totalClassHours )), 2 ) AS lavePay,
+ cp.`name` ,
+ cp.province,
+ cp.city,
+ cp.storeId,cp.cityCode,cp.provinceCode,py.insertTime
+ FROM
+ t_course_package_payment py
+ LEFT JOIN t_course_package cp ON py.coursePackageId = cp.id
+
+
+ <where>
+ <if test="null != start and '' != start and null != end and '' != end">
+ py.insertTime between #{start} and #{end}
+ </if>
+ <if test="null != cityCode and '' != cityCode">
+ and cityCode =#{cityCode}
+ </if>
+
+ <if test="null != provinceCode and '' != provinceCode">
+ and provinceCode =#{provinceCode}
+ </if>
+
+ <if test="null != name and '' != name">
+ and name like CONCAT('%', #{name}, '%')
+ </if>
+
+
+ </where>
+ GROUP BY
+ coursePackageId
+
+
+
+
+ </select>
+
+ <select id="listOne" resultType="com.dsh.course.entity.TCoursePackagePayment">
+ select * from t_course_package_payment where appUserId in <foreach collection="ids" separator="," open="(" item="id" close=")">#{id}</foreach>
+ </select>
<update id="updateBytime">
update t_course_package_payment
diff --git a/cloud-server-management/src/main/java/com/dsh/course/dto/JsDto.java b/cloud-server-management/src/main/java/com/dsh/course/dto/JsDto.java
new file mode 100644
index 0000000..bdee54b
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/dto/JsDto.java
@@ -0,0 +1,10 @@
+package com.dsh.course.dto;
+
+import lombok.Data;
+
+@Data
+public class JsDto {
+ Integer id;
+ String vedio;
+ String jieshao;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/dto/StudentQeryDto.java b/cloud-server-management/src/main/java/com/dsh/course/dto/StudentQeryDto.java
new file mode 100644
index 0000000..3f3e37e
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/dto/StudentQeryDto.java
@@ -0,0 +1,14 @@
+package com.dsh.course.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class StudentQeryDto {
+ String cityCode;
+ String start;
+ String end;
+ String studentName;
+ String times;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java
index 4605680..bf46cef 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java
@@ -2,13 +2,10 @@
import com.dsh.course.dto.CreateHistoryDto;
import com.dsh.course.dto.GetHistoryDto;
-import com.dsh.course.feignClient.account.model.QueryAppUser;
-import com.dsh.course.feignClient.account.model.QueryAppUserVO;
+import com.dsh.course.feignClient.account.model.*;
import com.dsh.course.dto.StudentSearch;
import com.dsh.course.dto.TStudentDto;
-import com.dsh.course.feignClient.account.model.QueryByNamePhone;
-import com.dsh.course.feignClient.account.model.TAppUser;
import com.dsh.course.feignClient.other.model.SiteChangeStateVO;
import com.dsh.guns.modular.system.model.AdvertisementChangeStateDTO;
import com.dsh.guns.modular.system.model.AppUserByNameAndPhoneDTO;
@@ -19,6 +16,7 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
+import java.util.HashMap;
import java.util.List;
@FeignClient("mb-cloud-account")
@@ -95,4 +93,16 @@
List<GetHistoryDto> getHisory();
@PostMapping("/student/giftSelect")
List<SelectDto> giftSelect(@RequestBody GiftSearchDto giftSearchDto);
+
+ @PostMapping("/student/getUserPt")
+ List<Integer> getUserPt(List<Integer> ids);
+
+ @PostMapping("/student/queryFee")
+ HashMap<String, Object> queryFee(QueryDataFee queryDataFee);
+
+ @PostMapping("/student/queryUserAge")
+ HashMap<String, Object> queryUserAge();
+
+
+
}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/QueryDataFee.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/QueryDataFee.java
new file mode 100644
index 0000000..77e78b7
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/QueryDataFee.java
@@ -0,0 +1,16 @@
+package com.dsh.course.feignClient.account.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class QueryDataFee {
+ private String data;
+
+ private List<Integer> ids;
+}
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 5e172f0..583362d 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
@@ -3,6 +3,10 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.feignClient.activity.model.*;
+import com.dsh.course.feignClient.account.model.QueryDataFee;
+import com.dsh.course.feignClient.activity.model.IntegralGoodsOfSearch;
+import com.dsh.course.feignClient.activity.model.PointMercharsPayedVo;
+import com.dsh.course.feignClient.activity.model.PointMercharsVo;
import com.dsh.guns.modular.system.model.CoachChangeStateVO;
import com.dsh.guns.modular.system.model.PointMerchandiseIncomeVo;
import com.dsh.guns.modular.system.model.GoodsInfoOneVo;
@@ -13,6 +17,7 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -83,4 +88,15 @@
@PostMapping("/base/pointMerchars/writeOffGoodsStatus")
boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map);
+ @PostMapping("/base/pointMerchars/getIntegralGoodsListOfSearchAudit")
+ List<Map<String,Object>> getIntegralGoodsListOfSearchAudit(IntegralGoodsOfSearch ofSearch);
+
+ @PostMapping("/base/pointMerchars/updateType")
+ Object updateType(String s);
+
+
+ @PostMapping("/base/pointMerchars/queryFee")
+ HashMap<String, Object> queryFee(QueryDataFee queryDataFee);
+
+
}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java
index 70eee48..faf925c 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java
@@ -1,6 +1,7 @@
package com.dsh.course.feignClient.competition;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.course.feignClient.account.model.QueryDataFee;
import com.dsh.course.feignClient.competition.model.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
@@ -40,6 +41,11 @@
@PostMapping("/base/competition/listAudit")
Page<Competition> listAudit(ListQuery listQuery);
+
+ @PostMapping("/base/competition/queryFee")
+ Double queryFee(QueryDataFee queryDataFee);
+
+
}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java
index 4ad269d..01c561a 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java
@@ -59,7 +59,7 @@
* 门店id
*/
@TableField("storeId")
- private Integer storeId;
+ private String storeId;
/**
* 赛事名称
*/
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 171b993..4df17a7 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java
@@ -1,6 +1,7 @@
package com.dsh.course.feignClient.course;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.course.feignClient.account.model.QueryDataFee;
import com.dsh.course.feignClient.course.model.CourseChangeStateDTO;
import com.dsh.course.feignClient.course.model.QueryCourseList;
import com.dsh.guns.modular.system.model.EditCourseState;
@@ -11,8 +12,8 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -107,4 +108,10 @@
@PostMapping("/course/getHours")
String getHours(Integer coursePackageId1);
+
+
+ @PostMapping("/course/queryFee")
+ HashMap<String, Object> queryFee(QueryDataFee queryDataFee);
+
+
}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java
index 1c3e961..c5c328e 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java
@@ -1,10 +1,14 @@
package com.dsh.course.feignClient.course;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.course.dto.StudentQeryDto;
import com.dsh.course.feignClient.course.model.QueryCoursePackageLists;
import com.dsh.course.feignClient.course.model.QueryExamineCoursePackageLists;
import com.dsh.course.feignClient.course.model.QueryRegistrationRecord;
import com.dsh.course.feignClient.course.model.TCoursePackage;
+import com.dsh.guns.modular.system.model.TCoursePackagePayment;
+import com.dsh.guns.modular.system.model.dto.BallQueryDto;
+import com.dsh.guns.modular.system.model.dto.PacQueryDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -73,4 +77,11 @@
@PostMapping("/coursePackage/queryExamineCoursePackageLists")
Page<Map<String, Object>> queryExamineCoursePackageLists(QueryExamineCoursePackageLists queryExamineCoursePackageLists);
+
+ @PostMapping("/courdent/getStudentTotal")
+ List<Map<String, Object>> getStudentTotal(StudentQeryDto studentQeryDto);
+
+
+ @PostMapping("/courdent/bypac")
+ List<Map<String, Object>> bypac(PacQueryDto pacQueryDto);
}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
index 8d09904..ac52705 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
@@ -88,4 +88,10 @@
@PostMapping("/coursePackagePayment/CountqueryByClassId")
Integer queryByClassId(Integer id);
+
+ @PostMapping("/coursePackagePayment/queryCourseData")
+ List<Map<String,Object>> queryCourseData(List<Integer> ids);
+
+
+
}
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
index c012371..411ff7c 100644
--- 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
@@ -3,16 +3,19 @@
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.*;
import com.dsh.guns.modular.system.model.dto.BallQueryDto;
+import com.dsh.guns.modular.system.model.dto.BookingQuery;
+import io.swagger.models.auth.In;
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 org.springframework.web.bind.annotation.RequestParam;
+import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
@FeignClient(value = "mb-cloud-other")
public interface BallClient {
@@ -20,5 +23,11 @@
@PostMapping("/student/webStudentList")
List<Game> list(@RequestBody BallQueryDto ballQueryDto);
@PostMapping("/save")
- void save(@RequestBody Game game);
+ Integer save(@RequestBody Game game);
+ @PostMapping("/saveConfig")
+ void saveConfig(@RequestBody List<TGameConfig> gameConfigList);
+ @PostMapping("/queryGame")
+ Game queryGame(@RequestParam("id") Integer id);
+ @PostMapping("/listorder")
+ List<Map<String, Object>> listorder(@RequestBody BookingQuery bookingQuery);
}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java
index e0e7b84..1e46172 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java
@@ -8,6 +8,7 @@
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -52,5 +53,11 @@
@RequestMapping("/base/site/addSite")
Object addSite(@RequestBody Site site);
+ @RequestMapping("/base/site/listById")
+ Site listById(@RequestParam("id") Integer id);
+ @RequestMapping("/base/site/listBooks")
+ List<SiteBooking> listBooks(@RequestParam("id") Integer id);
+ @RequestMapping("/base/site/addSiteBooking")
+ void addSiteBooking(@RequestBody SiteBooking siteBooking);
}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteBookingMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteBookingMapper.java
index 5ded97a..ac3fd99 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteBookingMapper.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteBookingMapper.java
@@ -1,5 +1,6 @@
package com.dsh.course.mapper;
+
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.guns.modular.system.model.SiteBooking;
diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java
index 17905d0..0a958da 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.guns.modular.system.model.TImgConfig;
+import com.dsh.course.dto.JsDto;
import com.dsh.guns.modular.system.model.TStore;
import com.dsh.guns.modular.system.model.TStoreListVo;
import com.dsh.guns.modular.system.model.TTurn;
@@ -64,4 +65,8 @@
void updateBasicConfig(@Param("position") Integer position,@Param("p1") String p1);
void updateBasicBenefits(@Param("position") Integer position,@Param("p1") String p1);
+
+ void inset(JsDto jsDto);
+
+ JsDto get(Integer id);
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
index deeb3ec..0fe7d8e 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.dsh.course.feignClient.account.*;
import com.dsh.course.feignClient.account.model.CityManager;
+import com.dsh.course.feignClient.account.model.QueryDataFee;
import com.dsh.course.feignClient.account.model.TAppUser;
import com.dsh.course.feignClient.account.model.VipPayment;
import com.dsh.course.feignClient.activity.PointMercharsClient;
@@ -18,8 +19,9 @@
import com.dsh.course.model.MoneyBack;
import com.dsh.guns.config.UserExt;
import com.dsh.guns.core.base.controller.BaseController;
+import com.dsh.guns.core.util.ToolUtil;
import com.dsh.guns.modular.system.model.*;
-import com.dsh.guns.modular.system.service.ICityService;
+import com.dsh.guns.modular.system.service.*;
import groovyjarjarpicocli.CommandLine;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -50,8 +52,14 @@
private ICityService cityService;
@Autowired
private CityManagerClient cityManagerClient;
+
+ @Autowired
+ private IUserService sysUserService;
@Autowired
private AppUserClient appUserClient;
+
+ @Autowired
+ private CourseClient courseClient;
@Autowired
private VipPaymentClient vipPaymentClient;
@Autowired
@@ -60,6 +68,9 @@
private CoursePackagePaymentClient coursePackagePaymentClient;
@Autowired
private CompetitionClient competitionClient;
+
+ @Autowired
+ private ISiteBookingService siteBookingService;
@Autowired
private StoreClient storeClient;
@Autowired
@@ -77,6 +88,17 @@
*/
@RequestMapping("/platform")
public String index(Model model) {
+ Object o = type1(null);
+ model.addAttribute("data",o);
+
+
+
+ // 教学统计
+ HashMap<String, Object> map = appUserClient.queryUserAge();
+ model.addAttribute("stuData",map);
+
+
+
return PREFIX + "platformIncome.html";
}
@@ -506,6 +528,135 @@
model.addAttribute("objectType",objectType);
return PREFIX + "storeIncome.html";
}
+
+
+ @Autowired
+ private ITSiteTypeService siteTypeService;
+
+
+ @Autowired
+ private ITSiteService siteService;
+
+ @RequestMapping("/type1")
+ @ResponseBody
+ public Object type1(String time) {
+ HashMap<String, Object> map = new HashMap<>();
+ // 找出平台的用户
+ List<User> list = sysUserService.list(new LambdaQueryWrapper<User>().eq(User::getObjectType, 1));
+ List<Integer> ids = list.stream().map(User::getId).collect(Collectors.toList());
+ List<Integer> userIds = appUserClient.getUserPt(ids);
+ QueryDataFee queryDataFee = new QueryDataFee(time, userIds);
+ // 会员费
+ HashMap<String, Object> map1 = appUserClient.queryFee(queryDataFee);
+ Object fee1 = map1.get("fee1");
+
+ map.put("fee1",fee1);
+ //玩湃比
+ Object fee2 = map1.get("fee2");
+ map.put("fee2",fee2);
+ // 课程收入
+ HashMap<String, Object> map3 = courseClient.queryFee(queryDataFee);
+ map.put("fee3",map3.get("fee"));
+ Object data = map3.get("data");
+ map.put("courseData",data);
+
+
+ // 赛事收入
+ Double aDouble1 = competitionClient.queryFee(queryDataFee);
+ map.put("fee4",aDouble1);
+
+ // 订场
+ if(ids.size()==0){
+ ids.add(-1);
+ }
+ LambdaQueryWrapper<SiteBooking> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ if(ToolUtil.isNotEmpty(time)){
+ String stime = time.split(" - ")[0]+" 00:00:00";
+ String etime = time.split(" - ")[1]+" 23:59:59";
+ vipPaymentLambdaQueryWrapper.between(SiteBooking::getInsertTime,stime,etime);
+ }
+ if(userIds.size()==0){
+ userIds.add(-1);
+ }
+ vipPaymentLambdaQueryWrapper.in(SiteBooking::getAppUserId,userIds);
+ vipPaymentLambdaQueryWrapper.ne(SiteBooking::getStatus,0);
+ ArrayList<Integer> objects = new ArrayList<>();
+ objects.add(1);
+ objects.add(2);
+ vipPaymentLambdaQueryWrapper.in(SiteBooking::getPayType,objects);
+ List<SiteBooking> list1 = siteBookingService.list(vipPaymentLambdaQueryWrapper);
+ double sum = list1.stream().mapToDouble(SiteBooking::getPayMoney).sum();
+ map.put("fee5",sum);
+
+
+ List<Integer> collect = list1.stream().map(SiteBooking::getSiteId).collect(Collectors.toList());
+ if(collect.size()==0){
+ collect.add(-1);
+ }
+ List<TSite> list3 = siteService.list(new LambdaQueryWrapper<TSite>().in(TSite::getId, collect));
+ for (SiteBooking siteBooking : list1) {
+ for (TSite tSite : list3) {
+ if(siteBooking.getSiteId().equals(tSite.getId())){
+ siteBooking.setType(tSite.getSiteTypeId());
+ }
+ }
+ }
+
+
+ List<TSiteType> list2 = siteTypeService.list();
+
+ List<Map<String,Object>> mapList = new ArrayList<>();
+
+ for (TSiteType tSiteType : list2) {
+ HashMap<String, Object> map2 = new HashMap<>();
+ map2.put("name",tSiteType.getName());
+ double a =0;
+ for (SiteBooking siteBooking : list1) {
+ if(tSiteType.getId().equals(siteBooking.getType())){
+ a += siteBooking.getPayMoney();
+ }
+ }
+ map2.put("value",a);
+ mapList.add(map2);
+ }
+ map.put("siteData",mapList);
+
+
+ // 商品 门票
+ HashMap<String, Object> map2 = pointMercharsClient.queryFee(queryDataFee);
+ Object all = map2.get("all");
+ Object day = map2.get("day");
+ Object month = map2.get("month");
+ Object quarter = map2.get("quarter");
+ Object year = map2.get("year");
+ map.put("fee7",all);
+ map.put("dayone",day);
+ map.put("monthone",month);
+ map.put("quarterone",quarter);
+ map.put("yearone",year);
+
+ return map;
+ }
+ @RequestMapping("/stuCourseData")
+ @ResponseBody
+ public Object stuCourseData() {
+ ArrayList<Integer> objects = new ArrayList<>();
+ objects.add(1);
+ List<Integer> userIds = appUserClient.getUserPt(objects);
+ List<Map<String,Object>> list = coursePackagePaymentClient.queryCourseData(userIds);
+ ArrayList<Object> objects2 = new ArrayList<>();
+ ArrayList<Object> objects3 = new ArrayList<>();
+ for (Map<String, Object> map : list) {
+ Object name = map.get("name");
+ Object value = map.get("value");
+ objects2.add(name);
+ objects3.add(value);
+ }
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("data1",objects2);
+ map.put("data2",objects3);
+ return map;
+ }
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionAuditController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionAuditController.java
index 31c37e9..d4e0df7 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionAuditController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionAuditController.java
@@ -84,9 +84,15 @@
List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
List<TStore> list2 = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode,competition.getCityCode()));
+ String[] split = competition.getImgs().split(",");
+ ArrayList<String> strings = new ArrayList<>();
+ for (String s : split) {
+ strings.add(s);
+ }
model.addAttribute("list",list);
model.addAttribute("list1",list1);
model.addAttribute("list2",list2);
+ model.addAttribute("imgs",strings);
model.addAttribute("type",2);
return PREFIX + "TCompetition_edit.html";
}
@@ -134,9 +140,18 @@
Page<Competition> competitions = competitionClient.listAudit(listQuery);
for (Competition competition : competitions.getRecords()) {
for (TStore tStore : list) {
- if(competition.getStoreId().equals(tStore.getId())){
- competition.setStoreName(tStore.getName());
+ String[] split = competition.getStoreId().split(",");
+
+ for (String s : split) {
+ if(s.equals(String.valueOf(tStore.getId()))){
+ if (competition.getStoreName()==null){
+ competition.setStoreName(tStore.getName());
+ }else {
+ competition.setStoreName(competition.getStoreName()+","+tStore.getName());
+ }
+ }
}
+
}
}
return super.packForBT(competitions);
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
index 6872c5f..5e49720 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
@@ -131,8 +131,16 @@
Page<Competition> competitions = competitionClient.list(listQuery);
for (Competition competition : competitions.getRecords()) {
for (TStore tStore : list) {
- if(competition.getStoreId().equals(tStore.getId())){
- competition.setStoreName(tStore.getName());
+ String[] split = competition.getStoreId().split(",");
+
+ for (String s : split) {
+ if(s.equals(String.valueOf(tStore.getId()))){
+ if (competition.getStoreName()==null){
+ competition.setStoreName(tStore.getName());
+ }else {
+ competition.setStoreName(competition.getStoreName()+","+tStore.getName());
+ }
+ }
}
}
}
@@ -166,8 +174,9 @@
}
competition.setAuditStatus(1);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- competition.setStartTime(format.parse(competition.getSTime()));
- competition.setEndTime(format.parse(competition.getETime()));
+ SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
+ competition.setStartTime(format1.parse(competition.getSTime()));
+ competition.setEndTime(format1.parse(competition.getETime()));
competition.setRegisterEndTime(format.parse(competition.getREndTime()));
competitionClient.add(competition);
return new SuccessTip<>();
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 58cef35..3c4532d 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
@@ -547,6 +547,16 @@
}
+ @GetMapping("/queryProvince")
+ @ResponseBody
+ public List<Map<String, Object>> queryProvince(){
+
+ List<Map<String, Object>> list = storeService.queryProvince(null);
+
+ return list;
+ }
+
+
/**
* 跳转到审核详情页
* @param model
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java
index 764286a..ae4efa1 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java
@@ -356,7 +356,7 @@
}
TAppUser tAppUser = appUserClient.queryById(competition.getAppUserId());
Competition competition1 = competitionClient.queryById(competition.getCompetitionId());
- Store store = storeClient.getStoreById(competition1.getStoreId());
+ Store store = storeClient.getStoreById(Integer.valueOf(competition1.getStoreId()));
IncomeVO temp = new IncomeVO();
temp.setId(competition.getId().intValue());
temp.setProvince(tAppUser.getProvince());
@@ -535,7 +535,7 @@
}
TAppUser tAppUser = appUserClient.queryById(competition.getAppUserId());
Competition competition1 = competitionClient.queryById(competition.getCompetitionId());
- Store store = storeClient.getStoreById(competition1.getStoreId());
+ Store store = storeClient.getStoreById(Integer.valueOf(competition1.getStoreId().split(",")[0]));
IncomeVO temp = new IncomeVO();
temp.setId(competition.getId().intValue());
temp.setProvince(tAppUser.getProvince());
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 20f337d..2b6d5a5 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
@@ -51,6 +51,7 @@
private String PREFIX = "/system/tGoods/";
+ private String PREFIX1 = "/system/tGoodsAudit/";
@Resource
@@ -85,6 +86,10 @@
public String index(Model model) {
return PREFIX + "TGoods.html";
+ }
+ @RequestMapping("/audit")
+ public String audit(Model model) {
+ return PREFIX1 + "TGoodsAudit.html";
}
/**
@@ -244,6 +249,8 @@
model.addAttribute("list",provinceList);
return PREFIX + "TStoreList.html";
}
+
+
/**
* 跳转到门店管理列表页
*/
@@ -527,6 +534,34 @@
System.out.println(ofSearch);
return pointMercharsClient.getIntegralGoodsListOfSearch(ofSearch);
}
+ @RequestMapping(value = "/listAudit")
+ @ResponseBody
+ public Object listOfIntegralGoodsAudit(String name, Integer type, Integer redemptionMethod , Integer userPopulation, Integer activeStatus) {
+ Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
+
+ IntegralGoodsOfSearch ofSearch = new IntegralGoodsOfSearch();
+ ofSearch.setPage(page);
+ ofSearch.setName(name);
+ ofSearch.setType(type);
+ ofSearch.setRedemptionMethod(redemptionMethod);
+ ofSearch.setUserPopulation(userPopulation);
+ ofSearch.setActiveStatus(activeStatus);
+ return pointMercharsClient.getIntegralGoodsListOfSearchAudit(ofSearch);
+ }
+
+
+
+
+
+
+
+
+ @RequestMapping(value = "/updateTypeOne")
+ @ResponseBody
+ public Object updateTypeOne(Integer id, Integer type, String remark) {
+ Object o = pointMercharsClient.updateType(id + "_" + type + "_" + remark);
+ return SUCCESS_TIP;
+ }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
index 844dc34..cfad2a4 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
@@ -27,12 +27,14 @@
import com.dsh.guns.core.util.ToolUtil;
import com.dsh.guns.modular.system.model.*;
import com.dsh.guns.modular.system.service.*;
+import com.dsh.guns.modular.system.util.HttpRequestUtil;
import com.dsh.guns.modular.system.util.ResultUtil;
import com.sun.org.apache.regexp.internal.RE;
import groovyjarjarpicocli.CommandLine;
import net.bytebuddy.asm.Advice;
import org.aspectj.weaver.ast.Var;
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.web.bind.annotation.*;
@@ -42,10 +44,7 @@
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
+import java.util.*;
/**
* 车辆管理控制器
@@ -408,8 +407,44 @@
site.setInsertTime(new Date());
site.setState(1);
siteClient.addSite(site);
+
+ HashMap<String, String> map = new HashMap<>();
+ map.put("sign","0DB011836143EEE2C2E072967C9F4E4B");
+ map.put("name",site.getName());
+ map.put("short_name",site.getName());
+ map.put("location",city);
+ map.put("address",store.getAddress());
+ map.put("telephone",store.getPhone());
+ map.put("linkman","");
+ map.put("business_time","[{\"start_time\":\"00:00\",\"close_time\":\"23:59\"}]");
+ map.put("logo",store.getCoverDrawing());
+ map.put("remark",site.getIntroduce());
+ map.put("lat",store.getLat());
+ map.put("lng",store.getLon());
+ HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addSpace", map);
+
return ResultUtil.success("添加成功");
}
+
+ public static void main(String[] args) {
+
+ HashMap<String, String> map = new HashMap<>();
+ map.put("sign","0DB011836143EEE2C2E072967C9F4E4B");
+ map.put("name","测试场地");
+ map.put("short_name","测试场地");
+ map.put("location","成都");
+ map.put("address","成都地址");
+ map.put("telephone","17888888888");
+ map.put("linkman","成都");
+ map.put("business_time","[{\"start_time\":\"00:00\",\"close_time\":\"23:59\"}]");
+ map.put("logo","https://we-park-life.oss-cn-beijing.aliyuncs.com/img/f325d449f2634855ad1fb0cc796465e8.png");
+ map.put("remark","场地介绍");
+ map.put("lat","30.670124");
+ map.put("lng","103.929497");
+ String s = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addSpace", map);
+ System.out.println(s);
+ }
+
/**
* 编辑场地管理
*/
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
index 8179ac2..210b1ff 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
@@ -4,6 +4,8 @@
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.dto.JsDto;
+import com.dsh.course.dto.StudentQeryDto;
import com.dsh.course.feignClient.account.CityManagerClient;
import com.dsh.course.feignClient.account.CoachClient;
import com.dsh.course.feignClient.account.model.CityManager;
@@ -14,11 +16,12 @@
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.course.feignClient.other.SiteClient;
+import com.dsh.course.feignClient.other.model.Site;
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.model.dto.*;
import com.dsh.guns.modular.system.service.ICityService;
import com.dsh.guns.modular.system.service.ICoursePackageService;
import com.dsh.guns.modular.system.service.IStoreService;
@@ -47,9 +50,13 @@
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
+import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalTime;
import java.util.*;
@Controller
@@ -116,56 +123,405 @@
@RequestMapping("/save")
@ResponseBody
- public ResultUtil save(String red,String blue,String province,String city, Integer site,Integer store) {
-// JSONObject jsonObject = JSONObject.parseObject("111");
+ public ResultUtil save(String red, String blue, String province, String city, Integer site, Integer store
+ , String kuacheng, BigDecimal kuachengCoin, BigDecimal kuachengCash,String kuachengImage,BigDecimal kuachengInt,Integer kuachengId
+ , String shequ, BigDecimal shequCoin, BigDecimal shequCash,String shequImage,BigDecimal shequInt,Integer shequId
+ , String shemen, BigDecimal shemenCoin, BigDecimal shemenCash,String shemenImage,BigDecimal shemenInt,Integer shemenId
+ , String sudu, BigDecimal suduCoin, BigDecimal suduCash,String suduImage,BigDecimal suduInt,Integer suduId
+ , String fangkuai, BigDecimal fangkuaiCoin, BigDecimal fangkuaiCash,String fangkuaiImage,BigDecimal fangkuaiInt,Integer fangkuaiId
+ , String jx, BigDecimal jxCoin, BigDecimal jxCash,String jxImage,BigDecimal jxInt,Integer jxId
+ , String sq, BigDecimal sqCoin, BigDecimal sqCash,String sqImage,BigDecimal sqInt,Integer sqId
+ , String zs, BigDecimal zsCoin, BigDecimal zsCash,String zsImage,BigDecimal zsInt,Integer zsId
+ , String zs2, BigDecimal zs2Coin, BigDecimal zs2Cash,String zs2Image,BigDecimal zs2Int,Integer zs2Id
+ , String ly, BigDecimal lyCoin, BigDecimal lyCash,String lyImage,BigDecimal lyInt,Integer lyId
+
+
+
+
+
+ ) {
+
Game game = new Game();
game.setRed(red);
game.setBlue(blue);
- game.setProvince(province);
- game.setCity(city);
+ game.setProvinceCode(province);
+ game.setCityCode(city);
game.setSiteId(site);
game.setStoreId(store);
System.out.println("============"+game);
- ballClient.save(game);
+ Integer gameId = ballClient.save(game);
+
+List<TGameConfig> gameConfigList = new ArrayList<>();
+
+
+
+//玩湃跨城赛
+
+ TGameConfig gameConfigkuacheng = new TGameConfig();
+ gameConfigkuacheng.setGameId(kuachengId);
+ gameConfigkuacheng.setCash(kuachengCash);
+ gameConfigkuacheng.setImg(kuachengImage);
+ gameConfigkuacheng.setName(kuacheng);
+ gameConfigkuacheng.setPlayCoin(kuachengCoin);
+ gameConfigkuacheng.setIntegral(kuachengInt);
+ gameConfigkuacheng.setOtherId(gameId);
+ System.out.println("========gameConfig======"+gameConfigkuacheng);
+ gameConfigList.add(gameConfigkuacheng);
+System.out.println("======gameConfigList======="+gameConfigList);
+
+ //社区冠军赛
+
+ TGameConfig gameConfigshequ = new TGameConfig();
+ gameConfigshequ.setGameId(shequId);
+ gameConfigshequ.setCash(shequCash);
+ gameConfigshequ.setImg(shequImage);
+ gameConfigshequ.setName(shequ);
+ gameConfigshequ.setPlayCoin(shequCoin);
+ gameConfigshequ.setIntegral(shequInt);
+ gameConfigshequ.setOtherId(shequId);
+ gameConfigList.add(gameConfigshequ);
+
+ //射门速度-玩湃熊之力
+ TGameConfig gameConfigshemen = new TGameConfig();
+ gameConfigshemen.setGameId(shemenId);
+ gameConfigshemen.setCash(shemenCash);
+ gameConfigshemen.setImg(shemenImage);
+ gameConfigshemen.setName(shemen);
+ gameConfigshemen.setPlayCoin(shemenCoin);
+ gameConfigshemen.setIntegral(shemenInt);
+ gameConfigshemen.setOtherId(shemenId);
+ gameConfigList.add(gameConfigshemen);
+
+
+ //玩湃熊之力-速度
+ TGameConfig gameConfigsudu = new TGameConfig();
+ gameConfigsudu.setGameId(suduId);
+ gameConfigsudu.setCash(suduCash);
+ gameConfigsudu.setImg(suduImage);
+ gameConfigsudu.setName(sudu);
+ gameConfigsudu.setPlayCoin(suduCoin);
+ gameConfigsudu.setIntegral(suduInt);
+ gameConfigsudu.setOtherId(suduId);
+ gameConfigList.add(gameConfigsudu);
+
+
+ //方块球王
+ TGameConfig gameConfigfangkuai = new TGameConfig();
+ gameConfigfangkuai.setGameId(fangkuaiId);
+ gameConfigfangkuai.setCash(fangkuaiCash);
+ gameConfigfangkuai.setImg(fangkuaiImage);
+ gameConfigfangkuai.setName(fangkuai);
+ gameConfigfangkuai.setPlayCoin(fangkuaiCoin);
+ gameConfigfangkuai.setIntegral(fangkuaiInt);
+ gameConfigfangkuai.setOtherId(fangkuaiId);
+ gameConfigList.add(gameConfigfangkuai);
+
+
+ //镜像阵容
+ TGameConfig gameConfigjx = new TGameConfig();
+ gameConfigjx.setGameId(jxId);
+ gameConfigjx.setCash(jxCash);
+ gameConfigjx.setImg(jxImage);
+ gameConfigjx.setName(jx);
+ gameConfigjx.setPlayCoin(jxCoin);
+ gameConfigjx.setIntegral(jxInt);
+ gameConfigjx.setOtherId(jxId);
+ gameConfigList.add(gameConfigjx);
+
+
+ //社区小球王
+ TGameConfig gameConfigsq = new TGameConfig();
+ gameConfigsq.setGameId(sqId);
+ gameConfigsq.setCash(sqCash);
+ gameConfigsq.setImg(sqImage);
+ gameConfigsq.setName(sq);
+ gameConfigsq.setPlayCoin(sqCoin);
+ gameConfigsq.setIntegral(sqInt);
+ gameConfigsq.setOtherId(sqId);
+ gameConfigList.add(gameConfigsq);
+
+
+
+ //涨姿势
+ TGameConfig gameConfigzs = new TGameConfig();
+ gameConfigzs.setGameId(zsId);
+ gameConfigzs.setCash(zsCash);
+ gameConfigzs.setImg(zsImage);
+ gameConfigzs.setName(zs);
+ gameConfigzs.setPlayCoin(zsCoin);
+ gameConfigzs.setIntegral(zsInt);
+ gameConfigzs.setOtherId(zsId);
+ gameConfigList.add(gameConfigzs);
+
+ //涨姿势2
+ TGameConfig gameConfigzs2 = new TGameConfig();
+ gameConfigzs2.setGameId(zs2Id);
+ gameConfigzs2.setCash(zs2Cash);
+ gameConfigzs2.setImg(zs2Image);
+ gameConfigzs2.setName(zs2);
+ gameConfigzs2.setPlayCoin(zs2Coin);
+ gameConfigzs2.setIntegral(zs2Int);
+ gameConfigzs2.setOtherId(zs2Id);
+ gameConfigList.add(gameConfigzs2);
+
+ //绿茵密码
+ TGameConfig gameConfigly = new TGameConfig();
+ gameConfigly.setGameId(lyId);
+ gameConfigly.setCash(lyCash);
+ gameConfigly.setImg(lyImage);
+ gameConfigly.setName(ly);
+ gameConfigly.setPlayCoin(lyCoin);
+ gameConfigly.setIntegral(lyInt);
+ gameConfigly.setOtherId(lyId);
+ gameConfigList.add(gameConfigly);
+
+
+
+System.out.println("---------------------------"+gameConfigList);
+ ballClient.saveConfig( gameConfigList);
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);
- //
+ return PREFIX+"ball_pre_add.html";
+ }
+
+
+ @RequestMapping("/pre_edit/{id}")
+ public String pre_edit(@PathVariable("id") Integer id,Model model) {
+
+ Game game = ballClient.queryGame(id);
+ System.out.println("---------game------"+game);
+ model.addAttribute("game",game);
+
+ return PREFIX+"ball_pre_edit.html";
+ }
+
+
+ @RequestMapping("/paike")
+ public String paike(Model model) {
+
+ return PREFIX+"paike.html";
+ }
+
+
+
+
+
+
+ @RequestMapping("/getStudentTotal")
+ @ResponseBody
+ public List<Map<String, Object>>getStudentTotal(@RequestBody StudentQeryDto studentQeryDto) {
+System.out.println("========ballQueryDto======"+studentQeryDto);
+ if (studentQeryDto.getTimes()!=null&& studentQeryDto.getTimes()!=""){
+ String[] split = studentQeryDto.getTimes().split(",");
+ studentQeryDto.setStart(split[0]);
+ studentQeryDto.setEnd(split[1]);
+ }
+
+
+
+
+ List<Map<String, Object>> pays = coursePackageClient.getStudentTotal(studentQeryDto);
+
+ System.out.println("=========getStudentTotal======="+pays);
+
+ return pays;
+ }
+
+
+
+ @RequestMapping("/bypac")
+ @ResponseBody
+ public List<Map<String, Object>>bypac(@RequestBody PacQueryDto pacQueryDto) {
+ System.out.println("========ballQueryDto======"+pacQueryDto);
+ if (pacQueryDto.getTimes()!=null&& pacQueryDto.getTimes()!=""){
+ String[] split = pacQueryDto.getTimes().split(",");
+ pacQueryDto.setStart(split[0]);
+ pacQueryDto.setEnd(split[1]);
+ }
+
+
+
+
+ List<Map<String, Object>> pays = coursePackageClient.bypac(pacQueryDto);
+
+ System.out.println("=========getStudentTotal======="+pays);
+
+ return pays;
+ }
+
+
+ @RequestMapping("/yuyue")
+ public String yuyue(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+"yuyue.html";
+ }
+
+
+ @RequestMapping("/jieshao")
+ public String jieshao(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+"jieshao.html";
+ }
+
+
+
+ /**
+ * 获取有效期
+ */
+ @RequestMapping("/yuyuelist")
+ @ResponseBody
+ public List<Map<String,Object>> yuyuelist(BookingQuery bookingQuery) {
+ List<Map<String,Object>> orders = ballClient.listorder(bookingQuery);
+ System.out.println("=======ballQueryDto=========="+bookingQuery);
+
+ return orders;
+ }
+
+
+ @RequestMapping("/addjs")
+ @ResponseBody
+ public void addjs( @RequestBody JsDto jsDto) {
+ System.out.println("=======jsDto========"+jsDto);
+ storeService.insert(jsDto);
+
+ }
+
+ @RequestMapping("/get/{id}")
+ @ResponseBody
+ public JsDto getJs( @PathVariable("id") Integer id) {
+ JsDto jsDto = storeService.get(id);
+ return jsDto;
+ }
+
+
+ @RequestMapping("/getMoney/{id}/{type}")
+ @ResponseBody
+ public List<Double> getMoney( @PathVariable("id") Integer id,@PathVariable("type") Integer type) {
+ List<Double> doubles = new ArrayList<>();
+ Site site = siteClient.listById(id);
+ System.out.println("=====stie====="+site);
+ System.out.println("=====type====="+type);
+
+ if (type == 0 ){
+ doubles.add(site.getCashPrice());
+ doubles.add(Double.valueOf(site.getPlayPaiCoin()));
+ return doubles;
+ }else {
+ doubles.add(site.getCashPriceOne());
+ doubles.add(site.getPlayPaiCoinOne());
+ return doubles;
+ }
+
+ }
+ @Resource
+ private SiteClient siteClient;
+
+
+ @RequestMapping("/yuyuetimes/{id}")
+ @ResponseBody
+ public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id) {
+
+
+ List<String> strings = new ArrayList<>();
+ List<SiteBooking> siteBookings = siteClient.listBooks(id);
+System.out.println("=======siteBookings======"+siteBookings);
+ for (SiteBooking siteBooking : siteBookings) {
+ String[] split = siteBooking.getTimes().split(";");
+ for (String s : split) {
+
+ String convertedValue = s.substring(11);
+ strings.add(convertedValue);
+ }
+
+ }
+ System.out.println("======strings======="+strings);
+
+
+ List<OrderDto> timeRanges = new ArrayList<>();
+
+
+ Site site = siteClient.listById(id);
+System.out.println("================"+site);
+ String appointmentStartTime = site.getAppointmentStartTime();
+ String appointmentEndTime = site.getAppointmentEndTime();
+
+ String currentTime = appointmentStartTime;
+ while (currentTime.compareTo(appointmentEndTime) < 0) {
+ String nextTime = getNextTime(currentTime);
+
+
+ String timeRange = currentTime + "-" + nextTime;
+ OrderDto orderDto = new OrderDto();
+ orderDto.setTime(timeRange);
+
+ LocalTime currentTime1 = LocalTime.now();
+ LocalTime targetTime = LocalTime.parse(currentTime);
+
+ boolean hasExceeded = currentTime1.isAfter(targetTime);
+ if (hasExceeded){
+ orderDto.setState(0);
+ }
+ if (strings.contains(timeRange)){
+ orderDto.setState(0);
+ }
+
+
+ timeRanges.add(orderDto);
+ currentTime = nextTime;
+ }
+ System.out.println("-------------"+timeRanges);
+
+ return timeRanges;
+ }
+
+
+ public static String getNextTime(String currentTime) {
+ String[] parts = currentTime.split(":");
+ int hour = Integer.parseInt(parts[0]);
+ int minute = Integer.parseInt(parts[1]);
+
+ if (minute == 30) {
+ hour++;
+ minute = 0;
+ } else {
+ minute = 30;
+ }
+
+ return String.format("%02d:%02d", hour, minute);
+ }
+
+
+
+ @RequestMapping("/halfName/{id}")
+ @ResponseBody
+ public String[] halfName(@PathVariable("id") Integer id) {
+ TSite byId = siteService.getById(id);
+ String[] split = byId.getHalfName().split(",");
+ System.out.println("=-============"+split);
+
+ return split;
+ }
+
+ @RequestMapping("/yuyue_add")
+ public String yuyueadd(Model model) {
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);
@@ -182,7 +538,22 @@
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+"yuyue_add.html";
+ }
- return PREFIX+"ball_pre_add.html";
- }}
+
+ @RequestMapping("/ordersave")
+ @ResponseBody
+ public ResultUtil ordersave(SiteBooking siteBooking){
+ siteBooking.setInsertTime(new Date());
+ siteBooking.setState(1);
+ siteBooking.setStatus(0);
+
+ siteClient.addSiteBooking(siteBooking);
+ System.out.println("================="+siteBooking);
+
+ return new ResultUtil<>(null,200,null,null,null);
+ }
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GameConfig.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GameConfig.java
new file mode 100644
index 0000000..115ac7e
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GameConfig.java
@@ -0,0 +1,93 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+@Data
+public class GameConfig {
+ private int id;
+ private String name;
+ private String img;
+ private BigDecimal playCoin;
+ private BigDecimal cash;
+ private BigDecimal integral;
+ private int gameId;
+ private int otherId;
+
+// public GameConfig(int id, String name, String img, BigDecimal playCoin, BigDecimal cash, BigDecimal integral, int gameId, int otherId) {
+// this.id = id;
+// this.name = name;
+// this.img = img;
+// this.playCoin = playCoin;
+// this.cash = cash;
+// this.integral = integral;
+// this.gameId = gameId;
+// this.otherId = otherId;
+// }
+
+ // Getters and Setters
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getImg() {
+ return img;
+ }
+
+ public void setImg(String img) {
+ this.img = img;
+ }
+
+ public BigDecimal getPlayCoin() {
+ return playCoin;
+ }
+
+ public void setPlayCoin(BigDecimal playCoin) {
+ this.playCoin = playCoin;
+ }
+
+ public BigDecimal getCash() {
+ return cash;
+ }
+
+ public void setCash(BigDecimal cash) {
+ this.cash = cash;
+ }
+
+ public BigDecimal getIntegral() {
+ return integral;
+ }
+
+ public void setIntegral(BigDecimal integral) {
+ this.integral = integral;
+ }
+
+ public int getGameId() {
+ return gameId;
+ }
+
+ public void setGameId(int gameId) {
+ this.gameId = gameId;
+ }
+
+ public int getOtherId() {
+ return otherId;
+ }
+
+ public void setOtherId(int otherId) {
+ this.otherId = otherId;
+ }
+}
\ No newline at end of file
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GameConfigDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GameConfigDto.java
new file mode 100644
index 0000000..074cea3
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GameConfigDto.java
@@ -0,0 +1,9 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class GameConfigDto {
+ List<TGameConfig> list;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBooking.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBooking.java
index 8858260..d1071fa 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBooking.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBooking.java
@@ -176,4 +176,9 @@
private String halfName;
@TableField("goType")
private Integer goType;
+
+ private String money;
+
+ @TableField(exist = false)
+ private Integer type;
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java
index 4ec4d3e..b4f7fe9 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java
@@ -164,4 +164,13 @@
*/
@TableField("salesName")
private String salesName;
+
+
+ private String studentName;
+ private String province;
+ private String city;
+ private String courseName;
+ private Integer hasHours;
+ private BigDecimal laveCashPayment;
+ private BigDecimal cashPayment1;
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TGameConfig.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TGameConfig.java
new file mode 100644
index 0000000..4c0f052
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TGameConfig.java
@@ -0,0 +1,70 @@
+package com.dsh.guns.modular.system.model;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 游戏配置
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-09-18
+ */
+@Data
+public class TGameConfig extends Model<TGameConfig> {
+
+ private static final long serialVersionUID=1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 名称
+ */
+ private String name;
+
+ /**
+ * 图
+ */
+ private String img;
+
+ /**
+ * 玩湃币
+ */
+ @TableField("playCoin")
+ private BigDecimal playCoin;
+
+ /**
+ * 现金
+ */
+ private BigDecimal cash;
+
+ /**
+ * 积分
+ */
+ private BigDecimal integral;
+
+ /**
+ * 游戏id
+ */
+ @TableField("gameId")
+ private Integer gameId;
+
+
+ private Integer otherId;
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/BookingQuery.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/BookingQuery.java
new file mode 100644
index 0000000..b667169
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/BookingQuery.java
@@ -0,0 +1,19 @@
+package com.dsh.guns.modular.system.model.dto;
+
+import lombok.Data;
+
+@Data
+public class BookingQuery {
+ String provinceCode;
+ String cityCode;
+
+ String store;
+
+ String peopleName;
+ String phone;
+ String date;
+ Integer state;
+ Integer payMethod;
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/OrderDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/OrderDto.java
new file mode 100644
index 0000000..df5471b
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/OrderDto.java
@@ -0,0 +1,9 @@
+package com.dsh.guns.modular.system.model.dto;
+
+import lombok.Data;
+
+@Data
+public class OrderDto {
+ private String time;
+ private Integer state;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/PacQueryDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/PacQueryDto.java
new file mode 100644
index 0000000..32ea58f
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/PacQueryDto.java
@@ -0,0 +1,17 @@
+package com.dsh.guns.modular.system.model.dto;
+
+
+import lombok.Data;
+
+@Data
+public class PacQueryDto {
+ String cityCode;
+ String store;
+ String name;
+ String times;
+ String start;
+ String end;
+ String provinceCode;
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/TimeDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/TimeDto.java
new file mode 100644
index 0000000..ffbde5f
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/TimeDto.java
@@ -0,0 +1,7 @@
+package com.dsh.guns.modular.system.model.dto;
+
+public class TimeDto {
+ private String time;
+ private String time2;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteBookingService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteBookingService.java
index 566de82..86d56d8 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteBookingService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteBookingService.java
@@ -1,7 +1,12 @@
package com.dsh.guns.modular.system.service;
+
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.guns.modular.system.model.SiteBooking;
-public interface ISiteBookingService extends IService<SiteBooking> {
+/**
+ * @author zhibing.pu
+ * @date 2023/7/13 16:49
+ */
+public interface ISiteBookingService extends IService<SiteBooking> {
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java
index 2f7aca9..55d1c2b 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java
@@ -4,6 +4,11 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.guns.modular.system.model.*;
import io.swagger.models.auth.In;
+import com.dsh.course.dto.JsDto;
+import com.dsh.guns.modular.system.model.Dict;
+import com.dsh.guns.modular.system.model.TStore;
+import com.dsh.guns.modular.system.model.TStoreListVo;
+import com.dsh.guns.modular.system.model.TTurn;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -62,4 +67,8 @@
void updateBasicConfig(Integer id , String p1);
void updateBenefits(Integer id , String p1);
+
+ void insert(JsDto jsDto);
+
+ JsDto get(Integer id);
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteBookingServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteBookingServiceImpl.java
index 1296a08..0967749 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteBookingServiceImpl.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteBookingServiceImpl.java
@@ -1,5 +1,6 @@
package com.dsh.guns.modular.system.service.impl;
+
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.course.mapper.SiteBookingMapper;
import com.dsh.guns.modular.system.model.SiteBooking;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java
index 5698233..2ac311e 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.course.dto.JsDto;
import com.dsh.course.mapper.StoreMapper;
import com.dsh.guns.modular.system.model.TImgConfig;
import com.dsh.guns.modular.system.model.TStore;
@@ -93,6 +94,16 @@
}
@Override
+ public void insert(JsDto jsDto) {
+ this.baseMapper.inset(jsDto);
+ }
+
+ @Override
+ public JsDto get(Integer id) {
+ return this.baseMapper.get(id);
+ }
+
+ @Override
public List<TImgConfig> getConfig() {
return this.baseMapper.getConfig1();
diff --git a/cloud-server-management/src/main/resources/mapper/SiteBookingMapper.xml b/cloud-server-management/src/main/resources/mapper/SiteBookingMapper.xml
new file mode 100644
index 0000000..17e2248
--- /dev/null
+++ b/cloud-server-management/src/main/resources/mapper/SiteBookingMapper.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.course.mapper.SiteBookingMapper">
+
+
+</mapper>
diff --git a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
index e8a7951..e247e9d 100644
--- a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
@@ -24,6 +24,12 @@
where `position` =#{position}
</update>
+ <update id="inset">
+ update t_js
+ set jieshao = #{jieshao} ,vedio = #{vedio}
+ where id = #{id}
+
+ </update>
<delete id="delete1">
delete from t_store_other_config where id =#{id}
</delete>
@@ -114,6 +120,10 @@
<select id="pageList" resultType="com.dsh.guns.modular.system.model.TTurn">
select * from t_turn where pid = 0
</select>
+ <select id="get" resultType="com.dsh.course.dto.JsDto">
+ select * from t_js where id = #{id}
+
+ </select>
<select id="getConfig1" resultType="com.dsh.guns.modular.system.model.TImgConfig">
select * from t_img_config
</select>
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
index 90cd023..821164a 100644
--- 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
@@ -26,7 +26,7 @@
</div>
</div>
@}
- @if(role=='1'){
+
<div class="col-sm-3">
<div class="input-group">
<div class="input-group-btn open">
@@ -38,7 +38,6 @@
</select>
</div>
</div>
- @}
<div class="col-sm-3">
<#NameCon id="store" name="门店名称" />
@@ -57,7 +56,7 @@
<#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"/>
+ <#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"/>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html
index 6c4a8d0..8eef478 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html
@@ -42,7 +42,7 @@
{
"type": "form",
"id": "u:24af29be25d2",
- "title": "表单",
+ "title": "111",
"body": [
{
"label": "所属运营商:",
@@ -52,47 +52,58 @@
"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"
- }
+ },
+ "options": [
+ {
+ "label": "等待沟通中",
+ "value": "等待沟通中"
+ }
+ ]
},
{
- "type": "input-city",
+ "type": "select",
"label": "所在省:",
"name": "province",
- "id": "u:091b190331f6",
+ "id": "u:63c85c19f3aa",
+ "multiple": false,
"mode": "horizontal",
- "allowCity": false,
- "allowDistrict": false,
+ "size": "md",
+ "horizontal": {
+ "leftFixed": "lg"
+ },
+ "source": {
+ "url": "/coursePackage/queryProvince",
+ "method": "get",
+ "messages": {
+ },
+ "sendOn": ""
+ },
"onEvent": {
"change": {
"weight": 0,
"actions": [
{
- "componentId": "u:63c85c19f3aa",
+ "componentId": "u:14bafe37d5f3",
"actionType": "reload",
"dataMergeMode": "merge"
}
]
}
- }
+ },
+ "labelField": "name",
+ "valueField": "code",
+ "required": true
},
{
"type": "select",
"label": "所在市:",
"name": "city",
- "id": "u:63c85c19f3aa",
+ "id": "u:14bafe37d5f3",
"multiple": false,
"mode": "horizontal",
"size": "md",
@@ -119,7 +130,8 @@
}
},
"labelField": "name",
- "valueField": "code"
+ "valueField": "code",
+ "required": true
},
{
"type": "select",
@@ -149,17 +161,11 @@
"componentId": "u:0d288f4bdd8e",
"actionType": "reload",
"dataMergeMode": "merge"
- },
- {
- "componentId": "u:0d288f4bdd8e",
- "args": {
- "value": " "
- },
- "actionType": "setValue"
}
]
}
- }
+ },
+ "required": true
},
{
"type": "select",
@@ -183,11 +189,12 @@
"dataType": "form"
},
"labelField": "name",
- "valueField": "id"
+ "valueField": "id",
+ "required": true
},
{
"type": "tpl",
- "tpl": "设备ID:",
+ "tpl": "                                设备ID:",
"inline": true,
"wrapperComponent": "",
"id": "u:587781d5d181",
@@ -201,25 +208,22 @@
"name": "blue",
"id": "u:a4dbdeb9165e",
"mode": "inline",
- "size": "xs",
+ "size": "sm",
"horizontal": {
"leftFixed": "sm"
},
- "value": ""
+ "value": "",
+ "required": true
},
{
"type": "input-text",
"label": "红色方",
"name": "red",
"id": "u:b0544634a698",
- "mode": "inline"
- },
- {
- "type": "tpl",
- "tpl": "请编辑内容",
- "inline": true,
- "wrapperComponent": "",
- "id": "u:89c3a95a6721"
+ "mode": "inline",
+ "clearValueOnHidden": false,
+ "hidden": false,
+ "required": true
},
{
"type": "button",
@@ -234,7 +238,8 @@
]
}
},
- "id": "u:b96a47957f17"
+ "id": "u:b96a47957f17",
+ "hidden": true
},
{
"type": "divider",
@@ -248,80 +253,909 @@
"wrapperComponent": "h2"
},
{
- "type": "container",
- "body": [
+ "type": "grid",
+ "columns": [
{
- "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"
+ "type": "card",
+ "header": {
+ "title": "玩湃跨城赛",
+ "subTitle": ""
},
- "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"
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "kuachengImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:824383a8e878",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "kuacheng",
+ "id": "u:a4dbdeb9115e",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "玩湃跨城赛"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "kuachengId",
+ "id": "u:89bccaf7242f",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "14"
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "kuachengCoin",
+ "id": "u:99015dfd4264",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "kuachengCash",
+ "id": "u:31888fb92add",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "kuachengInt",
+ "id": "u:c42ab4593d20",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:8445330f451b",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
}
],
- "actions": [
+ "id": "u:a63f776f28ca",
+ "columnClassName": "p-l-lg"
+ },
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "社区冠军赛",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "shequImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:824383a8e878",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "shequ",
+ "id": "u:a4dbdeb9115e",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "社区冠军赛"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "shequId",
+ "id": "u:89bccaf7242f",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "16"
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "shequCoin",
+ "id": "u:99015dfd4264",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "shequCash",
+ "id": "u:31888fb92add",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "shequInt",
+ "id": "u:c42ab4593d20",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:8445330f451b",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
],
- "id": "u:8445330f451b"
+ "id": "u:882210cd7611"
+ },
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "射门速度-玩湃熊之力",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "shemenImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:824383a8e878",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "shemen",
+ "id": "u:a4dbdeb9115e",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "射门速度-玩湃熊之力"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "shemenId",
+ "id": "u:89bccaf7242f",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "13"
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "shemenCoin",
+ "id": "u:99015dfd4264",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "shemenCash",
+ "id": "u:31888fb92add",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "shemenInt",
+ "id": "u:c42ab4593d20",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:8445330f451b",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:d191f24cb064"
}
],
- "style": {
- "position": "static",
- "display": "block",
- "flexWrap": "nowrap",
- "maxWidth": "300px",
- "overflowX": "auto",
- "margin": "0"
- },
- "id": "u:08adb1dcf6b9",
- "isFixedHeight": false,
- "isFixedWidth": false
+ "id": "u:676721d0a98a"
+ },
+ {
+ "type": "grid",
+ "columns": [
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "玩湃熊之力-速度",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "suduImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:4abd099fd344",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "sudu",
+ "id": "u:825f01e97cf5",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "玩湃熊之力-速度"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "suduId",
+ "id": "u:f0f7e6028e17",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "15"
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "suduCoin",
+ "id": "u:b6faed384d78",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "suduCash",
+ "id": "u:c7181c9b3ded",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "suduInt",
+ "id": "u:ee897e373acb",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:89bd6bd7e231",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:e49a95f9b2c8",
+ "columnClassName": "p-l-lg"
+ },
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "方块球王",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "fangkuaiImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:824383a8e878",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "fangkuai",
+ "id": "u:a4dbdeb9115e",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "方块球王"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "fangkuaiId",
+ "id": "u:89bccaf7242f",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "1"
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "fangkuaiCoin",
+ "id": "u:99015dfd4264",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "fangkuaiCash",
+ "id": "u:31888fb92add",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "fangkuaiInt",
+ "id": "u:c42ab4593d20",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:8445330f451b",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:3aaf60604641"
+ },
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "镜像阵容",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "jxImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:824383a8e878",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "jx",
+ "id": "u:a4dbdeb9115e",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "镜像阵容"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "jxId",
+ "id": "u:89bccaf7242f",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "7"
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "jxCoin",
+ "id": "u:99015dfd4264",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "jxCash",
+ "id": "u:31888fb92add",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "jxInt",
+ "id": "u:c42ab4593d20",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:8445330f451b",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:e80cbf026419"
+ }
+ ],
+ "id": "u:a53000ecee93"
+ },
+ {
+ "type": "grid",
+ "columns": [
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "社区小球王",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "sqImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:94fe22c43628",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "sq",
+ "id": "u:49202e62cd8f",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "社区小球王"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "sqId",
+ "id": "u:49c300f663f6",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "8"
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "sqCoin",
+ "id": "u:a58559426478",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "sqCash",
+ "id": "u:e563cc483458",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "sqInt",
+ "id": "u:688f4b7c3392",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:20efa0a87285",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:19d3a6b86a8d",
+ "columnClassName": "p-l-lg"
+ },
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "涨姿势",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "zsImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:70a81ae5d75c",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "zs",
+ "id": "u:fd19ffe45790",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "涨姿势"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "zsId",
+ "id": "u:fe85cbcb2f69",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "10"
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "zsCoin",
+ "id": "u:af69b1a1d9cb",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "zsCash",
+ "id": "u:8ba3c740b10c",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "zsInt",
+ "id": "u:6d91bb154939",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:4b37f6a2c067",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:848bad292c8c"
+ },
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "涨姿势[2]",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "zs2Image",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:22f44cb955d7",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "zs2",
+ "id": "u:97b8937d26a1",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "激战球场"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "zs2Id",
+ "id": "u:49ad851a7bf9",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "11"
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "zs2Coin",
+ "id": "u:b29c25f053d9",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "zs2Cash",
+ "id": "u:88a44c71abb0",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "zs2Int",
+ "id": "u:fb82b3cf486c",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:cd832349886c",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:68716b29d1cd"
+ }
+ ],
+ "id": "u:0df19fcc8fc2"
+ },
+ {
+ "type": "grid",
+ "columns": [
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "绿茵密码",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "lyImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:704c6970b70d",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "游戏名称",
+ "name": "ly",
+ "id": "u:c4a543b6cda0",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "社区小球王"
+ },
+ {
+ "type": "hidden",
+ "label": "游戏id",
+ "name": "lyId",
+ "id": "u:90d5f2fa406a",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "5"
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "lyCoin",
+ "id": "u:d78d236c5f95",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "lyCash",
+ "id": "u:20b24611e53c",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "lyInt",
+ "id": "u:25e10253effb",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:fe79896823ad",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:b496c245ddf5",
+ "columnClassName": "p-l-lg"
+ },
+ {
+ "body": [
+ ],
+ "id": "u:5a16b34e0128"
+ },
+ {
+ "body": [
+ ],
+ "id": "u:a49cf291b3fe"
+ }
+ ],
+ "id": "u:4641470c31fd"
+ },
+ {
+ "type": "grid",
+ "columns": [
+ {
+ "body": [
+ {
+ "id": "u:8254704349a2",
+ "type": "flex",
+ "className": "p-1",
+ "items": [
+ {
+ "type": "button",
+ "id": "u:6c0b8f917bf7",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);",
+ "actionType": "custom"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "type": "button",
+ "id": "u:6c0b8f917bf7",
+ "label": "保存",
+ "level": "info",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "componentId": "u:24af29be25d2",
+ "args": {
+ },
+ "outputVar": "responseResult",
+ "actionType": "submit"
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "style": {
+ "position": "relative"
+ }
+ }
+ ],
+ "id": "u:ebd322f2aab8"
+ }
+ ],
+ "id": "u:1b16988908d9"
}
],
"api": {
@@ -329,11 +1163,14 @@
"method": "post",
"messages": {
},
- "dataType": "json"
- }
+ "dataType": "form-data"
+ },
+ "actions": [
+ ]
}
]
};
+
let amisScoped = amis.embed('#root', amisJSON);
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html
new file mode 100644
index 0000000..6b53d15
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html
@@ -0,0 +1,1309 @@
+<!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,
+ "showInvalidMatch": false,
+ "searchable": true,
+ "clearable": true,
+ "horizontal": {
+ "leftFixed": "lg"
+ },
+ "options": [
+ {
+ "label": "等待沟通中",
+ "value": "等待沟通中"
+ }
+ ]
+ },
+ {
+ "type": "select",
+ "label": "所在省:",
+ "name": "province",
+ "id": "u:63c85c19f3aa",
+ "multiple": false,
+ "mode": "horizontal",
+ "size": "md",
+ "value":`${game.provinceCode}`,
+ "horizontal": {
+ "leftFixed": "lg"
+ },
+ "source": {
+ "url": "/coursePackage/queryProvince",
+ "method": "get",
+ "messages": {
+ },
+ "sendOn": ""
+ },
+ "onEvent": {
+ "change": {
+ "weight": 0,
+ "actions": [
+ {
+ "componentId": "u:14bafe37d5f3",
+ "actionType": "reload",
+ "dataMergeMode": "merge"
+ }
+ ]
+ }
+ },
+ "labelField": "name",
+ "valueField": "code",
+ "required": true
+ },
+ {
+ "type": "select",
+ "label": "所在市:",
+ "name": "city",
+ "value":`${game.cityCode}`,
+ "id": "u:14bafe37d5f3",
+ "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",
+ "required": true
+ },
+ {
+ "type": "select",
+ "label": "所属门店:",
+ "name": "store",
+ "value":`${game.storeId}`,
+ "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"
+ }
+ ]
+ }
+ },
+ "required": true
+ },
+ {
+ "type": "select",
+ "label": "所属场地:",
+ "name": "site",
+ "value":`${game.siteId}`,
+ "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",
+ "required": true
+ },
+ {
+ "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": "sm",
+ "horizontal": {
+ "leftFixed": "sm"
+ },
+ "value": "",
+ "required": true
+ ,
+ "value":`${game.blue}`
+ },
+ {
+ "type": "input-text",
+ "label": "红色方",
+ "name": "red",
+ "id": "u:b0544634a698",
+ "mode": "inline",
+ "clearValueOnHidden": false,
+ "hidden": false,
+ "required": true
+ ,
+ "value":`${game.red}`
+ },
+ {
+ "type": "button",
+ "label": "按钮",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "componentId": "u:24af29be25d2",
+ "actionType": "submit"
+ }
+ ]
+ }
+ },
+ "id": "u:b96a47957f17",
+ "hidden": true
+ },
+ {
+ "type": "divider",
+ "id": "u:cc7161244b32"
+ },
+ {
+ "type": "tpl",
+ "id": "u:89c3a95a6721",
+ "tpl": "游戏配置:",
+ "inline": true,
+ "wrapperComponent": "h2"
+ },
+ {
+ "type": "grid",
+ "columns": [
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "玩湃跨城赛",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "kuachengImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:824383a8e878",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "kuacheng",
+ "id": "u:a4dbdeb9115e",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "玩湃跨城赛"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "kuachengId",
+ "id": "u:89bccaf7242f",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "14"
+ },
+ {
+ "type": "tpl",
+ "id": "u:587781d5d181",
+ "tpl": "                                ",
+ "inline": true,
+ "wrapperComponent": "",
+ "style": {
+ "marginLeft": "0"
+ }
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "kuachengCoin",
+ "id": "u:99015dfd4264",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "kuachengCash",
+ "id": "u:31888fb92add",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "kuachengInt",
+ "id": "u:c42ab4593d20",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:8445330f451b",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:a63f776f28ca",
+ "columnClassName": "p-l-lg"
+ },
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "社区冠军赛",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "shequImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:824383a8e878",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "shequ",
+ "id": "u:a4dbdeb9115e",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "社区冠军赛"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "shequId",
+ "id": "u:89bccaf7242f",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "16"
+ },
+ {
+ "type": "tpl",
+ "id": "u:587781d5d181",
+ "tpl": "                                ",
+ "inline": true,
+ "wrapperComponent": "",
+ "style": {
+ "marginLeft": "0"
+ }
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "shequCoin",
+ "id": "u:99015dfd4264",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "shequCash",
+ "id": "u:31888fb92add",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "shequInt",
+ "id": "u:c42ab4593d20",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:8445330f451b",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:882210cd7611"
+ },
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "射门速度-玩湃熊之力",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "shemenImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:824383a8e878",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "shemen",
+ "id": "u:a4dbdeb9115e",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "射门速度-玩湃熊之力"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "shemenId",
+ "id": "u:89bccaf7242f",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "13"
+ },
+ {
+ "type": "tpl",
+ "id": "u:587781d5d181",
+ "tpl": "                                ",
+ "inline": true,
+ "wrapperComponent": "",
+ "style": {
+ "marginLeft": "0"
+ }
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "shemenCoin",
+ "id": "u:99015dfd4264",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "shemenCash",
+ "id": "u:31888fb92add",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "shemenInt",
+ "id": "u:c42ab4593d20",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:8445330f451b",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:d191f24cb064"
+ }
+ ],
+ "id": "u:676721d0a98a"
+ },
+ {
+ "type": "grid",
+ "columns": [
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "玩湃熊之力-速度",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "suduImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:4abd099fd344",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "sudu",
+ "id": "u:825f01e97cf5",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "玩湃熊之力-速度"
+ },
+ {
+ "type": "tpl",
+ "id": "u:587781d5d181",
+ "tpl": "                                ",
+ "inline": true,
+ "wrapperComponent": "",
+ "style": {
+ "marginLeft": "0"
+ }
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "suduId",
+ "id": "u:ca5a1fd9c191",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "15"
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "suduCoin",
+ "id": "u:b6faed384d78",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "suduCash",
+ "id": "u:c7181c9b3ded",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "suduInt",
+ "id": "u:ee897e373acb",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:89bd6bd7e231",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:e49a95f9b2c8",
+ "columnClassName": "p-l-lg"
+ },
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "方块球王",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "fangkuaiImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:824383a8e878",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "fangkuai",
+ "id": "u:a4dbdeb9115e",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "方块球王"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "fangkuaiId",
+ "id": "u:89bccaf7242f",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "1"
+ },
+ {
+ "type": "tpl",
+ "id": "u:587781d5d181",
+ "tpl": "                                ",
+ "inline": true,
+ "wrapperComponent": "",
+ "style": {
+ "marginLeft": "0"
+ }
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "fangkuaiCoin",
+ "id": "u:99015dfd4264",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "fangkuaiCash",
+ "id": "u:31888fb92add",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "fangkuaiInt",
+ "id": "u:c42ab4593d20",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:8445330f451b",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:3aaf60604641"
+ },
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "镜像阵容",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "jxImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:824383a8e878",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "jx",
+ "id": "u:a4dbdeb9115e",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "镜像阵容"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "jxId",
+ "id": "u:89bccaf7242f",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "7"
+ },
+ {
+ "type": "tpl",
+ "id": "u:587781d5d181",
+ "tpl": "                                ",
+ "inline": true,
+ "wrapperComponent": "",
+ "style": {
+ "marginLeft": "0"
+ }
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "jxCoin",
+ "id": "u:99015dfd4264",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "jxCash",
+ "id": "u:31888fb92add",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "jxInt",
+ "id": "u:c42ab4593d20",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:8445330f451b",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:e80cbf026419"
+ }
+ ],
+ "id": "u:a53000ecee93"
+ },
+ {
+ "type": "grid",
+ "columns": [
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "社区小球王",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "sqImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:94fe22c43628",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "sq",
+ "id": "u:49202e62cd8f",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "社区小球王"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "sqId",
+ "id": "u:49c300f663f6",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "8"
+ },
+ {
+ "type": "tpl",
+ "id": "u:587781d5d181",
+ "tpl": "                                ",
+ "inline": true,
+ "wrapperComponent": "",
+ "style": {
+ "marginLeft": "0"
+ }
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "sqCoin",
+ "id": "u:a58559426478",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "sqCash",
+ "id": "u:e563cc483458",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "sqInt",
+ "id": "u:688f4b7c3392",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:20efa0a87285",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:19d3a6b86a8d",
+ "columnClassName": "p-l-lg"
+ },
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "涨姿势",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "zsImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:70a81ae5d75c",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "zs",
+ "id": "u:fd19ffe45790",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "涨姿势"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "zsId",
+ "id": "u:fe85cbcb2f69",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "10"
+ },
+ {
+ "type": "tpl",
+ "id": "u:587781d5d181",
+ "tpl": "                                ",
+ "inline": true,
+ "wrapperComponent": "",
+ "style": {
+ "marginLeft": "0"
+ }
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "zsCoin",
+ "id": "u:af69b1a1d9cb",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "zsCash",
+ "id": "u:8ba3c740b10c",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "zsInt",
+ "id": "u:6d91bb154939",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:4b37f6a2c067",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:848bad292c8c"
+ },
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "涨姿势[2]",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "zs2Image",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:22f44cb955d7",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "zs2",
+ "id": "u:97b8937d26a1",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "激战球场"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "zs2Id",
+ "id": "u:49ad851a7bf9",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "11"
+ },
+ {
+ "type": "tpl",
+ "id": "u:587781d5d181",
+ "tpl": "                                ",
+ "inline": true,
+ "wrapperComponent": "",
+ "style": {
+ "marginLeft": "0"
+ }
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "zs2Coin",
+ "id": "u:b29c25f053d9",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "zs2Cash",
+ "id": "u:88a44c71abb0",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "zs2Int",
+ "id": "u:fb82b3cf486c",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:cd832349886c",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:68716b29d1cd"
+ }
+ ],
+ "id": "u:0df19fcc8fc2"
+ },
+ {
+ "type": "grid",
+ "columns": [
+ {
+ "body": [
+ {
+ "type": "card",
+ "header": {
+ "title": "绿茵密码",
+ "subTitle": ""
+ },
+ "body": [
+ {
+ "type": "input-image",
+ "label": "背景图:",
+ "name": "lyImage",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "imageClassName": "r w-full",
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "id": "u:704c6970b70d",
+ "labelClassName": "text-dark",
+ "mode": "inline",
+ "accept": ".jpeg, .jpg, .png, .gif",
+ "multiple": false,
+ "hideUploadButton": false,
+ "fixedSize": false
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "ly",
+ "id": "u:c4a543b6cda0",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "社区小球王"
+ },
+ {
+ "type": "hidden",
+ "label": "",
+ "name": "lyId",
+ "id": "u:90d5f2fa406a",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b",
+ "value": "5"
+ },
+ {
+ "type": "tpl",
+ "id": "u:587781d5d181",
+ "tpl": "                                ",
+ "inline": true,
+ "wrapperComponent": "",
+ "style": {
+ "marginLeft": "0"
+ }
+ },
+ {
+ "type": "input-text",
+ "label": "玩派币",
+ "name": "lyCoin",
+ "id": "u:d78d236c5f95",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "现金",
+ "name": "lyCash",
+ "id": "u:20b24611e53c",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ },
+ {
+ "type": "input-text",
+ "label": "积分",
+ "name": "lyInt",
+ "id": "u:25e10253effb",
+ "mode": "inline",
+ "labelClassName": "text-dark m-b text-lg"
+ }
+ ],
+ "actions": [
+ ],
+ "id": "u:fe79896823ad",
+ "bodyClassName": "no-border b-light",
+ "className": "no-border"
+ }
+ ],
+ "id": "u:b496c245ddf5",
+ "columnClassName": "p-l-lg"
+ },
+ {
+ "body": [
+ ],
+ "id": "u:5a16b34e0128"
+ },
+ {
+ "body": [
+ ],
+ "id": "u:a49cf291b3fe"
+ }
+ ],
+ "id": "u:4641470c31fd"
+ },
+ {
+ "type": "grid",
+ "columns": [
+ {
+ "body": [
+ {
+ "id": "u:8254704349a2",
+ "type": "flex",
+ "className": "p-1",
+ "items": [
+ {
+ "type": "button",
+ "id": "u:6c0b8f917bf7",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);",
+ "actionType": "custom"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "type": "button",
+ "id": "u:6c0b8f917bf7",
+ "label": "保存",
+ "level": "info",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "componentId": "u:24af29be25d2",
+ "args": {
+ },
+ "outputVar": "responseResult",
+ "actionType": "submit"
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "style": {
+ "position": "relative"
+ }
+ }
+ ],
+ "id": "u:ebd322f2aab8"
+ }
+ ],
+ "id": "u:1b16988908d9"
+ }
+ ],
+ "api": {
+ "url": "/ball/save",
+ "method": "post",
+ "messages": {
+ },
+ "dataType": "form-data"
+ },
+ "actions": [
+ ],
+ "onEvent": {
+ "submitSucc": {
+ "weight": 0,
+ "actions": [
+ {
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);",
+ "actionType": "custom"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ };
+
+ 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/ball/jieshao.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/jieshao.html
new file mode 100644
index 0000000..06f5471
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/jieshao.html
@@ -0,0 +1,1163 @@
+<!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",
+ "body": [
+ {
+ "type": "tabs",
+ "tabsMode": "vertical",
+ "tabs": [
+ {
+ "title": "玩湃跨城赛",
+ "body": [
+ {
+ "type": "form",
+ "id": "u:bd64f7f5fea7",
+ "title": "",
+ "mode": "horizontal",
+ "dsType": "api",
+ "feat": "Edit",
+ "body": [
+ {
+ "type": "input-text",
+ "label": "文本",
+ "name": "id",
+ "id": "u:4c0a1ededc47",
+ "value": "14",
+ "hidden": true
+ },
+ {
+ "type": "textarea",
+ "label": "文字介绍",
+ "name": "jieshao",
+ "id": "u:aa105bcfd51b",
+ "minRows": 10,
+ "maxRows": 20,
+ "required": true
+ },
+ {
+ "type": "input-file",
+ "label": "文件上传",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "name": "vedio",
+ "id": "u:d84964c25e87",
+ "btnLabel": "文件上传",
+ "multiple": false,
+ "useChunk": false,
+ "accept": "",
+ "drag": false,
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "required": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "button",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "custom",
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);"
+ }
+ ]
+ }
+ },
+ "id": "u:6c0b8f917bf7"
+ },
+ {
+ "type": "button",
+ "label": "提交",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "submit",
+ "componentId": "u:bd64f7f5fea7"
+ }
+ ]
+ }
+ },
+ "level": "primary",
+ "id": "u:91bfc503975f"
+ }
+ ],
+ "resetAfterSubmit": false,
+ "api": {
+ "url": "/ball/addjs",
+ "method": "post",
+ "requestAdaptor": "",
+ "adaptor": "",
+ "messages": {
+ }
+ },
+ "initApi": {
+ "url": "/ball/get/$id",
+ "method": "get"
+ }
+ }
+ ],
+ "id": "u:dbc6f3c0e779"
+ },
+ {
+ "title": "社区冠军赛",
+ "body": [
+ {
+ "type": "form",
+ "id": "u:bd64f7f5fe22",
+ "title": "",
+ "mode": "horizontal",
+ "dsType": "api",
+ "feat": "Insert",
+ "body": [
+ {
+ "type": "input-text",
+ "label": "文本",
+ "name": "id",
+ "id": "u:4c0a1ededc47",
+ "value": "16",
+ "hidden": true
+ },
+ {
+ "type": "textarea",
+ "label": "文字介绍",
+ "name": "jieshao",
+ "id": "u:aa105bcfd51b",
+ "minRows": 10,
+ "maxRows": 20,
+ "required": true
+ },
+ {
+ "type": "input-file",
+ "label": "文件上传",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "name": "vedio",
+ "id": "u:d84964c25e87",
+ "btnLabel": "文件上传",
+ "multiple": false,
+ "useChunk": false,
+ "accept": "",
+ "drag": false,
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "required": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "button",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "custom",
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);"
+ }
+ ]
+ }
+ },
+ "id": "u:6c0b8f917bf7"
+ },
+ {
+ "type": "button",
+ "label": "提交",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "submit",
+ "componentId": "u:bd64f7f5fe22",
+ "outputVar": "submitResult"
+ }
+ ]
+ }
+ },
+ "level": "primary",
+ "id": "u:82085178ce49"
+ }
+ ],
+ "resetAfterSubmit": false,
+ "api": {
+ "url": "/ball/addjs",
+ "method": "post",
+ "requestAdaptor": "",
+ "adaptor": "",
+ "messages": {
+ }
+ },
+ "initApi": {
+ "url": "/ball/get/$id",
+ "method": "get"
+ }
+ }
+ ],
+ "id": "u:012e71a6b2f9"
+ },
+ {
+ "title": "射门速度-玩湃熊之力",
+ "body": [
+ {
+ "type": "form",
+ "id": "u:bd64f7f5f333",
+ "title": "",
+ "mode": "horizontal",
+ "dsType": "api",
+ "feat": "Insert",
+ "body": [
+ {
+ "type": "input-text",
+ "label": "文本",
+ "name": "id",
+ "id": "u:4c0a1ededc47",
+ "value": "13",
+ "hidden": true
+ },
+ {
+ "type": "textarea",
+ "label": "文字介绍",
+ "name": "jieshao",
+ "id": "u:aa105bcfd51b",
+ "minRows": 10,
+ "maxRows": 20,
+ "required": true
+ },
+ {
+ "type": "input-file",
+ "label": "文件上传",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "name": "vedio",
+ "id": "u:d84964c25e87",
+ "btnLabel": "文件上传",
+ "multiple": false,
+ "useChunk": false,
+ "accept": "",
+ "drag": false,
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "required": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "button",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "custom",
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);"
+ }
+ ]
+ }
+ },
+ "id": "u:6c0b8f917bf7"
+ },
+ {
+ "type": "button",
+ "label": "提交",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "submit",
+ "componentId": "u:bd64f7f5f333",
+ "outputVar": "submitResult"
+ }
+ ]
+ }
+ },
+ "level": "primary",
+ "id": "u:60929d18d938"
+ }
+ ],
+ "resetAfterSubmit": false,
+ "api": {
+ "url": "/ball/addjs",
+ "method": "post",
+ "requestAdaptor": "",
+ "adaptor": "",
+ "messages": {
+ }
+ },
+ "initApi": {
+ "url": "/ball/get/$id",
+ "method": "get"
+ }
+ }
+ ],
+ "id": "u:8ad650b97cb0"
+ },
+ {
+ "title": "玩湃熊之力-速度",
+ "body": [
+ {
+ "type": "form",
+ "id": "u:bd64f7f5f444",
+ "title": "",
+ "mode": "horizontal",
+ "dsType": "api",
+ "feat": "Insert",
+ "body": [
+ {
+ "type": "input-text",
+ "label": "文本",
+ "name": "id",
+ "id": "u:4c0a1ededc47",
+ "value": "15",
+ "hidden": true
+ },
+ {
+ "type": "textarea",
+ "label": "文字介绍",
+ "name": "jieshao",
+ "id": "u:aa105bcfd51b",
+ "minRows": 10,
+ "maxRows": 20,
+ "required": true
+ },
+ {
+ "type": "input-file",
+ "label": "文件上传",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "name": "vedio",
+ "id": "u:d84964c25e87",
+ "btnLabel": "文件上传",
+ "multiple": false,
+ "useChunk": false,
+ "accept": "",
+ "drag": false,
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "required": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "button",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "custom",
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);"
+ }
+ ]
+ }
+ },
+ "id": "u:6c0b8f917bf7"
+ },
+ {
+ "type": "button",
+ "label": "提交",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "submit",
+ "componentId": "u:bd64f7f5f444",
+ "outputVar": "submitResult"
+ }
+ ]
+ }
+ },
+ "level": "primary",
+ "id": "u:95a6bc834dc5"
+ }
+ ],
+ "resetAfterSubmit": false,
+ "api": {
+ "url": "/ball/addjs",
+ "method": "post",
+ "requestAdaptor": "",
+ "adaptor": "",
+ "messages": {
+ }
+ },
+ "initApi": {
+ "url": "/ball/get/$id",
+ "method": "get"
+ }
+ }
+ ],
+ "id": "u:544152a47373"
+ },
+ {
+ "title": "方块球王",
+ "body": [
+ {
+ "type": "form",
+ "id": "u:bd64f7f5f555",
+ "title": "",
+ "mode": "horizontal",
+ "dsType": "api",
+ "feat": "Insert",
+ "body": [
+ {
+ "type": "input-text",
+ "label": "文本",
+ "name": "id",
+ "id": "u:4c0a1ededc47",
+ "value": "1",
+ "hidden": true
+ },
+ {
+ "type": "textarea",
+ "label": "文字介绍",
+ "name": "jieshao",
+ "id": "u:aa105bcfd51b",
+ "minRows": 10,
+ "maxRows": 20,
+ "required": true
+ },
+ {
+ "type": "input-file",
+ "label": "文件上传",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "name": "vedio",
+ "id": "u:d84964c25e87",
+ "btnLabel": "文件上传",
+ "multiple": false,
+ "useChunk": false,
+ "accept": "",
+ "drag": false,
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "required": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "button",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "custom",
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);"
+ }
+ ]
+ }
+ },
+ "id": "u:6c0b8f917bf7"
+ },
+ {
+ "type": "button",
+ "label": "提交",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "submit",
+ "componentId": "u:bd64f7f5f555",
+ "outputVar": "submitResult"
+ }
+ ]
+ }
+ },
+ "level": "primary",
+ "id": "u:f71511d042a8"
+ }
+ ],
+ "resetAfterSubmit": false,
+ "api": {
+ "url": "/ball/addjs",
+ "method": "post",
+ "requestAdaptor": "",
+ "adaptor": "",
+ "messages": {
+ }
+ },
+ "initApi": {
+ "url": "/ball/get/$id",
+ "method": "get"
+ }
+ }
+ ],
+ "id": "u:755a96b3d27f"
+ },
+ {
+ "title": "镜像阵容",
+ "body": [
+ {
+ "type": "form",
+ "id": "u:bd64f7f5f666",
+ "title": "",
+ "mode": "horizontal",
+ "dsType": "api",
+ "feat": "Insert",
+ "body": [
+ {
+ "type": "input-text",
+ "label": "文本",
+ "name": "id",
+ "id": "u:4c0a1ededc47",
+ "value": "7",
+ "hidden": true
+ },
+ {
+ "type": "textarea",
+ "label": "文字介绍",
+ "name": "jieshao",
+ "id": "u:aa105bcfd51b",
+ "minRows": 10,
+ "maxRows": 20,
+ "required": true
+ },
+ {
+ "type": "input-file",
+ "label": "文件上传",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "name": "vedio",
+ "id": "u:d84964c25e87",
+ "btnLabel": "文件上传",
+ "multiple": false,
+ "useChunk": false,
+ "accept": "",
+ "drag": false,
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "required": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "button",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "custom",
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);"
+ }
+ ]
+ }
+ },
+ "id": "u:6c0b8f917bf7"
+ },
+ {
+ "type": "button",
+ "label": "提交",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "submit",
+ "componentId": "u:bd64f7f5f666",
+ "outputVar": "submitResult"
+ }
+ ]
+ }
+ },
+ "level": "primary",
+ "id": "u:a37a95f8c2c6"
+ }
+ ],
+ "resetAfterSubmit": false,
+ "api": {
+ "url": "/ball/addjs",
+ "method": "post",
+ "requestAdaptor": "",
+ "adaptor": "",
+ "messages": {
+ }
+ },
+ "initApi": {
+ "url": "/ball/get/$id",
+ "method": "get"
+ }
+ }
+ ],
+ "id": "u:e4815a5fccf1"
+ },
+ {
+ "title": "社区小球王",
+ "body": [
+ {
+ "type": "form",
+ "id": "u:bd64f7f5f777",
+ "title": "",
+ "mode": "horizontal",
+ "dsType": "api",
+ "feat": "Insert",
+ "body": [
+ {
+ "type": "input-text",
+ "label": "文本",
+ "name": "id",
+ "id": "u:4c0a1ededc47",
+ "value": "8",
+ "hidden": true
+ },
+ {
+ "type": "textarea",
+ "label": "文字介绍",
+ "name": "jieshao",
+ "id": "u:aa105bcfd51b",
+ "minRows": 10,
+ "maxRows": 20,
+ "required": true
+ },
+ {
+ "type": "input-file",
+ "label": "文件上传",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "name": "vedio",
+ "id": "u:d84964c25e87",
+ "btnLabel": "文件上传",
+ "multiple": false,
+ "useChunk": false,
+ "accept": "",
+ "drag": false,
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "required": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "button",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "custom",
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);"
+ }
+ ]
+ }
+ },
+ "id": "u:6c0b8f917bf7"
+ },
+ {
+ "type": "button",
+ "label": "提交",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "submit",
+ "componentId": "u:bd64f7f5f777",
+ "outputVar": "submitResult"
+ }
+ ]
+ }
+ },
+ "level": "primary",
+ "id": "u:0c61e0e5b4f4"
+ }
+ ],
+ "resetAfterSubmit": false,
+ "api": {
+ "url": "/ball/addjs",
+ "method": "post",
+ "requestAdaptor": "",
+ "adaptor": "",
+ "messages": {
+ }
+ },
+ "initApi": {
+ "url": "/ball/get/$id",
+ "method": "get"
+ }
+ }
+ ],
+ "id": "u:2bfa05b7cccb"
+ },
+ {
+ "title": "涨姿势",
+ "body": [
+ {
+ "type": "form",
+ "id": "u:bd64f7f5f888",
+ "title": "",
+ "mode": "horizontal",
+ "dsType": "api",
+ "feat": "Insert",
+ "body": [
+ {
+ "type": "input-text",
+ "label": "文本",
+ "name": "id",
+ "id": "u:4c0a1ededc47",
+ "value": "10",
+ "hidden": true
+ },
+ {
+ "type": "textarea",
+ "label": "文字介绍",
+ "name": "jieshao",
+ "id": "u:aa105bcfd51b",
+ "minRows": 10,
+ "maxRows": 20,
+ "required": true
+ },
+ {
+ "type": "input-file",
+ "label": "文件上传",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "name": "vedio",
+ "id": "u:d84964c25e87",
+ "btnLabel": "文件上传",
+ "multiple": false,
+ "useChunk": false,
+ "accept": "",
+ "drag": false,
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "required": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "button",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "custom",
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);"
+ }
+ ]
+ }
+ },
+ "id": "u:6c0b8f917bf7"
+ },
+ {
+ "type": "button",
+ "label": "提交",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "submit",
+ "componentId": "u:bd64f7f5f888",
+ "outputVar": "submitResult"
+ }
+ ]
+ }
+ },
+ "level": "primary",
+ "id": "u:e04f1bcae4aa"
+ }
+ ],
+ "resetAfterSubmit": false,
+ "api": {
+ "url": "/ball/addjs",
+ "method": "post",
+ "requestAdaptor": "",
+ "adaptor": "",
+ "messages": {
+ }
+ },
+ "initApi": {
+ "url": "/ball/get/$id",
+ "method": "get"
+ }
+ }
+ ],
+ "id": "u:2f4595ac11a7"
+ },
+ {
+ "title": "涨姿势[2]",
+ "body": [
+ {
+ "type": "form",
+ "id": "u:bd64f7f5f999",
+ "title": "",
+ "mode": "horizontal",
+ "dsType": "api",
+ "feat": "Insert",
+ "body": [
+ {
+ "type": "input-text",
+ "label": "文本",
+ "name": "id",
+ "id": "u:4c0a1ededc47",
+ "value": "11",
+ "hidden": true
+ },
+ {
+ "type": "textarea",
+ "label": "文字介绍",
+ "name": "jieshao",
+ "id": "u:aa105bcfd51b",
+ "minRows": 10,
+ "maxRows": 20,
+ "required": true
+ },
+ {
+ "type": "input-file",
+ "label": "文件上传",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "name": "vedio",
+ "id": "u:d84964c25e87",
+ "btnLabel": "文件上传",
+ "multiple": false,
+ "useChunk": false,
+ "accept": "",
+ "drag": false,
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "required": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "button",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "custom",
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);"
+ }
+ ]
+ }
+ },
+ "id": "u:6c0b8f917bf7"
+ },
+ {
+ "type": "button",
+ "label": "提交",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "submit",
+ "componentId": "u:bd64f7f5f999",
+ "outputVar": "submitResult"
+ }
+ ]
+ }
+ },
+ "level": "primary",
+ "id": "u:6fbe66eae6e1"
+ }
+ ],
+ "resetAfterSubmit": false,
+ "api": {
+ "url": "/ball/addjs",
+ "method": "post",
+ "requestAdaptor": "",
+ "adaptor": "",
+ "messages": {
+ }
+ },
+ "initApi": {
+ "url": "/ball/get/$id",
+ "method": "get"
+ }
+ }
+ ],
+ "id": "u:efb71048f771"
+ },
+ {
+ "title": "绿茵密码",
+ "body": [
+ {
+ "type": "form",
+ "id": "u:bd64f7f50007",
+ "title": "",
+ "mode": "horizontal",
+ "dsType": "api",
+ "feat": "Insert",
+ "body": [
+ {
+ "type": "input-text",
+ "label": "文本",
+ "name": "id",
+ "id": "u:4c0a1ededc47",
+ "value": "5",
+ "hidden": true
+ },
+ {
+ "type": "textarea",
+ "label": "文字介绍",
+ "name": "jieshao",
+ "id": "u:aa105bcfd51b",
+ "minRows": 10,
+ "maxRows": 20,
+ "required": true
+ },
+ {
+ "type": "input-file",
+ "label": "文件上传",
+ "autoUpload": true,
+ "proxy": true,
+ "uploadType": "fileReceptor",
+ "name": "vedio",
+ "id": "u:d84964c25e87",
+ "btnLabel": "文件上传",
+ "multiple": false,
+ "useChunk": false,
+ "accept": "",
+ "drag": false,
+ "receiver": {
+ "url": "/mgr/uploadImgAmis",
+ "method": "post"
+ },
+ "required": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "button",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "custom",
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);"
+ }
+ ]
+ }
+ },
+ "id": "u:6c0b8f917bf7"
+ },
+ {
+ "type": "button",
+ "label": "提交",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "submit",
+ "componentId": "u:bd64f7f50007",
+ "outputVar": "submitResult"
+ }
+ ]
+ }
+ },
+ "level": "primary",
+ "id": "u:30fd93656c25"
+ }
+ ],
+ "resetAfterSubmit": false,
+ "api": {
+ "url": "/ball/addjs",
+ "method": "post",
+ "requestAdaptor": "",
+ "adaptor": "",
+ "messages": {
+ }
+ },
+ "initApi": {
+ "url": "/ball/get/$id",
+ "method": "get"
+ }
+ }
+ ],
+ "id": "u:50cf027d8c62"
+ },
+ {
+ "title": "步骤说明",
+ "body": [
+ {
+ "type": "form",
+ "id": "u:bd64f7f5f000",
+ "title": "",
+ "mode": "horizontal",
+ "dsType": "api",
+ "feat": "Insert",
+ "body": [
+ {
+ "type": "input-text",
+ "label": "文本",
+ "name": "id",
+ "id": "u:4c0a1ededc47",
+ "value": "100",
+ "hidden": true
+ },
+ {
+ "type": "input-rich-text",
+ "label": "富文本",
+ "name": "rich-text",
+ "vendor": "tinymce",
+ "id": "u:e67366a6ef31",
+ "options": {
+ "plugins": "advlist,autolink,link,image,lists,charmap,preview,anchor,pagebreak,searchreplace,wordcount,visualblocks,visualchars,code,fullscreen,insertdatetime,media,nonbreaking,table,emoticons,template,help",
+ "toolbar": "undo redo formatselect bold italic backcolor alignleft aligncenter alignright alignjustify bullist numlist outdent indent removeformat help",
+ "menubar": true
+ },
+ "mode": "normal"
+ }
+ ],
+ "actions": [
+ {
+ "type": "button",
+ "label": "关闭",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "custom",
+ "args": {
+ },
+ "script": "parent.layer.close(window.parent.TStudent.layerIndex);"
+ }
+ ]
+ }
+ },
+ "id": "u:6c0b8f917bf7"
+ },
+ {
+ "type": "button",
+ "label": "提交",
+ "onEvent": {
+ "click": {
+ "actions": [
+ {
+ "actionType": "submit",
+ "componentId": "u:bd64f7f5f000",
+ "outputVar": "submitResult"
+ }
+ ]
+ }
+ },
+ "level": "primary",
+ "id": "u:c0684967ad04"
+ }
+ ],
+ "resetAfterSubmit": false,
+ "api": {
+ "url": "/ball/addjs",
+ "method": "post",
+ "requestAdaptor": "",
+ "adaptor": "",
+ "messages": {
+ }
+ },
+ "initApi": {
+ "url": "/ball/get/$id",
+ "method": "get"
+ }
+ }
+ ],
+ "id": "u:254c9cdf53c1"
+ }
+ ],
+ "id": "u:56160148e468",
+ "toolbar": [
+ ]
+ }
+ ],
+ "id": "u:899c8b49ca64"
+ };
+
+ 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/ball/paike.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/paike.html
new file mode 100644
index 0000000..0be472f
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/paike.html
@@ -0,0 +1,410 @@
+<!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",
+ "title": "",
+ "regions": [
+ "body",
+ "toolbar",
+ "header"
+ ],
+ "body": [
+ {
+ "type": "tabs",
+ "tabs": [
+ {
+ "title": "按学员查看",
+ "body": [
+ {
+ "type": "crud",
+ "syncLocation": false,
+ "api": {
+ "method": "post",
+ "url": "/ball/getStudentTotal",
+ "messages": {
+ }
+ },
+ "columns": [
+ {
+ "name": "studentName",
+ "label": "学院姓名",
+ "type": "text",
+ "id": "u:631a38f8ab8f"
+ },
+ {
+ "name": "province",
+ "label": "所在省",
+ "type": "text",
+ "id": "u:d1c9f94c453a"
+ },
+ {
+ "label": "所在市",
+ "type": "text",
+ "name": "city",
+ "id": "u:71aded278293"
+ },
+ {
+ "label": "课包名称",
+ "type": "text",
+ "name": "courseName",
+ "id": "u:22cab5368b85",
+ "classNameExpr": "<%= data.courseName === '总计' ? 'bg-danger' : '' %>"
+ },
+ {
+ "label": "应上课时数",
+ "type": "text",
+ "name": "totalClassHours",
+ "id": "u:9f3c838b4dce",
+ "placeholder": "-",
+ "classNameExpr": "<%= data.courseName === '总计' ? 'bg-danger' : '' %>"
+ },
+ {
+ "type": "text",
+ "name": "cashPayment",
+ "label": "应收总收益",
+ "id": "u:ad526537117c",
+ "classNameExpr": "<%= data.courseName === '总计' ? 'bg-danger' : '' %>"
+ },
+ {
+ "label": "实上课时数",
+ "type": "text",
+ "name": "hasHours",
+ "id": "u:14eb3c5fac85",
+ "classNameExpr": "<%= data.courseName === '总计' ? 'bg-danger' : '' %>"
+ },
+ {
+ "label": "实际总收益",
+ "type": "text",
+ "name": "hasPayment",
+ "id": "u:6c0e4a862b04",
+ "placeholder": "-",
+ "format": "YYYY-MM-DD",
+ "classNameExpr": "<%= data.courseName === '总计' ? 'bg-danger' : '' %>"
+ }
+ ],
+ "bulkActions": [
+ ],
+ "itemActions": [
+ ],
+ "id": "u:e103c7434df8",
+ "filterSettingSource": [
+ "id",
+ "customerName",
+ "simName",
+ "address",
+ "industryId",
+ "email",
+ "createBy",
+ "updateBy",
+ "remark",
+ "customerCode"
+ ],
+ "features": [
+ "create",
+ "filter",
+ "bulkDelete",
+ "view",
+ "delete",
+ "update",
+ "bulkUpdate"
+ ],
+ "filterColumnCount": 3,
+ "filterEnabledList": [
+ ],
+ "headerToolbar": [
+ "bulkActions"
+ ],
+ "filter": {
+ "title": "查询条件",
+ "columnCount": 3,
+ "mode": "horizontal",
+ "body": [
+ {
+ "type": "input-city",
+ "label": "城市选择",
+ "name": "cityCode",
+ "allowDistrict": false,
+ "id": "u:16db9fd9fe42",
+ "mode": "horizontal",
+ "horizontal": {
+ "left": 3,
+ "right": 9
+ },
+ "className": ""
+ },
+ // {
+ // "type": "select",
+ // "label": "客户简称",
+ // "name": "simName",
+ // "id": "u:1942896a0f61",
+ // "multiple": false,
+ // "source": {
+ // "url": "/api/v1/rep/cus/getselect",
+ // "method": "get",
+ // "messages": {
+ // }
+ // },
+ // "labelField": "simName",
+ // "valueField": "simName",
+ // "searchable": true
+ // },
+ {
+ "type": "input-date-range",
+ "label": "日期范围",
+ "name": "times",
+ "id": "u:5ea0ab341c9e",
+ "embed": false,
+ "format": "YYYY-MM-DD",
+ "inputFormat": "YYYY-MM-DD"
+ },
+ {
+ "type": "input-text",
+ "label": "学员姓名",
+ "name": "studentName",
+ "id": "u:528726820775"
+ }
+ ],
+ "id": "u:2c92f31a25d0",
+ "name": "select1",
+ "rules": [
+ ]
+ },
+ "perPageAvailable": [
+ 10,
+ 20,
+ 50,
+ 100
+ ],
+ "messages": {
+ },
+ "footerToolbar": [
+ {
+ "type": "statistics",
+ "align": "left"
+ },
+ {
+ "type": "pagination",
+ "align": "left"
+ },
+ {
+ "type": "switch-per-page",
+ "tpl": "内容",
+ "align": "left"
+ }
+ ],
+ "columnsTogglable": "auto",
+ "pageField": "",
+ "perPageField": "",
+ "alwaysShowPagination": true,
+ "loadDataOnce": true,
+ "perPage": 5,
+ "combineNum": 3
+ }
+ ],
+ "id": "u:6e437c3e244f"
+ },
+ {
+ "title": "按课包查看",
+ "body": [
+ {
+ "type": "crud",
+ "syncLocation": false,
+ "api": {
+ "method": "post",
+ "url": "/ball/bypac",
+ "messages": {
+ }
+ },
+ "columns": [
+ {
+ "name": "name",
+ "label": "课包名称",
+ "type": "text",
+ "id": "u:ee84f6f80722"
+ },
+ {
+ "name": "province",
+ "label": "所在省",
+ "type": "text",
+ "id": "u:d35930e735a8"
+ },
+ {
+ "type": "text",
+ "label": "所在市",
+ "name": "city",
+ "id": "u:d74f9dcfdb4e"
+ },
+ {
+ "type": "text",
+ "label": "所属门店",
+ "name": "store",
+ "id": "u:6fb45db2b3ef"
+ },
+ {
+ "type": "text",
+ "label": "应上课时数",
+ "name": "totalClassHours",
+ "id": "u:5c82dde5c22d"
+ },
+ {
+ "type": "text",
+ "label": "应收总收益",
+ "name": "cashPayment",
+ "id": "u:b915f72e72b0"
+ },
+ {
+ "type": "text",
+ "label": "实上课时数",
+ "name": "hasHours",
+ "id": "u:2fb55efdecab"
+ },
+ {
+ "type": "text",
+ "label": "实收总收益",
+ "name": "lavePay",
+ "id": "u:c46b9aeca543"
+ },
+ {
+ "type": "operation",
+ "label": "操作",
+ "buttons": [
+ ],
+ "id": "u:0c6ed863e6a8"
+ }
+ ],
+ "bulkActions": [
+ ],
+ "itemActions": [
+ ],
+ "id": "u:c765ccbe1f1a",
+ "features": [
+ "filter"
+ ],
+ "filterColumnCount": 3,
+ "filter": {
+ "title": "查询条件",
+ "columnCount": 3,
+ "mode": "horizontal",
+ "body": [
+ {
+ "type": "input-city",
+ "label": "城市选择",
+ "name": "cityCode",
+ "allowDistrict": false,
+ "id": "u:16db9fd9fe42",
+ "mode": "horizontal",
+ "horizontal": {
+ "left": 3,
+ "right": 9
+ },
+ "className": ""
+ },
+ // {
+ // "type": "select",
+ // "label": "客户简称",
+ // "name": "simName",
+ // "id": "u:1942896a0f61",
+ // "multiple": false,
+ // "source": {
+ // "url": "/api/v1/rep/cus/getselect",
+ // "method": "get",
+ // "messages": {
+ // }
+ // },
+ // "labelField": "simName",
+ // "valueField": "simName",
+ // "searchable": true
+ // },
+ {
+ "type": "input-text",
+ "label": "所属门店",
+ "name": "store",
+ "id": "u:528726820775"
+ },
+ {
+ "type": "input-text",
+ "label": "课包名称",
+ "name": "name",
+ "id": "u:3bce46aeafeb"
+ },
+ {
+ "type": "input-date-range",
+ "label": "日期范围",
+ "name": "times",
+ "id": "u:5ea0ab341c9e",
+ "embed": false,
+ "format": "YYYY-MM-DD",
+ "inputFormat": "YYYY-MM-DD"
+ }
+ ],
+ "id": "u:2c92f31a25d0",
+ "name": "select1",
+ "rules": [
+ ]
+ },
+ "perPageAvailable": [
+ 10
+ ],
+ "messages": {
+ }
+ }
+ ],
+ "id": "u:74421661b6be"
+ }
+ ],
+ "id": "u:9687d5f89c52"
+ }
+ ],
+ "id": "u:b14a93e2aeb3"
+ };
+
+ 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/ball/yuyue.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html
new file mode 100644
index 0000000..0aafb2c
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html
@@ -0,0 +1,89 @@
+@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="peopleName" name="预约人" />
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="phone" name="联系方式" />
+ </div>
+
+ <div class="col-sm-3">
+ <#TimeCon id="date" name="报名时间" isTime="false"/>
+ </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/yuyue.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>
+ laydate.render({
+ elem: '#date'
+ ,lang:"CN"
+ });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html
new file mode 100644
index 0000000..d64fa91
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html
@@ -0,0 +1,286 @@
+@layout("/common/_container.html"){
+<style>
+ .green-button {
+ background-color: green;
+ }
+</style>
+<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">
+ <input type="radio" name="type" value="1" checked="" onclick="updateType(1)" > 全场
+ <input type="radio" name="type" value="2" onclick="updateType(2)" > 半场
+ </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" onchange="CoursePackageInfo.addTime(this.value)">
+ <option >请选择场地</option>
+
+
+ @for(obj in site){
+ <option value="${obj.id}" data-custom-data="1">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+
+
+ <div class="form-group" id="half1" hidden="hidden">
+ <label class="col-sm-3 control-label">*选择半场:</label>
+ <div class="col-sm-4">
+ <select class="form-control" name="half" id="half">
+
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">预约时间:</label>
+ <div class="col-sm-4">
+ <input class="form-control" id="time" name="time" type="text" >
+
+ </div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*预约时间段:</label>
+ <div class="col-sm-5" id="ttt1">
+ <div class="layui-btn-group" id="ttt2">
+ </div>
+
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">现金价格:</label>
+ <div class="col-sm-4">
+ <input class="form-control" id="cash" name="cash" type="text" >
+
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">玩派币价格:</label>
+ <div class="col-sm-4">
+ <input class="form-control" id="play" name="play" type="text" >
+
+ </div>
+ </div>
+
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">预约人:</label>
+ <div class="col-sm-4">
+ <input class="form-control" id="booker" name="booker" type="text" >
+
+ </div>
+ </div>
+
+
+
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">预约人:</label>
+ <div class="col-sm-4">
+ <input class="form-control" id="phone" name="phone" type="text" >
+
+ </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/yuyue_info.js"></script>
+<script type="text/javascript">
+ function updateType(o) {
+ if(o==1){
+
+ var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+ var count = elements.length;
+
+ console.log("Number of elements: " + count);
+
+ $("#half1").hide()
+ var radios = document.getElementsByName("type");
+ var selectedValue;
+
+ for (var i = 0; i < radios.length; i++) {
+ if (radios[i].checked) {
+ selectedValue = radios[i].value;
+ break;
+ }
+ }
+
+ var ajax3 = new $ax(Feng.ctxPath + "/ball/getMoney/"+$('#siteId').val()+'/'+selectedValue, function(data){
+ console.log("===========3333====="+data)
+ if(data!=null){
+
+ $("#cash").val(data[0] * count);
+ $("#play").val(data[1] * count);
+
+ }
+ })
+ ajax3.start()
+ }else {
+ var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+ var count = elements.length;
+
+ console.log("Number of elements: " + count);
+
+ $("#half1").show()
+ var radios = document.getElementsByName("type");
+ var selectedValue;
+
+ for (var i = 0; i < radios.length; i++) {
+ if (radios[i].checked) {
+ selectedValue = radios[i].value;
+ break;
+ }
+ }
+
+ var ajax3 = new $ax(Feng.ctxPath + "/ball/getMoney/"+$('#siteId').val()+'/'+selectedValue, function(data){
+ console.log("===========3333====="+data)
+ if(data!=null){
+
+ $("#cash").val(data[0] * count);
+ $("#play").val(data[1] * count);
+
+ }
+ })
+ ajax3.start()
+
+ }
+
+ }
+
+
+
+ function toggleColor(button) {
+ button.classList.toggle("green-button");
+
+ var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+ var count = elements.length;
+
+ console.log("Number of elements: " + count);
+
+
+ var radios = document.getElementsByName("type");
+ var selectedValue;
+
+ for (var i = 0; i < radios.length; i++) {
+ if (radios[i].checked) {
+ selectedValue = radios[i].value;
+ break;
+ }
+ }
+
+ var ajax3 = new $ax(Feng.ctxPath + "/ball/getMoney/"+$('#siteId').val()+'/'+selectedValue, function(data){
+ console.log("===========3333====="+data)
+ if(data!=null){
+
+ $("#cash").val(data[0] * count);
+ $("#play").val(data[1] * count);
+
+ }
+ })
+ ajax3.start()
+
+
+ }
+
+ laydate.render({
+ elem: '#time'
+ ,lang:"CN",
+ min:0,
+ max:10
+ });
+
+ 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
+ });
+ }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html
index 9961f04..cb7fc3a 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html
@@ -1,4 +1,4 @@
-@layout("/common/_container.html"){
+ @layout("/common/_container.html"){
<div class="ibox float-e-margins">
<div class="ibox-content">
<div class="form-horizontal">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/platformIncome.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/platformIncome.html
index 69f573c..8ccd20e 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/platformIncome.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/platformIncome.html
@@ -41,6 +41,19 @@
<div class="ibox float-e-margins">
<div class="ibox-content">
<div class="form-horizontal">
+
+ <input hidden id="day" value="${data.dayone}">
+ <input hidden id="month" value="${data.monthone}">
+ <input hidden id="quarter" value="${data.quarterone}">
+ <input hidden id="year" value="${data.yearone}">
+ <input hidden id="age1" value="${stuData.age1}">
+ <input hidden id="age2" value="${stuData.age2}">
+ <input hidden id="age3" value="${stuData.age3}">
+ <input hidden id="age4" value="${stuData.age4}">
+ <input hidden id="boy" value="${stuData.boy}">
+ <input hidden id="girl" value="${stuData.girl}">
+
+
<div class="row">
<div class="col-sm-10">
<div style="height: 50px;box-sizing: border-box;background:#f3f3f4;line-height: 50px;border:1px solid;margin-bottom: 20px;width: auto">
@@ -48,6 +61,8 @@
<div id="div2" class='table1' onclick="getContent(2)" style="border-right: 1px solid #333;">运营统计</div>
<div id="div3" class='table1' onclick="getContent(3)" style="border-right: 1px solid #333;">教学统计</div>
</div>
+
+
<div class="row" id="content1" style="margin-left: 100px;">
<div class="col-sm-11">
<div class="form-group">
@@ -71,21 +86,19 @@
</br>
<div class="col-sm-3" style="width: 400px;display: flex">
<#TimeCon id="beginTime" name="时间段:" isTime="false"/>
- <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/>
+ <#button name="搜索" icon="fa-search" clickFun="search1()"/>
</div>
</div>
<div class="col-sm-10" style="width: 1500px" >
</br>
</br>
- <span>会员费收入:</span>
- <span>玩湃币充值收入:</span>
- <span>课程收入:</span>
- <span>活动收入:</span>
- <span>订场收入:</span>
- <span>赛事收入:</span>
- <span>商品收入:</span>
- <span>其他收入:</span>
+ <span>会员费收入:<label id="fee1">${data.fee1}</label></span>
+ <span>玩湃币充值收入:<label id="fee2">${data.fee2}</label></span>
+ <span>课程收入:<label id="fee3">${data.fee3}</label></span>
+ <span>活动/赛事收入:<label id="fee4">${data.fee4}</label></span>
+ <span>订场收入:<label id="fee5">${data.fee5}</label></span>
+ <span>商品收入:<label id="fee7">${data.fee7}</label></span>
</br>
</br>
</br>
@@ -239,10 +252,138 @@
</div>
</div>
</div>
+
+
</div>
<script src="${ctxPath}/modular/system/dataStatistics/echarts.min.js"></script>
<script src="${ctxPath}/static/js/plugins/switchery/switchery.js"></script>
<script>
+ function search1(){
+ var time = $("#beginTime").val()
+ var ajax = new $ax(Feng.ctxPath + "/data/type1", function (data) {
+
+ $("#fee1").text(data.fee1)
+ $("#fee2").text(data.fee2)
+ $("#fee3").text(data.fee3)
+ $("#fee4").text(data.fee4)
+ $("#fee5").text(data.fee5)
+ $("#fee7").text(data.fee7)
+ $("#day").val(data.dayone)
+ $("#month").val(data.monthone)
+ $("#quarter").val(data.quarterone)
+ $("#year").val(data.yearone)
+
+
+
+
+
+ var chartDom = document.getElementById('cookieTicket');
+ var myChart = echarts.init(chartDom);
+ var option;
+ option = {
+ title: {
+ text: '门票收入',
+ subtext: '',
+ left: 'center'
+ },
+ tooltip: {
+ trigger: 'item'
+ },
+
+ series: [
+ {
+ name: 'Access From',
+ type: 'pie',
+ radius: '50%',
+ data: [
+ { value: data.dayone, name: '日卡' },
+ { value: data.monthone, name: '月卡' },
+ { value: data.quarterone, name: '季卡' },
+ { value: data.yearone, name: '年卡' },
+
+ ],
+ emphasis: {
+ itemStyle: {
+ shadowBlur: 10,
+ shadowOffsetX: 0,
+ shadowColor: 'rgba(0, 0, 0, 0.5)'
+ }
+ }
+ }
+ ]
+ };
+ myChart.setOption(option);
+
+ var chartDom = document.getElementById('cookieCourse');
+ var myChart = echarts.init(chartDom);
+ var option;
+ option = {
+ title: {
+ text: '课程收入',
+ subtext: '',
+ left: 'center'
+ },
+ tooltip: {
+ trigger: 'item'
+ },
+
+ series: [
+ {
+ name: 'Access From',
+ type: 'pie',
+ radius: '50%',
+ data: data.courseData,
+ emphasis: {
+ itemStyle: {
+ shadowBlur: 10,
+ shadowOffsetX: 0,
+ shadowColor: 'rgba(0, 0, 0, 0.5)'
+ }
+ }
+ }
+ ]
+ };
+ myChart.setOption(option);
+
+
+ var chartDom = document.getElementById('cookieBooking');
+ var myChart = echarts.init(chartDom);
+ var option;
+ option = {
+ title: {
+ text: '订场收入',
+ subtext: '',
+ left: 'center'
+ },
+ tooltip: {
+ trigger: 'item'
+ },
+
+ series: [
+ {
+ name: 'Access From',
+ type: 'pie',
+ radius: '50%',
+ data: data.siteData,
+ emphasis: {
+ itemStyle: {
+ shadowBlur: 10,
+ shadowOffsetX: 0,
+ shadowColor: 'rgba(0, 0, 0, 0.5)'
+ }
+ }
+ }
+ ]
+ };
+ myChart.setOption(option);
+
+
+ }, function (data) {
+
+ });
+ ajax.set("time",time);
+ ajax.start();
+ }
var ans = [];
var weekX = [];
var monthX = ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"];
@@ -661,6 +802,8 @@
}
]
};
+
+
option6 = {
tooltip: {
trigger: 'axis'
@@ -714,6 +857,9 @@
}
]
};
+
+
+
option7 = {
tooltip: {
trigger: 'axis'
@@ -839,6 +985,41 @@
$("#ensure").show();
$("#nextB").hide();
}
+
+
+ if(type==3){
+ var ajax = new $ax(Feng.ctxPath + "/data/stuCourseData", function (data) {
+
+ console.log(data.data1)
+ var chartDom = document.getElementById('cookieTeachCourse');
+ var myChart = echarts.init(chartDom);
+ var option;
+
+ option = {
+ xAxis: {
+ type: 'category',
+ data: data.data1,
+ },
+ yAxis: {
+ type: 'value'
+ },
+ series: [
+ {
+ data: data.data2,
+ type: 'bar'
+ }
+ ]
+ };
+ myChart.setOption(option);
+ }, function (data) {
+
+ });
+ ajax.start();
+ }
+
+
+
+
}
function getContent1(type){
//设置点击字体颜色效果
@@ -873,12 +1054,12 @@
}
}
-</script>
-<script>
$(function(){
+
var chartDom = document.getElementById('cookieTicket');
var myChart = echarts.init(chartDom);
var option;
+
option = {
title: {
text: '门票收入',
@@ -895,8 +1076,10 @@
type: 'pie',
radius: '50%',
data: [
- { value: 1048, name: '年票' },
- { value: 735, name: '亲子票' },
+ { value: $("#day").val(), name: '日卡' },
+ { value: $("#month").val(), name: '月卡' },
+ { value: $("#quarter").val(), name: '季卡' },
+ { value: $("#year").val(), name: '年卡' },
],
emphasis: {
@@ -912,8 +1095,24 @@
myChart.setOption(option);
});
$(function(){
+ var courseData = "${data.courseData}"
+ courseData =courseData.replace("[","").replace("]","")
+ courseData = courseData.split('},')
+
+ var a=[];
+ for (let j = 0; j <courseData.length; j++) {
+ if(j<courseData.length-1){
+ var d = courseData[j].replace("{","").replace("}","").split(",")
+ let obj ={
+ name:d[0].split("=")[1],
+ value:d[1].split("=")[1]
+ }
+ a.push(obj)
+ }
+ }
var chartDom = document.getElementById('cookieCourse');
- var myChart = echarts.init(chartDom);
+ var myChart = echarts.init(chartDom)
+
var option;
option = {
title: {
@@ -930,12 +1129,7 @@
name: 'Access From',
type: 'pie',
radius: '50%',
- data: [
- { value: 1048, name: '篮球课' },
- { value: 735, name: '羽毛课' },
- { value: 735, name: '足球课' },
-
- ],
+ data: a,
emphasis: {
itemStyle: {
shadowBlur: 10,
@@ -949,6 +1143,22 @@
myChart.setOption(option);
});
$(function(){
+ var courseData = "${data.siteData}"
+
+ courseData =courseData.replace("[","").replace("]","")
+ courseData = courseData.split('},')
+
+ var a=[];
+ for (let j = 0; j <courseData.length; j++) {
+ if(j<courseData.length-1){
+ var d = courseData[j].replace("{","").replace("}","").split(",")
+ let obj ={
+ name:d[0].split("=")[1],
+ value:d[1].split("=")[1]
+ }
+ a.push(obj)
+ }
+ }
var chartDom = document.getElementById('cookieBooking');
var myChart = echarts.init(chartDom);
var option;
@@ -967,12 +1177,7 @@
name: 'Access From',
type: 'pie',
radius: '50%',
- data: [
- { value: 1048, name: '激战' },
- { value: 735, name: '篮球场' },
- { value: 735, name: '足球场' },
-
- ],
+ data: a,
emphasis: {
itemStyle: {
shadowBlur: 10,
@@ -1005,8 +1210,10 @@
type: 'pie',
radius: '50%',
data: [
- { value: 1048, name: '30-35' },
- { value: 735, name: '12-18' },
+ { value: 1048, name: '0-7岁' },
+ { value: 735, name: '8-10岁' },
+ { value: 735, name: '11-12岁' },
+ { value: 735, name: '13岁以上' },
],
emphasis: {
@@ -1041,8 +1248,10 @@
type: 'pie',
radius: '50%',
data: [
- { value: 1048, name: '30-35' },
- { value: 735, name: '12-18' },
+ { value: $("#age1").val(), name: '0-7岁' },
+ { value: $("#age2").val(), name: '8-10岁' },
+ { value:$("#age3").val(), name: '11-12岁' },
+ { value: $("#age4").val(), name: '13岁以上' },
],
emphasis: {
@@ -1113,8 +1322,8 @@
type: 'pie',
radius: '50%',
data: [
- { value: 1048, name: '男' },
- { value: 735, name: '女' },
+ { value: $("#boy").val(), name: '男' },
+ { value: $("#girl").val(), name: '女' },
],
emphasis: {
@@ -1151,27 +1360,12 @@
};
myChart.setOption(option);
});
- $(function(){
- var chartDom = document.getElementById('cookieTeachCourse');
- var myChart = echarts.init(chartDom);
- var option;
- option = {
- xAxis: {
- type: 'category',
- data: ['足球课', '篮球课', '羽毛球课', '网球课', '排球课']
- },
- yAxis: {
- type: 'value'
- },
- series: [
- {
- data: [120, 200, 150, 80, 70, 110, 130],
- type: 'bar'
- }
- ]
- };
- myChart.setOption(option);
+ function stuCourseData(){
+
+ }
+ $(function(){
+
});
</script>
@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html
index 1adda3f..b49d32e 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html
@@ -1,5 +1,47 @@
@layout("/common/_container.html"){
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 32px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+ #app1{
+ margin-left: 255px;
+ }
+
+
+</style>
<div class="ibox float-e-margins">
<div class="ibox-content">
@@ -114,7 +156,26 @@
</div>
<#avatar id="coverDrawing" name="赛事封面(推荐像素:210*280px):" />
- <#avatar id="imgs" name="赛事图片(推荐像素:780*440px):" />
+ <div class="row" id="app1">
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*赛事活动图片(请上传不超过五张图片): </label>
+ <div class="col-sm-2" style="width: 100%;margin-left: 11%;margin-top: 1%">
+ <el-upload
+ :limit="5"
+ class="avatar-uploader"
+ action="/tCouponManage/uploadPic"
+ list-type="picture-card"
+ accept="."
+ :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>
<#avatar id="registrationNotes" name="报名须知(推荐像素:宽780px):" />
</div>
@@ -132,18 +193,55 @@
</div>
</div>
<script src="${ctxPath}/modular/system/tCompetition/tCompetition_info.js"></script>
+<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>
-
-
- laydate.render({
- elem: '#startTime'
- ,type:"datetime"
+ var vue2 = new Vue({
+ el: '#app1',
+ props: {
+ // 数量限制
+ limit: {
+ type: Number,
+ default: 2
+ },
+ },
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ console.log(TCarInfoDlg.goodsPicArray1)
+ TCarInfoDlg.goodsPicArray1.push(file);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ TCarInfoDlg.goodsPicArray1 = TCarInfoDlg.goodsPicArray1.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
});
laydate.render({
elem: '#endTime'
- ,type:"datetime"
+ ,type:"date"
});
laydate.render({
+ elem: '#startTime'
+ ,type:"date"
+ });
+
+ laydate.render({
elem: '#registerEndTime'
,type:"datetime"
});
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_edit.html
index 83fdac1..61b2a8c 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_edit.html
@@ -1,5 +1,47 @@
@layout("/common/_container.html"){
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 32px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+ #app1{
+ margin-left: 255px;
+ }
+
+
+</style>
<div class="ibox float-e-margins">
<div class="ibox-content">
@@ -131,7 +173,27 @@
</div>
<#avatar id="coverDrawing" name="赛事封面(推荐像素:210*280px):" avatarImg="${item.coverDrawing}" />
- <#avatar id="imgs" name="赛事图片(推荐像素:780*440px):" />
+ <div class="row" id="app1">
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*实景图片(请上传不超过五张图片): </label>
+ <div class="col-sm-2" style="width: 100%;margin-left: 11%;margin-top: 1%">
+ <el-upload
+ :limit="5"
+ class="avatar-uploader"
+ action="/tCouponManage/uploadPic"
+ list-type="picture-card"
+ accept="."
+ :file-list="imageUrl2"
+ :on-success="handleAvatarSuccess"
+ :on-remove="handleRemove">
+ <i class="el-icon-plus"></i>
+ </el-upload>
+ <el-dialog :visible.sync="dialogVisible">
+ <img width="100%" :src="imageUrl2" alt="">
+ </el-dialog>
+ </div>
+ </div>
+ </div>
<#avatar id="registrationNotes" name="报名须知(推荐像素:宽780px):" avatarImg="${item.registrationNotes}"/>
</div>
@@ -151,7 +213,66 @@
</div>
</div>
<script src="${ctxPath}/modular/system/tCompetition/tCompetition_info.js"></script>
+<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>
+ let id = "${item.imgs}"
+ let obj = []
+
+ var vue2 = new Vue({
+ el: '#app1',
+ props: {
+ // 数量限制
+ limit: {
+ type: Number,
+ default: 2
+ },
+ },
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ imageUrl2: [],
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ file.url =file.response
+ TCarInfoDlg.goodsPicArray1.push(file);
+ },
+ changeImg(){
+ var i = id.split(",")
+ for (let j = 0; j <i.length; j++) {
+ let obj={
+ fileName:i[j],
+ uuid:i[j],
+ url:i[j],
+ response:i[j],
+ }
+ this.imageUrl2.push(obj)
+
+ }
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ TCarInfoDlg.goodsPicArray1 = TCarInfoDlg.goodsPicArray1.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ this.changeImg()
+ TCarInfoDlg.goodsPicArray1 = this.imageUrl2
+ },
+ });
+
+
window.onload = function() {
if($("#type").val()==1){
$("#types").html("未开始").css("color","goldenrod")
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetitionAudit/TCompetition_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetitionAudit/TCompetition_edit.html
index 9d8a0cf..9f0ca04 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetitionAudit/TCompetition_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetitionAudit/TCompetition_edit.html
@@ -1,4 +1,4 @@
-@layout("/common/_container.html"){
+ @layout("/common/_container.html"){
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
<div class="ibox float-e-margins">
<div class="ibox-content">
@@ -131,7 +131,16 @@
</div>
<#avatar id="coverDrawing" name="赛事封面(推荐像素:210*280px):" avatarImg="${item.coverDrawing}" />
- <#avatar id="imgs" name="赛事图片(推荐像素:780*440px):" />
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">赛事图片(推荐像素:780*440px):</label>
+ <div class="col-sm-4">
+ <div id="imgsPreId">
+ @for(i in imgs){
+ <img width="100px" height="100px" id="img" src="${i}">
+ @}
+ </div>
+ </div>
+ </div>
<#avatar id="registrationNotes" name="报名须知(推荐像素:宽780px):" avatarImg="${item.registrationNotes}"/>
<div class="form-group">
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
index e0e7f55..41ec1ba 100644
--- 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
@@ -117,7 +117,7 @@
<#input id="quantityIssued" name="*兑换地点:" type="text" value="${item.exchangeArea}" readonly="true" />
- @if(item.useScope == 2){
+ @if(item.useScope == 3){
<table class="table table-bordered" style="width: 70%;margin-left: 228px;" >
<thead>
<tr>
@@ -134,18 +134,19 @@
</table>
@}
- @if(item.useScope == 3){
+ @if(item.useScope == 2){
<table class="table table-bordered" style="width: 70%;margin-left: 228px;" >
<thead>
<tr>
- <td>所在省市</td>
- <td>所属账号</td>
- <td>门店名称</td>
+ <td>所在省</td>
+ <td>所在市</td>
</tr>
</thead>
@for(c in city){
+ <tr>
<td>${c.num1}</td>
<td>${c.num2}</td>
+ </tr>
@}
</table>
@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TCity_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TCity_edit.html
new file mode 100644
index 0000000..1d8f66c
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TCity_edit.html
@@ -0,0 +1,98 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+ <div class="ibox-content">
+
+ <div class="form-horizontal" id="carInfoForm">
+ <input hidden id="id" value="${item.id}">
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">所在省:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)">
+ <option value="">选择省</option>
+ @for(obj in list){
+ <option value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option>
+ <option value="${obj.code}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">所在市:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="cCode" name="cCode">
+ <option value="">选择市</option>
+ @for(obj in list1){
+ <option value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ <#input id="name" name="管理员姓名" type="text" value="${item.name}"/>
+ <#input id="phone" name="管理员手机号" type="text" value="${item.phone}"/>
+
+
+ </div>
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5">
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
+ </div>
+ </div>
+
+ </div>
+</div>
+<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script>
+<script>
+ laydate.render({
+ elem: '#annualInspectionTime'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#commercialInsuranceTime'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#certifyDateA'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#transDateStart'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#transDateStop'
+ ,lang:"en"
+ });
+ laydate.render({
+
+ elem: '#certifyDateB'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#nextFixDate'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#GPSInstallDate'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#registerDate'
+ ,lang:"en"
+ });
+</script>
+<script type="application/javascript">
+ $(function() {
+ var companyType = $("input[name='companyType']:checked").val();
+ if (1 == companyType){
+ $(".companyDiv").hide();
+ } else if (2 == companyType){
+ $(".companyDiv").show();
+ }
+
+ TCarInfoDlg.zcServerClick();
+ TCarInfoDlg.kcServerClick();
+
+ });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoodsAudit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoodsAudit.html
new file mode 100644
index 0000000..8c5f2a7
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoodsAudit.html
@@ -0,0 +1,66 @@
+@layout("/common/_container.html"){
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+
+ <div class="ibox-title">
+ <h5>门票审核管理</h5>
+ </div>
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+
+ <div class="col-sm-3">
+ <#NameCon id="name" name="门票名称" />
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="type" name="门票类型">
+ <option value="">全部</option>
+ <option value="1">日卡</option>
+ <option value="2">月卡</option>
+ <option value="3">季卡</option>
+ <option value="4">年卡</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="redemptionMethod" name="兑换方式">
+ <option value="">全部</option>
+ <option value="1">积分</option>
+ <option value="2">现金+积分</option>
+ <option value="3">现金</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="userPopulation" name="用户人群">
+ <option value="">全部</option>
+ <option value="1">全部用户</option>
+ <option value="2">年度会员</option>
+ <option value="3">已有学员用户</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="activeStatus" name="审核状态">
+ <option value="">全部</option>
+ <option value="2">待审核</option>
+ <option value="3">已拒绝</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="TPointProducts.search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="TPointProducts.resetSearch()" space="true"/>
+ </div>
+ </div>
+ <div class="hidden-xs" id="TPointProductsTableToolbar" role="group">
+ <#button name="审核" icon="fa-remove" clickFun="TPointProducts.payDetail()" space="true"/>
+ <#button name="查看详情" icon="fa-remove" clickFun="TPointProducts.detail()" space="true"/>
+ </div>
+ <#table id="TPointProductsTable"/>
+ </div>
+ </div>
+ </div>
+</div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/tGoodsAudit/tGoods.js"></script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_add.html
new file mode 100644
index 0000000..e64b2c4
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_add.html
@@ -0,0 +1,569 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409eff;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 34px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<div class="ibox float-e-margins">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">商品类型:</label>
+ <div class="col-sm-9">
+ <input type="radio" name="type" value="1" checked onclick="updateType(1)"> 实体商品
+ <input type="radio" name="type" value="2"onclick="updateType(2)" > 课包商品
+ <input type="radio" name="type" value="3" onclick="updateType(1)"> 门票商品
+ </div>
+ </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" 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>
+
+
+ <div class="form-group" id="y1" hidden>
+ <label class="col-sm-3 control-label">所需现金:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="cash" name="cash" type="text">
+
+ </div>
+ </div>
+ <div class="form-group" id="y2">
+ <label class="col-sm-3 control-label">所需积分:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="integral" name="integral" type="text">
+
+ </div>
+ </div>
+
+ <#avatar id="cover" name="商品封面" />
+
+ <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 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="quantityIssued" 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="pickUpQuantity" name="pickUpQuantity" type="text">
+ </div>
+ </div>
+ <#input id="startTime" name="有效期" type="text"/>
+
+ <div class="row" id="belongsCon" >
+ <div class="form-group">
+ <div class="form-group">
+ <div class="initialLevel col-sm-12 control-label form-group">
+ <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="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="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="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>
+ </div>
+
+ </div>
+ </div>
+
+ <div class="row" id="citySelect" hidden="hidden">
+ <div class="form-group">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*指定城市: </label>
+ <div class="col-sm-9 control-label">
+ <select class="col-sm-1" id="provinceData" style="margin-top: 1%;width: 25%" onchange="changeCity(null)">
+ <option value="">请选择</option>
+ </select>
+ <label class="col-sm-1" style="width: 9%;margin-top: 7px">省</label>
+ <select class="col-sm-1" style="margin-top: 1%;width: 25%" id="cityData">
+ <option value="">请选择</option>
+ </select>
+ <label class="col-sm-1" style="width: 7%;margin-top: 7px">市</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>
+
+ </div>
+ </div>
+
+ <div class="row" id="storeSelect" hidden="hidden">
+ <div class="form-group">
+ <div class="form-group">
+ <div class="col-sm-12">
+ <label class="col-sm-3 control-label">*指定门店: </label>
+ <button onclick="storeList()"
+ style="height: 22px;width: 82px;background-color: #4a8ff1;color: white;z-index: 15;position:relative;border: none;margin-top: 1%">
+ 选择门店
+ </button>
+ </div>
+ <div class="col-sm-12" style="margin-left: -57px;margin-top: 20px">
+ <table class="table table-bordered" style="width: 70%;margin-left: 228px;" id="storeTable">
+ <thead>
+ <tr>
+ <td>所在省市</td>
+ <td>所属账号</td>
+ <td>门店名称</td>
+ <td>操作</td>
+ </tr>
+ </thead>
+ <tbody id="coun"></tbody>
+ </table>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <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="editor" 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="sort" name="sort" type="text">
+
+ </div>
+ </div>
+ </div>
+
+ <div id="b2" hidden>
+
+ <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="TGoodsInfoDlg.oneChange(this)">
+ <option value="">选择省</option>
+ @for(obj in list){
+ <option value="${obj.code}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">所在市:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="cCode" name="cCode" 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>
+
+ </div>
+
+
+ </div>
+</div>
+
+<div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5">
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TGoodsInfoDlg.addSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
+ </div>
+</div>
+
+ </div>
+
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script src="${ctxPath}/modular/system/tGoods/tGoods_info.js"></script>
+<script src="${ctxPath}/modular/system/tGoods/TStoreInfo.js"></script>
+<script>
+ laydate.render({
+ elem: '#startTime',
+ range: true
+ });
+ laydate.render({
+ elem: '#startTime1',
+ range: true
+ });
+ function updateMethod(e) {
+ console.log(e)
+ if(e==1){
+ $("#y3").hide()
+ $("#y4").show()
+ }else if(e==2){
+ $("#y4").show()
+ $("#y3").show()
+ }else if(e==3){
+ $("#y1").hide()
+ $("#y2").show()
+ }else if(e==4){
+ $("#y1").show()
+ $("#y2").show()
+ }else if(e==5) {
+ $("#y2").hide()
+ $("#y1").show()
+ }
+
+ }
+ let i =1;
+ function updateType(e) {
+
+ if(e==2){
+ $("#b1").hide()
+ $("#b2").show()
+ if(i==1){
+ var drivingLicensePhoto = new $WebUpload("cover1");
+ drivingLicensePhoto.setUploadBarId("progressBar");
+ drivingLicensePhoto.init();
+ i++;
+ }
+ $("#ticket").hide()
+ }else {
+ $("#b2").hide()
+ $("#b1").show()
+ $("#ticket").show()
+ }
+ }
+
+
+
+ function changeCity(n){
+
+ var provinceSelect = null;
+ if (n === undefined || n === null || n === ''){
+ provinceSelect = document.getElementById("provinceData");
+ }else {
+ provinceSelect = document.getElementById("provinceData"+n);
+ }
+
+ var citySelect = null;
+ if (n === undefined || n === null || n === ''){
+ citySelect = document.getElementById("cityData");
+ }else {
+ citySelect = document.getElementById("cityData"+n);
+ }
+
+ var selectedProvince = provinceSelect.value;
+ // 清空城市下拉框
+ citySelect.innerHTML = '<option value="">请选择</option>';
+ if (selectedProvince === "") {
+ return;
+ }
+ var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity", function(data){
+ data.forEach(province => {
+ var option = document.createElement("option");
+ option.value = province.id; // 根据你的数据结构确定省份的id字段
+ option.text = province.name; // 根据你的数据结构确定省份的name字段
+ citySelect.appendChild(option);
+ });
+ },function(data){
+ console.log('data:',data)
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set('province',selectedProvince);
+ ajax.start();
+ }
+
+ /**
+ * 全国通用
+ */
+ function scopeOfApplication1() {
+ $("#storeSelect").hide();
+ $("#citySelect").hide();
+ }
+ /**
+ * 指定城市
+ */
+ function scopeOfApplication2() {
+ $("#storeSelect").hide();
+ $("#citySelect").show();
+ }
+ /**
+ * 指定门店
+ */
+ function scopeOfApplication3() {
+ $("#storeSelect").show();
+ $("#citySelect").hide();
+ }
+
+
+
+
+ var vue2 = new Vue({
+ el: '#app',
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TGoodsInfoDlg.goodsPicArray.push(file);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ 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;
+ });
+ },
+ },
+ created() {
+ },
+ });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_one.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_one.html
new file mode 100644
index 0000000..41ec1ba
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_one.html
@@ -0,0 +1,208 @@
+@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 == 3){
+ <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 == 2){
+ <table class="table table-bordered" style="width: 70%;margin-left: 228px;" >
+ <thead>
+ <tr>
+ <td>所在省</td>
+ <td>所在市</td>
+ </tr>
+ </thead>
+ @for(c in city){
+ <tr>
+ <td>${c.num1}</td>
+ <td>${c.num2}</td>
+ </tr>
+ @}
+ </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/tGoodsAudit/TGoods_detail_two.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_two.html
new file mode 100644
index 0000000..7c62805
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_two.html
@@ -0,0 +1,396 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409eff;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 34px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<div class="ibox float-e-margins">
+ <div class="ibox-content">
+ <input id="s1" value="${item.redemptionMethod}" hidden>
+ <input id="s2" value="${item.userPopulation}" hidden>
+ <div class="form-horizontal" id="carInfoForm">
+ <#label id="types" name="商品类型" type="text" value="课包商品" />
+
+ <div id="b2" >
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">所在省:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="pCode" name="pCode">
+ <option value="">${item.province}</option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">所在市:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="cCode" name="cCode" >
+ <option value="">${item.city}</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">所属门店:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="storeId" name="storeId">
+ <option value="">${shopName}</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">课包类型:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="coursePackageTypeId" name="pCode" onchange="TGoodsInfoDlg.packageChange(this)">
+ <option value="">${typeName}</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">课包名称:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="coursePackageId" name="coursePackageId" onchange="TGoodsInfoDlg.timeChange(this)">
+ <option value="">${pageName}</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">课时数:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="coursePackageConfigId" name="coursePackageConfigId">
+ <option value="">${classHours}</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">原价:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="price1" name="price" type="text" value="${item.price}" readonly>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">兑换方式:</label>
+ <div class="col-sm-9">
+ <input type="radio" name="redemptionMethod" value="1" checked onclick="updateMethod(1)"> 积分
+ <input type="radio" name="redemptionMethod" value="2" onclick="updateMethod(2)"> 现金+积分
+ </div>
+ </div>
+
+ <div class="form-group" id="y3" hidden>
+ <label class="col-sm-3 control-label">所需现金:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="cash1" name="cash" type="text" value="${item.cash}">
+
+ </div>
+ </div>
+ <div class="form-group" id="y4">
+ <label class="col-sm-3 control-label">所需积分:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="integral1" name="integral" type="text" value="${item.integral}">
+
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*商品图片:</label>
+ <div class="col-sm-4">
+ <img height="100px" width="100px" src="${item.cover}">
+ </div>
+ </div>
+
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*商品图片:</label>
+ <div class="col-sm-4">
+ @for(im in pictures){
+ <img height="100px" width="100px" src="${im}">
+ @}
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">用户人群:</label>
+ <div class="col-sm-9">
+ <input type="radio" name="userPopulation" value="1" checked> 全部用户
+ <input type="radio" name="userPopulation" value="2" > 年度会员
+ <input type="radio" name="userPopulation" value="3" > 已有学员用户
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">发放数量:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="quantityIssued1" name="quantityIssued" type="text" value="${item.quantityIssued}" readonly>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">限领数量:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="pickUpQuantity1" name="pickUpQuantity" type="text" value="${item.pickUpQuantity}" readonly>
+ </div>
+ </div>
+ <#input id="startTime1" name="有效期" type="text" value="${sTime} - ${eTime}" readonly="true"/>
+
+ <div class="form-group" style="margin-left:262px">
+ <label class="col-sm-1 control-label">兑换说明:</label>
+ <div class="col-sm-5">
+ <textarea type="text/plain" id="editor1" style="height: 300px;width: 800px;" readonly>${item.redemptionInstructions}</textarea>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">排序:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="sort1" name="sort" type="text" value="${item.sort}" readonly>
+
+ </div>
+ </div>
+
+ </div>
+
+
+ </div>
+</div>
+
+<div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5">
+ <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
+ </div>
+</div>
+
+ </div>
+
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script src="${ctxPath}/modular/system/tGoods/tGoods_info.js"></script>
+<script src="${ctxPath}/modular/system/tGoods/TStoreInfo.js"></script>
+<script>
+ laydate.render({
+ elem: '#startTime',
+ range: true
+ });
+ laydate.render({
+ elem: '#startTime1',
+ range: true
+ });
+ function updateMethod(e) {
+ console.log(e)
+ if(e==1){
+ $("#y3").hide()
+ $("#y4").show()
+ }else if(e==2){
+ $("#y4").show()
+ $("#y3").show()
+ }else if(e==3){
+ $("#y1").hide()
+ $("#y2").show()
+ }else if(e==4){
+ $("#y1").show()
+ $("#y2").show()
+ }else if(e==5) {
+ $("#y2").hide()
+ $("#y1").show()
+ }
+
+ }
+ let i =1;
+ function updateType(e) {
+
+ if(e==2){
+ $("#b1").hide()
+ $("#b2").show()
+ if(i==1){
+ var drivingLicensePhoto = new $WebUpload("cover1");
+ drivingLicensePhoto.setUploadBarId("progressBar");
+ drivingLicensePhoto.init();
+ i++;
+ }
+
+ }else {
+ $("#b2").hide()
+ $("#b1").show()
+ }
+ }
+
+
+
+ function changeCity(n){
+
+ var provinceSelect = null;
+ if (n === undefined || n === null || n === ''){
+ provinceSelect = document.getElementById("provinceData");
+ }else {
+ provinceSelect = document.getElementById("provinceData"+n);
+ }
+
+ var citySelect = null;
+ if (n === undefined || n === null || n === ''){
+ citySelect = document.getElementById("cityData");
+ }else {
+ citySelect = document.getElementById("cityData"+n);
+ }
+
+ var selectedProvince = provinceSelect.value;
+ // 清空城市下拉框
+ citySelect.innerHTML = '<option value="">请选择</option>';
+ if (selectedProvince === "") {
+ return;
+ }
+ var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity", function(data){
+ data.forEach(province => {
+ var option = document.createElement("option");
+ option.value = province.id; // 根据你的数据结构确定省份的id字段
+ option.text = province.name; // 根据你的数据结构确定省份的name字段
+ citySelect.appendChild(option);
+ });
+ },function(data){
+ console.log('data:',data)
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set('province',selectedProvince);
+ ajax.start();
+ }
+
+ /**
+ * 全国通用
+ */
+ function scopeOfApplication1() {
+ $("#storeSelect").hide();
+ $("#citySelect").hide();
+ }
+ /**
+ * 指定城市
+ */
+ function scopeOfApplication2() {
+ $("#storeSelect").hide();
+ $("#citySelect").show();
+ }
+ /**
+ * 指定门店
+ */
+ function scopeOfApplication3() {
+ $("#storeSelect").show();
+ $("#citySelect").hide();
+ }
+
+
+
+
+ var vue2 = new Vue({
+ el: '#app',
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TGoodsInfoDlg.goodsPicArray.push(file);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ couponInfoDlg.goodsPicArray = couponInfoDlg.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+ var vue2 = new Vue({
+ el: '#app1',
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TGoodsInfoDlg.goodsPicArray1.push(file);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ couponInfoDlg.goodsPicArray = couponInfoDlg.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+
+
+ window.onload = function(){
+ var OBJradio=document.getElementsByName("redemptionMethod")
+ if(OBJradio==1){
+ $("#y4").show()
+ $("#y3").hide()
+ }
+ if(OBJradio==2){
+ $("#y4").show()
+ $("#y3").show()
+ }
+ for(i=0;i<OBJradio.length;i++){//循环查找这个radio
+ if($("#s1").val()==OBJradio[i].value){//判断是否与radio的值相同
+ OBJradio[i].checked=true//修改选中状态
+ }
+ }
+ var OBJradio=document.getElementsByName("userPopulation")
+ for(i=0;i<OBJradio.length;i++){//循环查找这个radio
+ if($("#s2").val()==OBJradio[i].value){//判断是否与radio的值相同
+ OBJradio[i].checked=true//修改选中状态
+ }
+ }
+ }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_edit.html
new file mode 100644
index 0000000..0d43e8b
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_edit.html
@@ -0,0 +1,157 @@
+@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="goodsId" value="${id}" hidden="hidden">
+ <#input id="name" name="商品名称" type="text" value="${item.name}" readonly="true" />
+
+ <#avatar id="cover" name="商品封面:" avatarImg="${item.cover}" />
+
+
+ <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="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"
+ 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>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">发放数量:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="quantityIssued" name="quantityIssued" type="text" value="${item.quantityIssued}">
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">限领数量:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="pickUpQuantity" name="pickUpQuantity" type="text" value="${item.pickUpQuantity}">
+ </div>
+ </div>
+
+ <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="editor" style="height: 300px;width: 800px;">${item.content}</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="sort" name="sort" type="text" value="${item.sort}">
+ </div>
+ </div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5">
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TGoodsInfoDlg.editSubmit()"/>
+ <#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/tGoodsAudit/TGoods_pay.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_pay.html
new file mode 100644
index 0000000..0f1e6ef
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_pay.html
@@ -0,0 +1,48 @@
+@layout("/common/_container.html"){
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+ <input id="id" value="${id}" hidden="hidden">
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+
+ <div class="col-sm-3">
+ <#NameCon id="name" name="姓名" />
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="phone" name="联系方式:" />
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="status" name="状态:">
+ <option value="">全部</option>
+ <option value="1">未使用</option>
+ <option value="2">已使用</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="TPayInfo.search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="TPayInfo.resetSearch()" space="true"/>
+ </div>
+ </div>
+ <div class="hidden-xs" id="TPayInfoTableToolbar" role="group">
+ <#button name="核销" icon="fa-plus" clickFun="TPayInfo.WriteOff()"/>
+ </div>
+ <#table id="TPayInfoTable"/>
+
+ <div style="margin-left: 40%">
+ <button type="button" class="btn btn-info button-margin" onclick="TPayInfo.close()"
+ id="submit" style="width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+ <i class="fa fa-check"></i> 关闭
+ </button>
+ </div>
+
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/tGoods/tPay_info.js"></script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TStoreList.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TStoreList.html
new file mode 100644
index 0000000..7c6e1a5
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TStoreList.html
@@ -0,0 +1,58 @@
+@layout("/common/_container.html"){
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+ <div class="ibox-title">
+ <h5>所在门店</h5>
+ </div>
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+ <div class="col-sm-3">
+ <select class="form-control" id="province">
+ <option value="">全部</option>
+ </select>
+ </div>
+ <div class="col-sm-3">
+ <select class="form-control" id="city">
+ <option value="">全部</option>
+ </select>
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="userPopulation" name="所属账号" >
+ <option value="">全部</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="storeName" name="门店名称" placeholder="请输入门店名称"/>
+ </div>
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="TStoreProvince.search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="TStoreProvince.resetSearch()"/>
+ </div>
+ </div>
+ <div class="hidden-xs" id="TStoreProvinceTableToolbar" role="group">
+ </div>
+ <#table id="TStoreProvinceTable"/>
+ <div style="margin-left: 30%">
+ <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.storeOfClosePage()"
+ id="closePage" style="width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+ <i class="fa fa-check"></i> 关闭
+ </button>
+
+ <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.saveSelectStores()"
+ id="submit" style="margin-left: 5%;width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+ <i class="fa fa-check"></i> 保存
+ </button>
+ </div>
+ </div>
+ </div>
+</div>
+
+</div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/tGoods/TStoreInfo.js"></script>
+<script src="${ctxPath}/modular/system/tGoods/TCouponInfo.js"></script>
+@}
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
index b9aa25e..b8d838d 100644
--- 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
@@ -69,7 +69,7 @@
area: ['100%', '100%'], //宽高
fix: false, //不固定
maxmin: true,
- content: Feng.ctxPath + '/tStudent/tStudent_update/' + TStudent.seItem.id
+ content: Feng.ctxPath + '/ball/pre_edit/' + TStudent.seItem.id
});
this.layerIndex = index;
}
@@ -80,17 +80,16 @@
* 打开详情
*/
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
+ content: Feng.ctxPath + '/ball/jieshao'
});
this.layerIndex = index;
- }
+
};
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
index abd40bf..c1fd424 100644
--- 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
@@ -3,6 +3,7 @@
*/
var CoursePackageInfo = {
userInfoData: {},
+
};
@@ -15,6 +16,7 @@
};
+
CoursePackageInfo.openDia = function (i) {
let index = layer.open({
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js
new file mode 100644
index 0000000..9403aa8
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js
@@ -0,0 +1,200 @@
+/**
+ * 管理初始化
+ */
+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: 'province', visible: true, align: 'center', valign: 'middle'},
+ {title: '所在市', field: 'city', visible: true, align: 'center', valign: 'middle'},
+ {title: '预约门店', field: 'name', visible: true, align: 'center', valign: 'middle'},
+ { title: '预约场地', field: 'nextName', visible: true, align: 'center', valign: 'middle'},
+ { title: '姓名', field: 'booker', visible: true, align: 'center', valign: 'middle'},
+ { title: '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle'},
+ { title: '预约时间段', field: 'times', visible: true, align: 'center', valign: 'middle'},
+ { title: '支付方式', field: 'payType', visible: true, align: 'center', valign: 'middle' , formatter: function(value, row) {
+ switch (value) {
+ case 1:
+ return '微信';
+ case 2:
+ return '支付宝';
+ case 3:
+ return '玩湃币';
+ case 4:
+ return '手动支付';
+ default:
+ return '';
+ }
+ }},
+ {
+ title: '金额',
+ field: 'money',
+ visible: true,
+ align: 'center',
+ valign: 'middle',
+ formatter: function(value, row) {
+ if (row.status === 0) {
+ if (value) {
+ var moneyValues = value.split(',');
+ var moneyText = moneyValues[0] + '元/' + moneyValues[1] + '玩湃币';
+ return moneyText;}
+ }
+
+ else {
+ if (row.payType === 3){
+ return row.payMoney+'玩湃币' }else {
+ return row.payMoney+'元'
+ }
+
+ }
+
+ }
+ },
+ {
+ title: '状态',
+ field: 'status',
+ visible: true,
+ align: 'center',
+ valign: 'middle',
+ formatter: function(value, row) {
+ switch (value) {
+ case 0:
+ return '待支付';
+ case 1:
+ return '待核销';
+ case 2:
+ return '已到店';
+ case 3:
+ return '已完成';
+ case 4:
+ return '已过期';
+ case 5:
+ return '已取消';
+ default:
+ return '';
+ }
+ }
+ }
+
+
+
+
+
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+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/yuyue_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 + '/ball/pre_edit/' + 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['peopleName'] = $("#peopleName").val();
+ queryData['phone'] = $("#phone").val();
+ queryData['date'] = $("#peopleName").val();
+
+
+
+ TStudent.table.refresh({query: queryData});
+};
+
+$(function () {
+ var defaultColunms = TStudent.initColumn();
+ var table = new BSTable(TStudent.id, "/ball/yuyuelist", defaultColunms);
+ table.setPaginationType("client");
+ TStudent.table = table.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js
new file mode 100644
index 0000000..9dc4393
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js
@@ -0,0 +1,542 @@
+/**
+ * 用户详情对话框(可用于添加和修改对话框)
+ */
+var CoursePackageInfo = {
+ userInfoData: {},
+};
+
+
+
+/**
+ * 关闭此对话框
+ */
+CoursePackageInfo.close = function () {
+ parent.layer.close(window.parent.TStudent.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.addTime = function (a) {
+ console.log("==========="+a)
+ var ajax = new $ax(Feng.ctxPath + "/ball/yuyuetimes/"+ $('#siteId').val(), function(data){
+ console.log("================"+data)
+ if(data!=null){
+ var content='';
+ $.each(data, function(k, v) {
+ var buttonClass = "layui-btn layui-btn-primary";
+ var style = "";
+ if (v.state === 0) {
+ style = "background-color: red;";
+ }
+ var disabledAttribute = v.state === 0 ? "disabled" : "";
+ content += '<button type="button" class="' + buttonClass + '" ' + disabledAttribute + ' style="' + style + '" onclick="toggleColor(this)">' + v.time + '</button>';
+ });
+ $("#ttt2").empty().append(content);
+ }
+ })
+ ajax.start()
+
+ var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){
+ console.log("================"+data)
+ if(data!=null){
+ let htmlStr = '';
+ for (let i = 0; i < data.length; i++) {
+ htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>'
+ }
+ $("#half").empty().append(htmlStr);
+ }
+ })
+ ajax1.start()
+
+
+
+
+
+};
+
+/**
+ * 提交添加用户
+ */
+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 siteId = $('#siteId').val();
+ let site = $('#siteId option:checked').text();
+
+
+ var radios = document.getElementsByName("type");
+ var selectedValue;
+
+ for (var i = 0; i < radios.length; i++) {
+ if (radios[i].checked) {
+ selectedValue = radios[i].value;
+ break;
+ }
+ }
+
+ let type = selectedValue;
+ let half = $('#half').val();
+ let date = $('#time').val();
+
+
+ var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+ var values = "";
+
+ for (var i = 0; i < elements.length; i++) {
+ values += date +" "+ elements[i].innerText + ",";
+ }
+
+// 去除最后一个逗号
+ values = values.slice(0, -1);
+
+ console.log(values);
+
+ var times = values;
+
+ let cash = $('#cash').val();
+ let play = $('#play').val();
+ let booker = $('#booker').val();
+ let phone = $('#phone').val();
+
+ // 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
+ // }
+ //
+ // 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
+ // }
+
+
+ //提交信息
+ var ajax = new $ax(Feng.ctxPath + "/ball/ordersave", function (data) {
+ if(data.code == 200){
+ Feng.success("添加成功!");
+ CoursePackageInfo.close();
+ window.parent.TStudent.table.refresh();
+ }else{
+ Feng.error(data.msg);
+ }
+ }, function (data) {
+ Feng.error("添加失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("province",province)
+ ajax.set("provinceCode",provinceCode);
+ ajax.set("city",city);
+ ajax.set("cityCode",cityCode);
+ ajax.set("storeId",storeId);
+ ajax.set("isHalf",type);
+ ajax.set("siteId",siteId);
+ ajax.set("nextName",site);
+ ajax.set("halfName",half);
+ ajax.set("date",date);
+ ajax.set("times",times);
+ ajax.set("money",cash+","+play);
+ ajax.set("booker",booker);
+ ajax.set("phone",phone);
+
+ 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/tCompetition/tCompetition_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition_info.js
index 9972130..c83a226 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition_info.js
@@ -4,6 +4,7 @@
var language=1;
var TCarInfoDlg = {
tCarInfoData : {},
+ goodsPicArray1:[],
validateFields: {
carBrandId: {
validators: {
@@ -173,6 +174,7 @@
return;
}
var shopId = $("#shopId").val();
+ var shopIdString = shopId.join(",");
var name = $("#name").val();
if(name==""){
Feng.info("请输入赛事名称");
@@ -214,6 +216,21 @@
return;
}
+ var goodImgs = TCarInfoDlg.goodsPicArray1;
+ if(goodImgs.length==0){
+ Feng.info("请上传赛事活动图片")
+ return;
+ }
+ var imgOne ="";
+ for (let i = 0; i <goodImgs.length; i++) {
+ if(i==goodImgs.length-1){
+ imgOne += (goodImgs[i].response)
+ }else {
+ imgOne+=(goodImgs[i].response+",")
+ }
+
+ }
+
var coverDrawing = $("#coverDrawing").val();
var coverDrawing = $("#coverDrawing").val();
var registrationNotes = $("#registrationNotes").val()
@@ -242,7 +259,7 @@
});
ajax.set("provinceCode",pCode);
ajax.set("cityCode",cCode);
- ajax.set("storeId",shopId);
+ ajax.set("storeId",shopIdString);
ajax.set("name",name);
ajax.set("sTime",startTime);
ajax.set("eTime",endTime);
@@ -259,7 +276,7 @@
ajax.set("realName",realName);
ajax.set("coverDrawing",coverDrawing);
ajax.set("introduction",introduction);
- ajax.set("imgs",introduction);
+ ajax.set("imgs",imgOne);
ajax.set("registrationNotes",registrationNotes);
ajax.set("longitude", $("#longitude").val());
ajax.set("latitude", $("#latitude").val());
@@ -305,7 +322,6 @@
return;
}
var registerEndTime = $("#registerEndTime").val();
- let registerCondition = document.querySelector('input[name="registerCondition"]:checked').value;
var startAge = $("#startAge").val();
var endAge = $("#endAge").val();
var cashPrice = $("#cashPrice").val();
@@ -328,6 +344,26 @@
Feng.info("请输入赛事简介");
return;
}
+
+ var goodImgs = TCarInfoDlg.goodsPicArray1;
+
+ if(goodImgs.length==0){
+ Feng.info("请上传赛事活动图片")
+ return;
+ }
+ var imgOne ="";
+ console.log(goodImgs)
+ console.log(goodImgs.length)
+ for (let i = 0; i <goodImgs.length; i++) {
+ console.log(goodImgs[i].response,11)
+ if(i==goodImgs.length-1){
+ imgOne += (goodImgs[i].response)
+ }else {
+ imgOne+=(goodImgs[i].response+",")
+ }
+
+ }
+ console.log(imgOne)
var coverDrawing = $("#coverDrawing").val();
var coverDrawing = $("#coverDrawing").val();
@@ -358,7 +394,6 @@
ajax.set("sTime",startTime);
ajax.set("eTime",endTime);
ajax.set("rEndTime",registerEndTime);
- ajax.set("registerCondition",registerCondition);
ajax.set("startAge",startAge);
ajax.set("endAge",endAge);
ajax.set("cashPrice",cashPrice);
@@ -370,7 +405,7 @@
ajax.set("realName",realName);
ajax.set("coverDrawing",coverDrawing);
ajax.set("introduction",introduction);
- ajax.set("imgs",introduction);
+ ajax.set("imgs",imgOne);
ajax.set("registrationNotes",registrationNotes);
ajax.set("longitude", $("#longitude").val());
ajax.set("latitude", $("#latitude").val());
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/TStoreInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/TStoreInfo.js
new file mode 100644
index 0000000..329797c
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/TStoreInfo.js
@@ -0,0 +1,157 @@
+/**
+ * 管理初始化
+ */
+var TStoreProvince = {
+ id: "TStoreProvinceTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1,
+ storeList: []
+};
+
+/**
+ * 初始化表格的列
+ */
+TStoreProvince.initColumn = function () {
+ return [
+ {field: 'selectItem', checkbox: true},
+ {title: '选择', field: '', visible: true, align: 'center', valign: 'middle'},
+ {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '所属账号', field: 'accountName', visible: true, align: 'center', valign: 'middle'},
+ {title: '所在省市', field: 'provinceCity', visible: true, align: 'center', valign: 'middle'},
+ {title: '门店名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TStoreProvince.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TStoreProvince.seItem = selected[0];
+ return true;
+ }
+};
+
+
+TStoreProvince.storeOfClosePage = function (){
+ parent.layer.close(parent.layer.getFrameIndex(window.frameElement.id));
+}
+
+TStoreProvince.saveSelectStores = function (){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if (selected.length == 0) {
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }
+ var arr = [];
+ console.log('selected--->',selected)
+ for(var i in selected){
+ if(typeof selected[i].id != "undefined"){
+ arr.push({
+ id: selected[i].id,
+ provinceCity: typeof selected[i].provinceCity != "undefined" ? selected[i].provinceCity : "",
+ accountName: typeof selected[i].accountName != "undefined" ? selected[i].accountName : "",
+ name: typeof selected[i].name != "undefined" ? selected[i].name : ""
+ })
+ }
+ }
+ window.parent.TCarInfoDlg.selecUserOpt(arr);
+ TStoreProvince.storeOfClosePage();
+
+}
+
+
+
+/**
+ * 查询列表
+ */
+TStoreProvince.search = function () {
+ var queryData = {};
+
+ var provinceElement = document.getElementById("province");
+ var provinceId = provinceElement.value;
+
+ var cityElement = document.getElementById("city");
+ var cityElementId = cityElement.value;
+
+ queryData['provinceId'] = provinceId;
+ queryData['cityId'] = cityElementId;
+ queryData['cityManagerId'] = $("#userPopulation").val();
+ queryData['storeName'] = $("#storeName").val();
+ TStoreProvince.table.refresh({query: queryData});
+};
+
+
+/**
+ * 重置搜索
+ */
+TStoreProvince.resetSearch = function () {
+ var provinceSelect = document.getElementById("province");
+ provinceSelect.innerHTML = '<option value="">全部</option>';
+
+ var citySelect = document.getElementById("city");
+ citySelect.innerHTML = '<option value="">全部</option>';
+
+ queryProvince();
+
+ $("#userPopulation").val('');
+ $("#storeName").val('');
+ TStoreProvince.search();
+};
+
+function queryProvince(){
+ // 发送AJAX请求到后台获取省份数据
+ // 假设后台返回的数据格式为一个包含省份ID和名称的数组
+ var provinceSelect = document.getElementById("province");
+
+ var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getProvince", function(data){
+ data.forEach(province => {
+ var option = document.createElement("option");
+ option.value = province.id; // 根据你的数据结构确定省份的id字段
+ option.text = province.name; // 根据你的数据结构确定省份的name字段
+ provinceSelect.appendChild(option);
+ });
+ },function(data){
+ Feng.error("下拉失败!" + data.responseJSON.message + "!");
+ });
+ ajax.start();
+ provinceSelect.addEventListener("change", queryCity);
+}
+
+
+// 获取城市数据
+function queryCity() {
+ var selectedProvinceId = this.value; // 获取选择的省份ID
+ // 发送AJAX请求到后台获取对应省份的城市数据
+ // 假设后台返回的数据格式为一个包含城市ID和名称的数组
+
+ var citySelect = document.getElementById("city");
+ citySelect.innerHTML = "";
+ var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity", function(data){
+ data.forEach(province => {
+ var option = document.createElement("option");
+ option.value = province.id; // 根据你的数据结构确定省份的id字段
+ option.text = province.name; // 根据你的数据结构确定省份的name字段
+ citySelect.appendChild(option);
+ });
+ },function(data){
+ console.log('data:',data)
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set('province',selectedProvinceId);
+ ajax.start();
+}
+
+$(function () {
+ var defaultColunms = TStoreProvince.initColumn();
+ var table = new BSTable(TStoreProvince.id, "/tCouponManage/storeDetailsOfSearch", defaultColunms);
+ table.setPaginationType("client");
+ TStoreProvince.table = table.init();
+
+ queryProvince();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods.js
new file mode 100644
index 0000000..ebaab35
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods.js
@@ -0,0 +1,259 @@
+/**
+ * 车辆管理管理初始化
+ */
+var TPointProducts = {
+ id: "TPointProductsTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+var language =1
+/**
+ * 初始化表格的列
+ */
+TPointProducts.initColumn = function () {
+ return [
+ {field: 'selectItem', radio: true},
+ {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '商品名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
+ {title: '兑换地点', field: 'useScope', visible: true, align: 'center', valign: 'middle',
+ formatter: function (value, row, index) {
+ return {1: "全国", 2: "指定城市", 3: "指定门店"}[value]
+ }
+ },
+ {title: '用户人群', field: 'userPopulation', visible: true, align: 'center', valign: 'middle',
+ formatter: function (value, row, index) {
+ return {1: "全部用户", 2: "年度会员", 3: "已有学员用户"}[value]
+ }
+ },
+ {title: '发放数量', field: 'quantityIssued', visible: true, align: 'center', valign: 'middle'
+ },
+ {title: '限领数量', field: 'pickUpQuantity', visible: true, align: 'center', valign: 'middle'
+ },
+ {title: '已领数量', field: 'hasPickQty', visible: true, align: 'center', valign: 'middle'
+ },
+ {title: '已兑换数量', field: 'hasExchangeQty', visible: true, align: 'center', valign: 'middle'
+ },
+ {title: '排序', field: 'sort', visible: true, align: 'center', valign: 'middle'
+ },
+ {title: '审核状态', field: 'status', visible: true, align: 'center', valign: 'middle',
+ formatter: function (value, row, index) {
+ return { 2: "待审核", 3: "已拒绝"}[value]
+ }
+ },
+
+ ];
+};
+function currentTime(timestamp){
+ var time = timestamp + '';
+ if(time.length != 13){
+ timestamp = timestamp * 1000;
+ }
+ var date = new Date(timestamp);;
+ var Y = date.getFullYear() + '-';
+ var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+ var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
+
+ var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':';
+ var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':';
+ var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds());
+ var strDate = Y + M + D + h + m + s;
+ return strDate
+}
+
+function currentTime1(timestamp){
+ var time = timestamp + '';
+ if(time.length != 13){
+ timestamp = timestamp * 1000;
+ }
+ var date = new Date(timestamp);;
+ var Y = date.getFullYear() + '-';
+ var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+ var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
+
+ var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':';
+ var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':';
+ var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds());
+ var strDate = Y + M + D ;
+ return strDate
+}
+/**
+ * 检查是否选中
+ */
+TPointProducts.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TPointProducts.seItem = selected[0];
+ return true;
+ }
+};
+
+/**
+ * 添加
+ */
+TPointProducts.openAddTPointProducts = function () {
+ var index = layer.open({
+ type: 2,
+ title: '添加',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tGoods/tGoods_add'
+ });
+ this.layerIndex = index;
+};
+
+/**
+ * 查看详情
+ */
+TPointProducts.detail = function () {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title:'详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tGoods/goods_info/' + TPointProducts.seItem.id
+ });
+ this.layerIndex = index;
+ }
+};
+
+/**
+ * 购买详情
+ */
+TPointProducts.payDetail = function () {
+ if (this.check()) {
+ layer.open({
+ type: 1
+ , title: '审核'
+ , area: ['50%', '50%']
+ , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
+ , id: 'layerDemo' //防止重复弹出cge
+ , content: '<div class="form-horizontal">' +
+ ' <div class="col-sm-11" style="margin-top: 30px">' +
+ ' <div class="col-sm-11">' +
+ ' <div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label">审核状态:</label>\n' +
+ ' <div class="col-sm-9">\n' +
+ ' <input type="radio" name="type1" value="1" checked>通过 <input type="radio" name="type1" value="3">拒绝\n' +
+ ' </div>\n' +
+ ' </div>\n' +
+ ' <div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label">拒绝理由:</label>\n' +
+ ' <div class="col-sm-9">\n' +
+ ' <textarea id="remark" style="height: 193px; width: 368px;"></textarea>\n' +
+ ' </div>\n' +
+ ' </div>\n' +
+ ' </div>' +
+ ' </div>' +
+ '</div>'
+ , btn: ['保存', '取消']
+ , btnAlign: 'c' //按钮居中
+ , shade: 0.5 //不显示遮罩
+ , yes: function () {
+ var OBJradio= $("input[name='type1']:checked").val();
+ console.log(OBJradio)
+ let remark = $("#remark").val()
+ console.log(remark)
+ if(OBJradio==3){
+ if(remark==''){
+ Feng.info("请输入拒绝理由")
+ return;
+ }
+ }
+
+ var ajax = new $ax(Feng.ctxPath + "/tGoods/updateTypeOne", function (data) {
+ if (data.code == 200) {
+ Feng.success("操作成功!");
+ TPointProducts.table.refresh();
+ window.parent.layer.closeAll();
+ } else {
+ return Feng.error(data.msg);
+ }
+ }, function (data) {
+ return Feng.error("操作失败!");
+ });
+ ajax.set("id",TPointProducts.seItem.id)
+ ajax.set("type",OBJradio)
+ ajax.set("remark",remark)
+ ajax.start();
+ layer.closeAll();
+ },
+ });
+
+ }
+};
+
+/**
+ * 编辑页面
+ */
+TPointProducts.openEditPage = function () {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title:'编辑',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tGoods/tGoods_update/' + TPointProducts.seItem.id
+ });
+ this.layerIndex = index;
+ }
+}
+
+/**
+ * 上下架处理
+ * @param m
+ */
+TPointProducts.grounding = function (m) {
+ console.log('m:',m);
+ if (this.check()) {
+ var ajax = new $ax(Feng.ctxPath + "/tGoods/grounding", function (data) {
+ Feng.success("操作成功!");
+ TPointProducts.table.refresh();
+ }, function (data) {
+ Feng.error("操作失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("id",this.seItem.id);
+ ajax.set("type",m);
+ ajax.start();
+ }
+};
+
+
+
+/**
+ * 查询车辆管理列表
+ */
+TPointProducts.search = function () {
+ var queryData = {};
+ queryData['name'] = $("#name").val();
+ queryData['type'] = $("#type").val();
+ queryData['redemptionMethod'] = $("#redemptionMethod").val();
+ queryData['userPopulation'] = $("#userPopulation").val();
+ queryData['activeStatus'] = $("#activeStatus").val();
+ queryData['state'] = $("#state").val();
+ TPointProducts.table.refresh({query: queryData});
+};
+
+TPointProducts.resetSearch = function () {
+ $("#name").val("");
+ $("#type").val("");
+ $("#redemptionMethod").val("");
+ $("#userPopulation").val("");
+ $("#activeStatus").val("");
+ $("#state").val("");
+ TPointProducts.search();
+};
+
+$(function () {
+ var defaultColunms = TPointProducts.initColumn();
+ var table = new BSTable(TPointProducts.id, "/tGoods/listAudit", defaultColunms);
+ table.setPaginationType("client");
+ TPointProducts.table = table.init();
+});
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods_info.js
new file mode 100644
index 0000000..6bb63f6
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods_info.js
@@ -0,0 +1,804 @@
+/**
+ * 初始化车辆管理详情对话框
+ */
+var language=1;
+var TGoodsInfoDlg = {
+ tGoodsInfoData : {},
+ validateFields: {
+ },
+ goodsPicArray:[],
+ goodsPicArray1:[],
+ storeIds: [],
+
+};
+
+/**
+ * 验证数据是否为空
+ */
+TGoodsInfoDlg.validate = function () {
+ $('#carInfoForm').data("bootstrapValidator").resetForm();
+ $('#carInfoForm').bootstrapValidator('validate');
+ return $("#carInfoForm").data('bootstrapValidator').isValid();
+};
+
+/**
+ * 清除数据
+ */
+TGoodsInfoDlg.clearData = function() {
+ this.tGoodsInfoData = {};
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+TGoodsInfoDlg.set = function(key, val) {
+ this.tGoodsInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
+ return this;
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+TGoodsInfoDlg.get = function(key) {
+ return $("#" + key).val();
+}
+
+/**
+ * 关闭此对话框
+ */
+TGoodsInfoDlg.close = function() {
+ parent.layer.close(window.parent.TPointProducts.layerIndex);
+}
+
+
+/**
+ * 收集数据
+ */
+TGoodsInfoDlg.collectData = function() {
+ this
+ .set('id')
+ .set('isPlatCar')
+ .set('companyId')
+ .set('franchiseeId')
+ .set('carColor')
+ .set('carModelId')
+ .set('carBrandId')
+ .set('carLicensePlate')
+ .set('carPhoto')
+ .set('drivingLicenseNumber')
+ .set('drivingLicensePhoto')
+ .set('annualInspectionTime')
+ .set('commercialInsuranceTime')
+ .set('createTime')
+ .set('state')
+ .set('addType')
+ .set('addObjectId')
+ .set('plateColor')
+ .set('vehicleType')
+ .set('ownerName')
+ .set('engineId')
+ .set('VIN')
+ .set('certifyDateA')
+ .set('fuelType')
+ .set('engineDisplace')
+ .set('certificate')
+ .set('transAgency')
+ .set('transArea')
+ .set('transDateStart')
+ .set('transDateStop')
+ .set('certifyDateB')
+ .set('fixState')
+ .set('nextFixDate')
+ .set('checkState')
+ .set('feePrintId')
+ .set('GPSBrand')
+ .set('GPSModel')
+ .set('GPSIMEI')
+ .set('GPSInstallDate')
+ .set('registerDate')
+ .set('commercialType');
+}
+function storeList(){
+ var index = layer.open({
+ type: 2,
+ title: '门店列表',
+ area: ['80%', '80%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tGoods/storeList'
+ });
+ this.layerIndex = index;
+}
+TGoodsInfoDlg.selecUserOpt = function (arrays){
+ console.log(arrays)
+ //获取所有的值
+ var subArr= this.storeIds;
+ $(".timeClass").each(function () {
+ subArr.push($(this).find("input[name*='id']").val());
+ });
+ var str = '';
+ for(var i in arrays){
+ var b = true;
+ for(var j in subArr){
+ if(arrays[i].id === Number(subArr[j])){
+ b = false;
+ break
+ }
+ }
+ if(b){
+ this.storeIds.push(arrays[i].id)
+ str += '<tr class="timeClass">' +
+ '<td><input type="hidden" id="id" name="id" value="'+arrays[i].id+'"><input type="hidden" id="provinceCity" name="provinceCity" value="'+arrays[i].provinceCity+'">' + arrays[i].provinceCity + '</td>' +
+ '<td><input type="hidden" id="accountName" name="accountName" value="'+arrays[i].accountName+'">' + arrays[i].accountName + '</td>' +
+ '<td><input type="hidden" id="name" name="name" value="'+arrays[i].name+'">' + arrays[i].name + '</td><td><button onclick="deleteSub(this)">移除</button></td></tr>';
+ }
+ }
+ $("#coun").append(str);
+ console.log('storeIds',this.storeIds)
+}
+function deleteSub(e) {
+ console.log(e);
+ var row = $(e).closest('tr');
+ var value = row.find('#id').val();
+ TGoodsInfoDlg.storeIds.splice(TGoodsInfoDlg.storeIds.indexOf(parseInt(value)), 1)
+ $(e).parent().parent().remove();
+ console.log('storeIds',TGoodsInfoDlg.storeIds)
+}
+TGoodsInfoDlg.delete = function (o) {
+ $(o).parent("div").remove()
+}
+var num = 0;
+TGoodsInfoDlg.addBranch = function () {
+ num=num+1;
+ var a= "";
+ a = "<div style=\'margin-left: 25%\' class=\"col-sm-9 control-label\">\n" +
+ " <select class=\"col-sm-1\" id=\'provinceData"+num+"\' style=\"margin-top: 1%;width: 25%\" onchange=\'changeCity("+num+")\'>\n" +
+ " <option value=\"\">请选择</option>\n" +
+ " </select>\n" +
+ " <label class=\"col-sm-1\" style=\"width: 9%;margin-top: 7px\">省</label>\n" +
+ " <select class=\"col-sm-1\" style=\"margin-top: 1%;width: 25%\" id=\'cityData"+num+"\'>\n" +
+ " <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=\"TGoodsInfoDlg.delete(this)\" style=\"border: 0px;cursor: pointer;margin-top: 1%\"><i class=\"fa fa-trash\"></i></label>"+
+ " </div>";
+ $("#cityDemo").append($(a));
+ getProvince(num);
+}
+function changeCity(n){
+
+ var provinceSelect = null;
+ if (n === undefined || n === null || n === ''){
+ provinceSelect = document.getElementById("provinceData");
+ }else {
+ provinceSelect = document.getElementById("provinceData"+n);
+ }
+
+ var citySelect = null;
+ if (n === undefined || n === null || n === ''){
+ citySelect = document.getElementById("cityData");
+ }else {
+ citySelect = document.getElementById("cityData"+n);
+ }
+
+ var selectedProvince = provinceSelect.value;
+ // 清空城市下拉框
+ citySelect.innerHTML = '<option value="">请选择</option>';
+ if (selectedProvince === "") {
+ return;
+ }
+ var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity", function(data){
+ data.forEach(province => {
+ var option = document.createElement("option");
+ option.value = province.id; // 根据你的数据结构确定省份的id字段
+ option.text = province.name; // 根据你的数据结构确定省份的name字段
+ citySelect.appendChild(option);
+ });
+ },function(data){
+ console.log('data:',data)
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set('province',selectedProvince);
+ ajax.start();
+}
+function getProvince(n){
+ var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getProvince", function(data){
+ console.log(data)
+ var provinceSelect = null;
+ if (n === undefined || n === null || ''){
+ provinceSelect = document.getElementById("provinceData");
+ }else {
+ provinceSelect = document.getElementById("provinceData"+n);
+ }
+ data.forEach(province => {
+ var option = document.createElement("option");
+ option.value = province.id; // 根据你的数据结构确定省份的id字段
+ option.text = province.name; // 根据你的数据结构确定省份的name字段
+ provinceSelect.appendChild(option);
+ });
+ },function(data){
+ Feng.error("下拉失败!" + data.responseJSON.message + "!");
+ });
+ ajax.start();
+}
+/**
+ * 提交添加
+ */
+TGoodsInfoDlg.addSubmit = function() {
+
+ this.clearData();
+ this.collectData();
+ if(!this.validate()){
+ return ;
+ }
+
+ 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;
+ }
+ }
+ if(type==2){
+ integral = $("#integral1").val()
+ if(integral==''){
+ Feng.info("请填写所需积分")
+ return;
+ }
+ cash = $("#cash1").val()
+ if(cash==''){
+ Feng.info("请填写所需现金")
+ return;
+ }
+ }
+
+ 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();
+}
+
+
+/**
+ * 提交修改
+ */
+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)
+
+ let sort = $("#sort").val();
+
+ if (quantityIssued === undefined || quantityIssued === null || quantityIssued === ''){
+ return Feng.error('发放数量不能为空!');
+ }
+ if (pickUpQuantity === undefined || pickUpQuantity === null || pickUpQuantity === ''){
+ return Feng.error('限领数量不能为空!');
+ }
+ let quantityHas = $("#quantityHas").val();
+ if (quantityIssued <= quantityHas){
+ return Feng.error('发放数量小于已领数量!');
+ }
+
+
+ if (editor === undefined || editor === null || editor === ''){
+ return Feng.error('兑换说明不能为空!');
+ }
+ if (sort === undefined || sort === null || sort === ''){
+ return Feng.error('排序不能为空!');
+ }
+
+ //提交信息
+ 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("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", TGoodsInfoDlg.validateFields);
+ // 初始化图片上传
+ var carPhoto = new $WebUpload("cover");
+ carPhoto.setUploadBarId("progressBar");
+ carPhoto.init();
+ var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
+ drivingLicensePhoto.setUploadBarId("progressBar");
+ drivingLicensePhoto.init();
+ var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
+ drivingLicensePhoto.setUploadBarId("progressBar");
+ drivingLicensePhoto.init();
+ TGoodsInfoDlg.editor = UE.getEditor('editor');
+ TGoodsInfoDlg.editor1 = UE.getEditor('editor1');
+});
+
+/**
+ * 选择分公司后执行
+ */
+TGoodsInfoDlg.oneChange = function (e) {
+ var oneId=$(e).val();
+ var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){
+ if(data!=null){
+ if(language==1){
+ var content='<option value="">选择市</option>';
+ }else if(language==2){
+ var content='<option value="">Choose your franchisee</option>';
+ }else {
+ var content='<option value="">Pilih franchisee Anda</option>';
+ }
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.code+"'>"+v.name+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ ajax.set("oneId",oneId);
+ ajax.start();
+}
+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
+ */
+TGoodsInfoDlg.companyTypeClick = function (e) {
+ if (1 == e){
+ $(".companyDiv").hide();
+ } else if (2 == e){
+ $(".companyDiv").show();
+ }
+}
+
+/**
+ * 车辆品牌改变时执行
+ */
+TGoodsInfoDlg.brandChange = function (e) {
+ var carBrandId=$(e).val();
+ var ajax = new $ax(Feng.ctxPath + "/tCar/brandChange", function(data){
+ if(data!=null){
+ if(language==1){
+ var content='<option value="">选择车辆类型</option>';
+ }else if(language==2){
+ var content='<option value="">Please select the vehicle type</option>';
+ }else {
+ var content='<option value="">Pilih Jenis Kendaraan</option>';
+ }
+
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#carModelId").empty().append(content);
+ }
+ });
+ ajax.set("carBrandId",carBrandId);
+ ajax.start();
+}
+
+/**
+ * 专车服务被点击
+ */
+TGoodsInfoDlg.zcServerClick = function () {
+ var serverBox1 = $('#serverBox1').prop('checked');
+ if (serverBox1){
+ $("#zcModelDiv").show();
+ } else {
+ $("#zcModelDiv").hide();
+ }
+}
+
+/**
+ * 跨城服务被点击
+ */
+TGoodsInfoDlg.kcServerClick = function () {
+ var serverBox3 = $('#serverBox3').prop('checked');
+ if (serverBox3){
+ $("#kcModelDiv").show();
+ } else {
+ $("#kcModelDiv").hide();
+ }
+}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tPay_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tPay_info.js
new file mode 100644
index 0000000..2c49494
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tPay_info.js
@@ -0,0 +1,102 @@
+/**
+ * 管理初始化
+ */
+var TPayInfo = {
+ id: "TPayInfoTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1,
+};
+
+/**
+ * 初始化表格的列
+ */
+TPayInfo.initColumn = function () {
+ return [
+ {field: 'selectItem', radio: true},
+ {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '选择', field: '', visible: true, align: 'center', valign: 'middle'},
+ {title: '姓名', field: 'name', visible: true, align: 'center', valign: 'middle'},
+ {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]
+ }
+ },
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TPayInfo.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TPayInfo.seItem = selected[0];
+ return true;
+ }
+};
+
+
+/**
+ * 核销操作
+ * @constructor
+ */
+TPayInfo.WriteOff = function (){
+ 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",TPayInfo.seItem.id);
+ ajax.start();
+ }
+}
+
+
+/**
+ * 关闭此对话框
+ */
+TPayInfo.close = function() {
+ parent.layer.close(window.parent.TPointProducts.layerIndex);
+}
+
+
+/**
+ * 查询列表
+ */
+TPayInfo.search = function () {
+ var queryData = {};
+ queryData['name'] = $("#name").val();
+ queryData['phone'] = $("#phone").val();
+ queryData['status'] = $("#status").val();
+ queryData['id'] = $("#id").val();
+ TPayInfo.table.refresh({query: queryData});
+};
+
+
+/**
+ * 重置搜索
+ */
+TPayInfo.resetSearch = function () {
+ $("#name").val('');
+ $("#phone").val('');
+ $("#status").val('');
+ TPayInfo.search();
+};
+
+$(function () {
+ let goodsId = $("#id").val();
+ var defaultColunms = TPayInfo.initColumn();
+ var table = new BSTable(TPayInfo.id, "/tGoods/payList/"+goodsId, defaultColunms);
+ table.setPaginationType("client");
+ TPayInfo.table = table.init();
+});
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
index 4012ed7..9494de6 100644
--- 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
@@ -7,10 +7,13 @@
import com.dsh.other.model.BannerVo;
import com.dsh.other.service.GameService;
import com.dsh.other.service.IBannerService;
+import com.dsh.other.service.IRegionService;
+import com.dsh.other.service.TGameConfigService;
import com.dsh.other.util.ResultUtil;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -18,6 +21,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Map;
/**
* @author zhibing.pu
@@ -36,12 +40,51 @@
return games;
}
+ @Autowired
+ private IRegionService regionService;
@ResponseBody
@PostMapping("/save")
- public void save(@RequestBody Game game){
+ public Integer save(@RequestBody Game game){
+
+ Region city = regionService.getOne(new QueryWrapper<Region>().eq("code", game.getCityCode()));
+ game.setCity(city.getName());
+
+
+ Region province = regionService.getOne(new QueryWrapper<Region>().eq("code", game.getProvinceCode()));
+ game.setProvince(province.getName());
+
+
+
gameService.save(game);
+ System.out.println("==========="+game);
+ return game.getId();
+ }
+ @Autowired
+ private TGameConfigService config;
+
+
+ @ResponseBody
+ @PostMapping("/saveConfig")
+ public void saveConfig(@RequestBody List<TGameConfig> gameConfigList){
+ System.out.println("=======gameConfigList===="+gameConfigList);
+ config.saveBatch(gameConfigList);
+// return game.getId();
+ }
+
+ @ResponseBody
+ @PostMapping("/queryGame")
+ public Game queryGame(@RequestParam Integer id){
+ return gameService.getById(id);
+// return game.getId();
+ }
+
+ @ResponseBody
+ @PostMapping("/listorder")
+ public List<Map<String, Object>> listorder(@RequestBody BookingQuery bookingQuery){
+ return gameService.orderlist(bookingQuery);
+// return game.getId();
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java
new file mode 100644
index 0000000..e9ff656
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java
@@ -0,0 +1,265 @@
+package com.dsh.other.controller;
+
+import cn.hutool.http.HttpRequest;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.other.entity.TGame;
+import com.dsh.other.entity.TGameConfig;
+import com.dsh.other.entity.TGameRecord;
+import com.dsh.other.feignclient.account.AppUserClient;
+import com.dsh.other.feignclient.account.model.AppUser;
+import com.dsh.other.model.QueryMySiteVo;
+import com.dsh.other.service.TGameConfigService;
+import com.dsh.other.service.TGameRecordService;
+import com.dsh.other.service.TGameService;
+import com.dsh.other.util.*;
+import com.dsh.other.util.httpClinet.HttpResult;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@RestController
+@RequestMapping("/api/game")
+public class GameController {
+
+ @Autowired
+ private TGameRecordService gameRecordService;
+
+ @Autowired
+ private TGameService gameService;
+
+ @Autowired
+ private TGameConfigService gameConfigService;
+
+ @Autowired
+ private TokenUtil tokenUtil;
+
+ @Autowired
+ private AppUserClient appUserClient;
+
+ @Autowired
+ private PayMoneyUtil payMoneyUtil;
+
+
+ @ResponseBody
+ @PostMapping("/queryGameList")
+ @ApiOperation(value = "获取当前场地的游戏列表配置", tags = {"用户—游戏"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(value = "siteId", name = "siteId", dataType = "int", required = true),
+ @ApiImplicitParam(value = "storeId", name = "storeId", dataType = "int", required = true),
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ })
+ public ResultUtil<List<TGameConfig>> queryGameList(Integer siteId, Integer storeId){
+ try {
+ List<TGameConfig> tGameConfigs = new ArrayList<>();
+
+ List<TGame> list = gameService.list(new LambdaQueryWrapper<TGame>().eq(TGame::getSiteId, siteId).eq(TGame::getStoreId, storeId));
+ if(list.size()>0){
+ Integer id = list.get(0).getId();
+ tGameConfigs = gameConfigService.list(new LambdaQueryWrapper<TGameConfig>().eq(TGameConfig::getOtherId, id));
+ }
+ return ResultUtil.success(tGameConfigs);
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.runErr();
+ }
+ }
+
+
+ @ResponseBody
+ @PostMapping("/payGame")
+ @ApiOperation(value = "支付游戏", tags = {"用户—游戏"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(value = "三方游戏id", name = "gameId", dataType = "int", required = true),
+ @ApiImplicitParam(value = "游戏配置id", name = "configId", dataType = "int", required = true),
+ @ApiImplicitParam(value = "sutuId", name = "sutuId", dataType = "int", required = true),
+ @ApiImplicitParam(value = "spaceId", name = "spaceId", dataType = "int", required = true),
+ @ApiImplicitParam(value = "1微信 2支付宝 3玩湃币", name = "type", dataType = "int", required = true),
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ })
+ public ResultUtil payGame(Integer gameId, Integer configId,Integer type,Integer sutuId,Integer spaceId){
+ try {
+ Integer uid = tokenUtil.getUserIdFormRedis();
+ if(null == uid){
+ return ResultUtil.tokenErr();
+ }
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
+ TGameConfig config = gameConfigService.getById(configId);
+ TGameRecord tGameRecord = new TGameRecord();
+ tGameRecord.setGameId(gameId);
+ tGameRecord.setPayType(type);
+ tGameRecord.setUserId(uid);
+ tGameRecord.setNumber(code);
+ gameRecordService.save(tGameRecord);
+ if(type==1){
+ ResultUtil weixinpay = payMoneyUtil.weixinpay("游戏支付", "", code, config.getCash().toString(), "/base/course/weChatPaymentCourseCallback", "APP", "");
+ if(weixinpay.getCode() == 200){
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ int num = 1;
+ int wait = 0;
+ while (num <= 10){
+ int min = 5000;
+ wait += (min * num);
+ Thread.sleep(wait);
+ List<TGameRecord> list = gameRecordService.list(new QueryWrapper<TGameRecord>().eq("code", code).eq("payType", 2));
+ TGameRecord one = list.get(0);
+
+ if(one.getStatus() == 1){
+ break;
+ }
+ ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, "");
+ if(resultUtil.getCode() == 200 && one.getStatus() == 0){
+ /**
+ * SUCCESS—支付成功,
+ * REFUND—转入退款,
+ * NOTPAY—未支付,
+ * CLOSED—已关闭,
+ * REVOKED—已撤销(刷卡支付),
+ * USERPAYING--用户支付中,
+ * PAYERROR--支付失败(其他原因,如银行返回失败)
+ */
+ Map<String, String> data1 = resultUtil.getData();
+ String s = data1.get("trade_state");
+ String transaction_id = data1.get("transaction_id");
+ if("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10){
+ break;
+ }
+ if("SUCCESS".equals(s)){
+ for (TGameRecord coursePackagePayment : list) {
+ coursePackagePayment.setStatus(1);
+ coursePackagePayment.setOrderNo(transaction_id);
+ }
+ gameRecordService.updateBatchById(list);
+ Integer integer = startGame(uid, gameId, spaceId, sutuId);
+ break;
+ }
+ if("USERPAYING".equals(s)){
+ num++;
+ }
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ return weixinpay;
+ }else if(type==2){
+ ResultUtil alipay = payMoneyUtil.alipay("游戏支付", "游戏支付", "", code, config.getCash().toString(), "/base/course/aliPaymentCourseCallback");
+ if(alipay.getCode() == 200){
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ int num = 1;
+ int wait = 0;
+ while (num <= 10){
+ int min = 5000;
+ wait += (min * num);
+ Thread.sleep(wait);
+ List<TGameRecord> list = gameRecordService.list(new QueryWrapper<TGameRecord>().eq("code", code).eq("payType", 3));
+ TGameRecord one = list.get(0);
+ if(one.getStatus() == 1){
+ break;
+ }
+ ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
+ if(resultUtil.getCode() == 200 && one.getStatus() == 0){
+ /**
+ * WAIT_BUYER_PAY(交易创建,等待买家付款)、
+ * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
+ * TRADE_SUCCESS(交易支付成功)、
+ * TRADE_FINISHED(交易结束,不可退款)
+ */
+ Map<String, String> data1 = resultUtil.getData();
+ String s = data1.get("tradeStatus");
+ String tradeNo = data1.get("tradeNo");
+ if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){
+ break;
+ }
+ if("TRADE_SUCCESS".equals(s)){
+ for (TGameRecord coursePackagePayment : list) {
+ coursePackagePayment.setStatus(1);
+ coursePackagePayment.setOrderNo(tradeNo);
+ }
+ gameRecordService.updateBatchById(list);
+ Integer integer = startGame(uid, gameId, spaceId, sutuId);
+ break;
+ }
+ if("WAIT_BUYER_PAY".equals(s)){
+ num++;
+ }
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ return alipay;
+ }else if(type==3){
+ AppUser appUser = appUserClient.queryAppUser(uid);
+ Integer playPaiCoins = appUser.getPlayPaiCoins();
+ BigDecimal playCoin = config.getPlayCoin();
+ int i = playCoin.intValue();
+ if(playPaiCoins<i){
+ return ResultUtil.error("玩湃币不足");
+ }
+ int i1 = playPaiCoins - i;
+ appUser.setPlayPaiCoins(i1);
+ appUserClient.updateAppUser(appUser);
+ startGame(uid,gameId,spaceId,sutuId);
+ return ResultUtil.success();
+
+ }else {
+ return ResultUtil.error("支付方式错误");
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.runErr();
+ }
+
+
+
+ }
+
+
+ private static Integer startGame(Integer uid,Integer gameId,Integer spaceId,Integer sutuId){
+ HashMap<String, String> map = new HashMap<>();
+ map.put("sign","0DB011836143EEE2C2E072967C9F4E4B");
+ map.put("app_user_id",uid+"");
+ map.put("game_id",gameId+"");
+ map.put("space_id",spaceId+"");
+ map.put("sutu_id",sutuId+"");
+
+ String s = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/gameStart", map);
+ JSONObject jsonObject = JSONObject.parseObject(s);
+ Object code = jsonObject.get("code");
+ if(String.valueOf(code)!=null && "200".equals(String.valueOf(code))){
+ return 200;
+ }else {
+ return 500;
+ }
+ }
+
+
+ public static void main(String[] args) {
+ Integer integer = startGame(1, 13, 1001, 1001);
+ System.out.println(integer);
+ }
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
index 5c0343c..5082c8b 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -1,5 +1,9 @@
package com.dsh.other.controller;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.other.entity.Site;
import com.dsh.other.entity.SiteBooking;
@@ -118,6 +122,33 @@
}
}
+
+ /**
+ * 添加场地管理
+ * @return
+ */
+ @RequestMapping("/base/site/addSiteBooking")
+ public Object addSiteBooking(@RequestBody SiteBooking siteBooking){
+ if(siteBooking.getId()!= null ){
+
+ return siteBookingService.updateById(siteBooking);
+ }else {
+ return siteBookingService.save(siteBooking);
+ }
+ }
+
+ @RequestMapping("/base/site/listById")
+ public Site listById(@RequestParam("id") Integer id){
+ Site byId = siteService.getById(id);
+ return byId;
+ }
+
+
+ @RequestMapping("/base/site/listBooks")
+ public List<SiteBooking> listBooks(@RequestParam("id") Integer id){
+ List<SiteBooking> siteId = siteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id));
+ return siteId;
+ }
@ResponseBody
@PostMapping("/base/site/querySiteType")
@ApiOperation(value = "获取场地类型", tags = {"用户—预约场地"})
@@ -320,16 +351,38 @@
@ApiImplicitParam(value = "id", name = "id", dataType = "int", required = true),
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
})
- public ResultUtil<SiteBooking> queryMySiteById(Integer id){
+ public ResultUtil<Map<String,Object>> queryMySiteById(Integer id){
try {
+ HashMap<String, Object> map = new HashMap<>();
SiteBooking byId = siteBookingService.getById(id);
- return ResultUtil.success(byId);
+ List<Integer> ids = getIds(byId.getSiteId());
+ map.put("data",byId);
+ map.put("ids",ids);
+ return ResultUtil.success(map);
}catch (Exception e){
e.printStackTrace();
return ResultUtil.runErr();
}
}
+ public List<Integer> getIds(Integer siteId) {
+ HttpRequest httpRequest = HttpRequest.get("https://try.daowepark.com/v7/user_api/general/get_space_area?space_id=" + siteId);
+ HttpResponse execute = httpRequest.execute();
+ String body = execute.body();
+ JSONObject jsonObject = JSONObject.parseObject(body);
+ Object data = jsonObject.get("data");
+ JSONArray array = JSONArray.parseArray(data.toString());
+ List<Integer> ids =new ArrayList<>();
+ for (Object o : array) {
+ JSONObject jsonObject1 = JSONObject.parseObject(o.toString());
+ Object id = jsonObject1.get("id");
+ Integer integer = Integer.valueOf(id.toString());
+ ids.add(integer);
+ }
+ return ids;
+
+ }
+
@ResponseBody
@PostMapping("/api/site/cancelMySite")
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java
index 025c33d..2f445f8 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java
@@ -39,7 +39,7 @@
return ResultUtil.paranErr("storeId");
}
try {
- List<StoreConfig> list = storeConfigService.list(new QueryWrapper<StoreConfig>().eq("storeId", storeId).orderByAsc("sort"));
+ List<StoreConfig> list = storeConfigService.list(new QueryWrapper<StoreConfig>().eq("storeId", storeId).orderByAsc("sort").eq("isOpen",1));
List<StoreConfigVo> listVo = new ArrayList<>();
for (StoreConfig storeConfig : list) {
StoreConfigVo storeConfigVo = new StoreConfigVo();
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/BookingQuery.java b/cloud-server-other/src/main/java/com/dsh/other/entity/BookingQuery.java
new file mode 100644
index 0000000..4bbde6e
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/BookingQuery.java
@@ -0,0 +1,19 @@
+package com.dsh.other.entity;
+
+import lombok.Data;
+
+@Data
+public class BookingQuery {
+ String provinceCode;
+ String cityCode;
+
+ String store;
+
+ String peopleName;
+ String phone;
+ String date;
+ Integer state;
+ Integer payMethod;
+
+
+}
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
index 0f64bb9..ebc2d76 100644
--- 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
@@ -20,6 +20,7 @@
private Integer id;
@TableField("operationId")
private Integer operationId;
+ @TableField(exist = false)
private String operation;
@TableField("province")
private String province;
@@ -31,10 +32,11 @@
private String cityCode;
@TableField("storeId")
private Integer storeId;
+ @TableField(exist = false)
private String store;
@TableField("siteId")
private Integer siteId;
-
+ @TableField(exist = false)
private String site;
@TableField("blue")
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java b/cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java
index f5527a8..cbdb629 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java
@@ -176,4 +176,7 @@
private String halfName;
@TableField("goType")
private Integer goType;
+ @TableField("money")
+
+ private String money;
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/TGameConfig.java b/cloud-server-other/src/main/java/com/dsh/other/entity/TGameConfig.java
index a25f44a..b679fbd 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/entity/TGameConfig.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/TGameConfig.java
@@ -61,6 +61,9 @@
*/
@TableField("gameId")
private Integer gameId;
+ @TableField("otherId")
+ private Integer otherId;
+
@Override
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/TGameRecord.java b/cloud-server-other/src/main/java/com/dsh/other/entity/TGameRecord.java
new file mode 100644
index 0000000..ab36246
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/TGameRecord.java
@@ -0,0 +1,65 @@
+package com.dsh.other.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-10-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_game_record")
+public class TGameRecord extends Model<TGameRecord> {
+
+ private static final long serialVersionUID=1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @TableField("userId")
+ private Integer userId;
+
+ @TableField("gameId")
+ private Integer gameId;
+
+ /**
+ * 1玩湃币 2微信 3支付宝
+ */
+ @TableField("payType")
+ private Integer payType;
+
+ /**
+ * 金额
+ */
+ private BigDecimal money;
+
+ /**
+ * 0待支付 1已支付
+ */
+ private Integer status;
+
+ private String number;
+ @TableField("orderNo")
+ private String orderNo;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/TStoreOtherConfigTrue.java b/cloud-server-other/src/main/java/com/dsh/other/entity/TStoreOtherConfigTrue.java
index 7492083..f0cfac2 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/entity/TStoreOtherConfigTrue.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/TStoreOtherConfigTrue.java
@@ -33,7 +33,8 @@
/**
* 图片
*/
- private String url;
+ @TableField("url")
+ private String backgroundImage;
/**
* 跳转模块
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
index d37627b..9ae5c8a 100644
--- 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
@@ -2,10 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.other.entity.BallQueryDto;
+import com.dsh.other.entity.BookingQuery;
import com.dsh.other.entity.Game;
import com.dsh.other.entity.Notice;
import java.util.List;
+import java.util.Map;
/**
* <p>
@@ -18,4 +20,6 @@
public interface GameMapper extends BaseMapper<Game> {
List<Game> queryAll(BallQueryDto ballQueryDto);
+
+ List<Map<String, Object>> orderlist(BookingQuery bookingQuery);
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/TGameRecordMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/TGameRecordMapper.java
new file mode 100644
index 0000000..a799475
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/TGameRecordMapper.java
@@ -0,0 +1,17 @@
+package com.dsh.other.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.other.entity.TGameRecord;
+
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-10-07
+ */
+public interface TGameRecordMapper extends BaseMapper<TGameRecord> {
+
+}
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
index 0d275e4..e11ad70 100644
--- 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
@@ -2,10 +2,12 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.other.entity.BallQueryDto;
+import com.dsh.other.entity.BookingQuery;
import com.dsh.other.entity.Game;
import com.dsh.other.entity.Protocol;
import java.util.List;
+import java.util.Map;
/**
* @author zhibing.pu
@@ -13,4 +15,6 @@
*/
public interface GameService extends IService<Game> {
List<Game> queryAll(BallQueryDto ballQueryDto);
+
+ List<Map<String, Object>> orderlist(BookingQuery bookingQuery);
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/TGameRecordService.java b/cloud-server-other/src/main/java/com/dsh/other/service/TGameRecordService.java
new file mode 100644
index 0000000..e860e98
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/TGameRecordService.java
@@ -0,0 +1,17 @@
+package com.dsh.other.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.other.entity.TGameRecord;
+
+/**
+ * <p>
+ * 服务类
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-10-07
+ */
+public interface TGameRecordService extends IService<TGameRecord> {
+
+}
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
index d95dd0d..88df77e 100644
--- 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
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.other.entity.BallQueryDto;
+import com.dsh.other.entity.BookingQuery;
import com.dsh.other.entity.Game;
import com.dsh.other.entity.Notice;
import com.dsh.other.mapper.GameMapper;
@@ -11,6 +12,7 @@
import org.springframework.stereotype.Service;
import java.util.List;
+import java.util.Map;
/**
* <p>
@@ -27,4 +29,9 @@
public List<Game> queryAll(BallQueryDto ballQueryDto) {
return this.baseMapper.queryAll(ballQueryDto);
}
+
+ @Override
+ public List<Map<String, Object>> orderlist(BookingQuery bookingQuery) {
+ return this.baseMapper.orderlist(bookingQuery);
+ }
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/TGameRecordServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/TGameRecordServiceImpl.java
new file mode 100644
index 0000000..9e5decb
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/TGameRecordServiceImpl.java
@@ -0,0 +1,21 @@
+package com.dsh.other.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.other.entity.TGameRecord;
+import com.dsh.other.mapper.TGameRecordMapper;
+import com.dsh.other.service.TGameRecordService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-10-07
+ */
+@Service
+public class TGameRecordServiceImpl extends ServiceImpl<TGameRecordMapper, TGameRecord> implements TGameRecordService {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/HttpRequestUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/HttpRequestUtil.java
new file mode 100644
index 0000000..a6791cd
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/util/HttpRequestUtil.java
@@ -0,0 +1,254 @@
+package com.dsh.other.util;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.SimpleHttpConnectionManager;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.security.MessageDigest;
+import java.util.Map;
+
+public class HttpRequestUtil {
+
+ public static String postRequest(String url, Map<String, String> params) {
+ // 构造HttpClient的实例
+ HttpClient httpClient = new HttpClient();
+ // 创建POST方法的实例
+ PostMethod postMethod = new PostMethod(url);
+ // 设置请求头信息
+ postMethod.setRequestHeader("Connection", "close");
+ postMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
+ // 添加参数
+ for (Map.Entry<String, String> entry : params.entrySet()) {
+ postMethod.addParameter(entry.getKey(), entry.getValue());
+ }
+ // 使用系统提供的默认的恢复策略,设置请求重试处理,用的是默认的重试处理:请求三次
+ httpClient.getParams().setBooleanParameter("http.protocol.expect-continue", false);
+ // 接收处理结果
+ String result = null;
+ try {
+ // 执行Http Post请求
+ httpClient.executeMethod(postMethod);
+ // 返回处理结果
+ result = postMethod.getResponseBodyAsString();
+ } catch (HttpException e) {
+ // 发生致命的异常,可能是协议不对或者返回的内容有问题
+ System.out.println("请检查输入的URL!");
+ e.printStackTrace();
+ } catch (IOException e) {
+ // 发生网络异常
+ System.out.println("发生网络异常!");
+ e.printStackTrace();
+ } finally {
+ // 释放链接
+ postMethod.releaseConnection();
+ // 关闭HttpClient实例
+ if (httpClient != null) {
+ ((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown();
+ httpClient = null;
+ }
+ }
+ return result;
+ }
+ public static String postRequest1(String url, Map<String, String> params,String appKey,String appSecret) {
+ // 构造HttpClient的实例
+ HttpClient httpClient = new HttpClient();
+ // 创建POST方法的实例
+ PostMethod postMethod = new PostMethod(url);
+ // 设置请求头信息
+ String nonce = String.valueOf(Double.valueOf(Math.random() * 1000000.0D).intValue());
+ String timeMillis = String.valueOf(System.currentTimeMillis());
+ String signature = string2Sha1(appSecret + nonce + timeMillis);
+ postMethod.setRequestHeader("Host", "api-cn.ronghub.com");
+ postMethod.setRequestHeader("App-Key", appKey);
+ postMethod.setRequestHeader("Signature", signature);
+ postMethod.setRequestHeader("Nonce", nonce);
+ postMethod.setRequestHeader("Timestamp", timeMillis);
+ postMethod.setRequestHeader("Host", "api-cn.ronghub.com");
+ postMethod.addRequestHeader("Content-Type", "application/json");
+ // 添加参数
+ for (Map.Entry<String, String> entry : params.entrySet()) {
+ postMethod.addParameter(entry.getKey(), entry.getValue());
+ }
+ // 使用系统提供的默认的恢复策略,设置请求重试处理,用的是默认的重试处理:请求三次
+ httpClient.getParams().setBooleanParameter("http.protocol.expect-continue", false);
+ // 接收处理结果
+ String result = null;
+ try {
+ // 执行Http Post请求
+ httpClient.executeMethod(postMethod);
+ // 返回处理结果
+ result = postMethod.getResponseBodyAsString();
+ } catch (HttpException e) {
+ // 发生致命的异常,可能是协议不对或者返回的内容有问题
+ System.out.println("请检查输入的URL!");
+ e.printStackTrace();
+ } catch (IOException e) {
+ // 发生网络异常
+ System.out.println("发生网络异常!");
+ e.printStackTrace();
+ } finally {
+ // 释放链接
+ postMethod.releaseConnection();
+ // 关闭HttpClient实例
+ if (httpClient != null) {
+ ((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown();
+ httpClient = null;
+ }
+ }
+ return result;
+ }
+ private static String string2Sha1(String str){
+ if(str==null||str.length()==0){
+ return null;
+ }
+ char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9',
+ 'a','b','c','d','e','f'};
+ try {
+ MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
+ mdTemp.update(str.getBytes("UTF-8"));
+
+ byte[] md = mdTemp.digest();
+ int j = md.length;
+ char buf[] = new char[j*2];
+ int k = 0;
+ for (int i = 0; i < j; i++) {
+ byte byte0 = md[i];
+ buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
+ buf[k++] = hexDigits[byte0 & 0xf];
+ }
+ return new String(buf);
+ } catch (Exception e) {
+ // TODO: handle exception
+ return null;
+ }
+ }
+ public static String getRequest(String url, Map<String, String> params) {
+ // 构造HttpClient实例
+ HttpClient client = new HttpClient();
+ // 拼接参数
+ String paramStr = "";
+ for (String key : params.keySet()) {
+ paramStr = paramStr + "&" + key + "=" + params.get(key);
+ }
+ paramStr = paramStr.substring(1);
+ // 创建GET方法的实例
+ GetMethod method = new GetMethod(url + "?" + paramStr);
+ // 接收返回结果
+ String result = null;
+ try {
+ // 执行HTTP GET方法请求
+ client.executeMethod(method);
+ // 返回处理结果
+ result = method.getResponseBodyAsString();
+ } catch (HttpException e) {
+ // 发生致命的异常,可能是协议不对或者返回的内容有问题
+ System.out.println("请检查输入的URL!");
+ e.printStackTrace();
+ } catch (IOException e) {
+ // 发生网络异常
+ System.out.println("发生网络异常!");
+ e.printStackTrace();
+ } finally {
+ // 释放链接
+ method.releaseConnection();
+ // 关闭HttpClient实例
+ if (client != null) {
+ ((SimpleHttpConnectionManager) client
+ .getHttpConnectionManager()).shutdown();
+ client = null;
+ }
+ }
+ return result;
+ }
+
+
+ /**
+ * 发送网络请求
+ * @param url
+ * @return
+ */
+ public static String sendNetRequest(String url, Map<String, String> params) {
+ // 构造HttpClient实例
+ HttpClient client = new HttpClient();
+ String paramStr = "";
+ for (String key : params.keySet()) {
+ paramStr = paramStr + "&" + key + "=" + params.get(key);
+ }
+ paramStr = paramStr.substring(1);
+ System.err.println(url + "?" + paramStr);
+ // 创建GET方法的实例
+ GetMethod method = new GetMethod(url + "?" + paramStr);
+ // 接收返回结果
+ String result = null;
+ try {
+ // 执行HTTP GET方法请求
+ client.executeMethod(method);
+ // 返回处理结果
+ result = method.getResponseBodyAsString();
+ } catch (HttpException e) {
+ // 发生致命的异常,可能是协议不对或者返回的内容有问题
+ System.out.println("请检查输入的URL!");
+ e.printStackTrace();
+ } catch (IOException e) {
+ // 发生网络异常
+ System.out.println("发生网络异常!");
+ e.printStackTrace();
+ } finally {
+ // 释放链接
+ method.releaseConnection();
+ // 关闭HttpClient实例
+ if (client != null) {
+ ((SimpleHttpConnectionManager) client.getHttpConnectionManager()).shutdown();
+ client = null;
+ }
+ }
+ return result;
+ }
+
+
+
+ /**
+ * jsonp跨域请求数据响应<br/>
+ * 方法名:responsejsonpData<br/>
+ * @author:Mryang<br/>
+ * @createTime:2016年7月31日-下午11:17:31 <br/>
+ * @tel: 15198268054<br/>
+ * @param request
+ * @param response
+ * @param map void<br/>
+ * @exception <br/>
+ * @since 1.0.0
+ */
+ public void responsejsonpData(HttpServletRequest request, HttpServletResponse response, Map<String, Object> map) {
+ response.setCharacterEncoding("UTF-8");
+ response.setHeader("Content-Type", "text/html;Charset=utf-8");
+ try {
+ PrintWriter writer = response.getWriter();
+ String params = request.getParameter("callback");
+ String json = JSONObject.toJSONString(map);
+ writer.print(params+ "("+json+")");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/cloud-server-other/src/main/resources/mapper/GameMapper.xml b/cloud-server-other/src/main/resources/mapper/GameMapper.xml
index 59b4d6c..fb0656a 100644
--- a/cloud-server-other/src/main/resources/mapper/GameMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/GameMapper.xml
@@ -31,4 +31,15 @@
</select>
+ <select id="orderlist" resultType="map">
+ SELECT *,st.`name` as storeName,si.`name` as siteName,CONCAT(DATE_FORMAT(bk.startTime, '%Y-%m-%d %H:%i:%s'), ' - ', TIME_FORMAT(bk.endTime, '%H:%i:%s')) AS timeRange
+ FROM t_site_booking bk
+ LEFT JOIN t_store st on bk.storeId = st.id
+ LEFT JOIN t_site si on bk.siteId = si.id
+
+
+
+
+
+ </select>
</mapper>
diff --git a/cloud-server-other/src/main/resources/mapper/TGameRecordMapper.xml b/cloud-server-other/src/main/resources/mapper/TGameRecordMapper.xml
new file mode 100644
index 0000000..12269bc
--- /dev/null
+++ b/cloud-server-other/src/main/resources/mapper/TGameRecordMapper.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.other.mapper.TGameRecordMapper">
+
+
+</mapper>
diff --git a/logs/mb-cloud-management/2023-10/debug.2023-10-07.0.log117386460201400.tmp b/logs/mb-cloud-management/2023-10/debug.2023-10-07.0.log117386460201400.tmp
new file mode 100644
index 0000000..cfb605b
--- /dev/null
+++ b/logs/mb-cloud-management/2023-10/debug.2023-10-07.0.log117386460201400.tmp
@@ -0,0 +1,79 @@
+2023-10-07 10:04:22,469 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3234f74e, started on Sat Oct 07 08:49:39 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 10:05:53,995 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 10:04:33 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 10:07:24,264 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@38be305c, started on Sat Oct 07 10:06:03 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 10:22:23,717 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 10:07:28 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 10:24:10,440 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 10:22:45 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 10:26:19,281 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 10:24:14 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 10:30:41,568 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 10:26:26 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 10:31:52,915 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 10:30:48 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 10:34:33,275 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 10:31:58 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 10:57:27,183 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 10:34:36 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 10:58:13,976 [http-nio-5006-exec-2] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.other.BallClient.listorder] serviceId:[mb-cloud-other] message:[[500 Internal Server Error] during [POST] to [http://mb-cloud-other/listorder] [BallClient#listorder(BookingQuery)]: [{"code":"1","msg":"操作失败","data":null}]]
+2023-10-07 10:58:18,246 [http-nio-5006-exec-3] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.other.BallClient.listorder] serviceId:[mb-cloud-other] message:[[500 Internal Server Error] during [POST] to [http://mb-cloud-other/listorder] [BallClient#listorder(BookingQuery)]: [{"code":"1","msg":"操作失败","data":null}]]
+2023-10-07 10:58:33,368 [http-nio-5006-exec-4] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.other.BallClient.listorder] serviceId:[mb-cloud-other] message:[[500 Internal Server Error] during [POST] to [http://mb-cloud-other/listorder] [BallClient#listorder(BookingQuery)]: [{"code":"1","msg":"操作失败","data":null}]]
+2023-10-07 10:59:02,597 [http-nio-5006-exec-5] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.other.BallClient.listorder] serviceId:[mb-cloud-other] message:[[500 Internal Server Error] during [POST] to [http://mb-cloud-other/listorder] [BallClient#listorder(BookingQuery)]: [{"code":"1","msg":"操作失败","data":null}]]
+2023-10-07 10:59:51,368 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 10:57:35 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 15:22:05,394 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 10:59:58 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 15:23:50,215 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 15:22:13 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 15:25:10,547 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@38be305c, started on Sat Oct 07 15:23:54 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 15:26:33,318 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 15:25:14 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 15:28:17,566 [http-nio-5006-exec-5] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.activity.CouponClient.getCouponExamineListOfSearch] serviceId:[mb-cloud-activity] message:[Error while extracting response for type [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Object>>` out of START_OBJECT token
+ at [Source: (PushbackInputStream); line: 1, column: 1]]
+2023-10-07 15:29:23,546 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 15:26:40 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 15:32:36,756 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 15:29:27 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 15:36:12,483 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 15:32:40 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 15:39:18,640 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@38be305c, started on Sat Oct 07 15:36:16 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 16:02:56,756 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@38be305c, started on Sat Oct 07 15:39:23 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 16:05:01,636 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 16:03:03 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:11:18,273 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 16:05:05 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:14:10,192 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 16:11:22 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:14:31,810 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 16:14:13 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:17:02,515 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:14:35 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:17:18,494 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 16:17:06 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:18:40,704 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:17:22 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:19:44,311 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:18:44 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:21:49,158 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3234f74e, started on Sat Oct 07 16:19:48 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:22:33,610 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@38be305c, started on Sat Oct 07 16:21:54 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 16:23:24,059 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 16:22:37 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:24:40,590 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 16:23:27 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:25:34,814 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:24:44 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:26:37,875 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:25:38 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:27:52,826 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 16:26:41 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:30:52,615 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:27:56 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:33:00,881 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:30:56 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:34:47,898 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 16:33:07 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:36:06,645 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:34:51 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:40:07,849 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:36:11 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:41:27,309 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:40:24 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 16:43:05,729 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:41:30 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:52:04,274 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@38be305c, started on Sat Oct 07 16:43:18 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 16:54:07,502 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:52:11 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:54:59,117 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 16:54:11 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 16:56:04,700 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:55:02 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 17:34:02,105 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 16:56:08 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 17:35:48,103 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 17:34:12 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 17:36:42,918 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 17:35:54 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 17:38:09,147 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 17:36:46 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 17:56:43,048 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@38be305c, started on Sat Oct 07 17:47:41 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 17:58:44,509 [http-nio-5006-exec-2] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.course.CoursePackageClient.queryCoursePackageLists] serviceId:[mb-cloud-course] message:[Read timed out executing POST http://mb-cloud-course/coursePackage/queryCoursePackageLists]
+2023-10-07 17:58:47,966 [http-nio-5006-exec-5] ERROR [c.m.c.c.sentinel.fallback.DefaultFeignFallback] DefaultFeignFallback.java:54 - FunFeignFallback:[com.dsh.course.feignClient.account.AppUserClient.queryWebUser] serviceId:[mb-cloud-account] message:[Read timed out executing POST http://mb-cloud-account/student/webStudentList]
+2023-10-07 17:58:52,954 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 17:57:10 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 18:02:09,935 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 17:58:58 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:03:57,871 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@40e10ff8, started on Sat Oct 07 18:02:25 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 18:08:17,719 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 18:04:06 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:10:54,821 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@38be305c, started on Sat Oct 07 18:08:55 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 18:16:49,197 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@38be305c, started on Sat Oct 07 18:11:12 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 18:19:07,066 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@38be305c, started on Sat Oct 07 18:17:24 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 18:30:29,735 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 18:19:26 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:31:27,179 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 18:30:33 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:33:12,099 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 18:31:30 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:35:24,229 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 18:33:15 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:38:46,012 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 18:35:27 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:40:35,057 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@38be305c, started on Sat Oct 07 18:38:51 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6e0f5f7f
+2023-10-07 18:41:54,940 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 18:40:38 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:44:37,247 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 18:41:58 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:45:55,416 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 18:44:41 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:46:58,276 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 18:45:59 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:47:40,029 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3234f74e, started on Sat Oct 07 18:47:02 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:48:15,963 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@5ed731d0, started on Sat Oct 07 18:47:43 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
+2023-10-07 18:53:47,268 [SpringContextShutdownHook] DEBUG [cn.mb.cloud.common.core.util.SpringContextHolder] SpringContextHolder.java:59 - 清除SpringContextHolder中的ApplicationContext:org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@269f4bad, started on Sat Oct 07 18:48:19 GMT+08:00 2023, parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2805d709
--
Gitblit v1.7.1