Merge remote-tracking branch 'origin/master'
# Conflicts:
# cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/platformIncome.html
35个文件已修改
1个文件已删除
12个文件已添加
| | |
| | | <select /> |
| | | </component> |
| | | <component name="ChangeListManager"> |
| | | <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="10.8"> |
| | | <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="10.8。1"> |
| | | <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/course/mapper/StoreMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.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/java/com/dsh/guns/modular/system/service/IStoreService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml" 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-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html" 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" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js" 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-other/src/main/resources/mapper/GameMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/resources/mapper/GameMapper.xml" afterDir="false" /> |
| | | </list> |
| | | <option name="SHOW_DIALOG" value="false" /> |
| | | <option name="HIGHLIGHT_CONFLICTS" value="true" /> |
| | |
| | | <option name="hideEmptyMiddlePackages" value="true" /> |
| | | <option name="showLibraryContents" value="true" /> |
| | | </component> |
| | | <component name="PropertiesComponent">{ |
| | | "keyToString": { |
| | | "DefaultHtmlFileTemplate": "HTML File", |
| | | "RequestMappingsPanelOrder0": "0", |
| | | "RequestMappingsPanelOrder1": "1", |
| | | "RequestMappingsPanelWidth0": "75", |
| | | "RequestMappingsPanelWidth1": "75", |
| | | "RunOnceActivity.OpenProjectViewOnStart": "true", |
| | | "RunOnceActivity.ShowReadmeOnStart": "true", |
| | | "WebServerToolWindowFactoryState": "false", |
| | | "git-widget-placeholder": "master", |
| | | "ignore.virus.scanning.warn.message": "true", |
| | | "last_opened_file_path": "D:/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 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:/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.lookFeel", |
| | | "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-account\src\test\java\com\dsh" /> |
| | | <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" /> |
| | | </key> |
| | | <key name="MoveFile.RECENT_KEYS"> |
| | | <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\tStudent" /> |
| | |
| | | <option name="ENABLED" value="true" /> |
| | | </pattern> |
| | | </extension> |
| | | <method v="2"> |
| | | <option name="Make" enabled="true" /> |
| | | </method> |
| | | </configuration> |
| | | <configuration name="AccountApplicationTests.contextLoads" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> |
| | | <module name="mb-cloud-account" /> |
| | | <shortenClasspath name="MANIFEST" /> |
| | | <extension name="coverage"> |
| | | <pattern> |
| | | <option name="PATTERN" value="com.dsh.*" /> |
| | | <option name="ENABLED" value="true" /> |
| | | </pattern> |
| | | </extension> |
| | | <option name="PACKAGE_NAME" value="com.dsh" /> |
| | | <option name="MAIN_CLASS_NAME" value="com.dsh.AccountApplicationTests" /> |
| | | <option name="METHOD_NAME" value="contextLoads" /> |
| | | <option name="TEST_OBJECT" value="method" /> |
| | | <method v="2"> |
| | | <option name="Make" enabled="true" /> |
| | | </method> |
| | | </configuration> |
| | | <configuration default="true" type="JUnit" factoryName="JUnit"> |
| | | <shortenClasspath name="MANIFEST" /> |
| | | <option name="TEST_OBJECT" value="class" /> |
| | | <method v="2"> |
| | | <option name="Make" enabled="true" /> |
| | | </method> |
| | |
| | | </method> |
| | | </configuration> |
| | | <list> |
| | | <item itemvalue="Spring Boot.GatewayApplication" /> |
| | | <item itemvalue="JUnit.AccountApplicationTests.contextLoads" /> |
| | | <item itemvalue="Spring Boot.ManagementApplication" /> |
| | | <item itemvalue="Spring Boot.GatewayApplication" /> |
| | | <item itemvalue="Spring Boot.OtherApplication" /> |
| | | <item itemvalue="Spring Boot.UserApplication" /> |
| | | <item itemvalue="Spring Boot.AccountApplication" /> |
| | |
| | | </list> |
| | | <recent_temporary> |
| | | <list> |
| | | <item itemvalue="JUnit.AccountApplicationTests.contextLoads" /> |
| | | <item itemvalue="应用程序.BigDecimalToChineseWords" /> |
| | | </list> |
| | | </recent_temporary> |
| | |
| | | <workItem from="1696433675086" duration="2211000" /> |
| | | <workItem from="1696462020097" duration="481000" /> |
| | | <workItem from="1696465598653" duration="19850000" /> |
| | | <workItem from="1696639362946" duration="45956000" /> |
| | | <workItem from="1696639362946" duration="88523000" /> |
| | | </task> |
| | | <task id="LOCAL-00001" summary="后台代码删除"> |
| | | <created>1690249807612</created> |
| | |
| | | <option name="project" value="LOCAL" /> |
| | | <updated>1696749061197</updated> |
| | | </task> |
| | | <option name="localTasksCounter" value="40" /> |
| | | <task id="LOCAL-00040" summary="10.8。1"> |
| | | <option name="closed" value="true" /> |
| | | <created>1696753188954</created> |
| | | <option name="number" value="00040" /> |
| | | <option name="presentableId" value="LOCAL-00040" /> |
| | | <option name="project" value="LOCAL" /> |
| | | <updated>1696753188954</updated> |
| | | </task> |
| | | <option name="localTasksCounter" value="41" /> |
| | | <servers /> |
| | | </component> |
| | | <component name="TypeScriptGeneratedFilesManager"> |
| | |
| | | <MESSAGE value="9.26。14" /> |
| | | <MESSAGE value="9.26。15" /> |
| | | <MESSAGE value="10.8" /> |
| | | <option name="LAST_COMMIT_MESSAGE" value="10.8" /> |
| | | <MESSAGE value="10.8。1" /> |
| | | <option name="LAST_COMMIT_MESSAGE" value="10.8。1" /> |
| | | </component> |
| | | <component name="XDebuggerManager"> |
| | | <breakpoint-manager> |
| | |
| | | <url>file://$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java</url> |
| | | <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> |
New file |
| | |
| | | package com.dsh; |
| | | |
| | | import com.dsh.account.controller.CoachTypeController; |
| | | |
| | | import org.junit.jupiter.api.Test; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.test.context.SpringBootTest; |
| | | |
| | | import java.util.List; |
| | | |
| | | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = AccountApplication.class) |
| | | class AccountApplicationTests { |
| | | |
| | | @Autowired |
| | | private CoachTypeController controller; |
| | | |
| | | @Test |
| | | void contextLoads() { |
| | | System.out.println("==============="+controller.list()); |
| | | } |
| | | |
| | | } |
| | |
| | | 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 com.dsh.guns.modular.system.model.dto.SelectDto; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | |
| | | void inset(JsDto jsDto); |
| | | |
| | | JsDto get(Integer id); |
| | | |
| | | List<SelectDto> getSelect(); |
| | | } |
| | |
| | | } |
| | | return new ArrayList<>(); |
| | | } |
| | | |
| | | @RequestMapping("/listAll1") |
| | | @ResponseBody |
| | | public Object listAll1(String spaceId,String type,String date,String cityCode){ |
| | | if(spaceId==null){ |
| | | spaceId=""; |
| | | } |
| | | if(type==null){ |
| | | type="y"; |
| | | } |
| | | if(date==null){ |
| | | date=""; |
| | | } |
| | | if(cityCode==null){ |
| | | cityCode=""; |
| | | } |
| | | // String apiUrl1 = "https://try.daowepark.com/v7/user_api/general/accuracyGameRanking?space_id=1001"+spaceId+"&type="+type+"&date="+date+"&city_code="+cityCode; |
| | | String apiUrl1 = "https://try.daowepark.com/v7/user_api/general/accuracyGameRanking?space_id="+spaceId+"&type="+type+"&date="+date+"&city_code="+cityCode; |
| | | URL url1 = null; |
| | | try { |
| | | url1 = new URL(apiUrl1); |
| | | HttpURLConnection connection1 = (HttpURLConnection) url1.openConnection(); |
| | | connection1.setRequestMethod("GET"); |
| | | // 发送请求并获取响应 |
| | | int responseCode1 = connection1.getResponseCode(); |
| | | if (responseCode1 == HttpURLConnection.HTTP_OK) { |
| | | BufferedReader reader1 = new BufferedReader(new InputStreamReader(connection1.getInputStream())); |
| | | String line1; |
| | | StringBuilder response1 = new StringBuilder(); |
| | | while ((line1 = reader1.readLine()) != null) { |
| | | response1.append(line1); |
| | | } |
| | | reader1.close(); |
| | | // 处理响应数据 |
| | | String data1 = response1.toString(); |
| | | // 使用Jackson库将JSON字符串转换为Java对象 |
| | | ObjectMapper objectMapper1 = new ObjectMapper(); |
| | | AccuracyGameOne res1 = objectMapper1.readValue(data1, AccuracyGameOne.class); |
| | | List<AccuracyGameDataOne> data2 = res1.getData(); |
| | | return data2; |
| | | } |
| | | } catch (ProtocolException e) { |
| | | e.printStackTrace(); |
| | | } catch (JsonProcessingException e) { |
| | | e.printStackTrace(); |
| | | } catch (MalformedURLException e) { |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return new ArrayList<>(); |
| | | } |
| | | /** |
| | | * 跳转到充值记录页面 |
| | | * 跳转到智慧球场数据统计页面 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index(Model model) { |
| | |
| | | */ |
| | | @RequestMapping("/list") |
| | | @ResponseBody |
| | | public Object list(Integer storeId) { |
| | | public Object list(String storeId) { |
| | | Map<String, Object> result = new HashMap<>(); |
| | | try { |
| | | // 年度数据 |
| | |
| | | // 创建 POST 请求 |
| | | HttpPost httpPost = new HttpPost("https://try.daowepark.com/v7/user_api/general/getBatterData"); |
| | | // 设置请求体数据 |
| | | String postData = "sign=0DB011836143EEE2C2E072967C9F4E4B&space_id="+""+"&date_type=y"; |
| | | String postData = "sign=0DB011836143EEE2C2E072967C9F4E4B&space_id="+storeId+"&date_type=y"+"&year="; |
| | | |
| | | StringEntity entity = new StringEntity(postData, ContentType.APPLICATION_FORM_URLENCODED); |
| | | httpPost.setEntity(entity); |
| | |
| | | // 创建 POST 请求 |
| | | HttpPost httpPost1 = new HttpPost("https://try.daowepark.com/v7/user_api/general/getBatterData"); |
| | | // 设置请求体数据 |
| | | String postData1 = "sign=0DB011836143EEE2C2E072967C9F4E4B&space_id=1001&date_type=m&year=2022"; |
| | | String postData1 = "sign=0DB011836143EEE2C2E072967C9F4E4B&space_id=1001"+""+"&date_type=m"+"&year="+year; |
| | | StringEntity entity1 = new StringEntity(postData1, ContentType.APPLICATION_FORM_URLENCODED); |
| | | httpPost1.setEntity(entity1); |
| | | // 执行请求 |
| | |
| | | // 处理响应 |
| | | HttpEntity responseEntity1 = response1.getEntity(); |
| | | if (responseEntity1 != null) { |
| | | String responseData = EntityUtils.toString(responseEntity1); |
| | | String responseData1 = EntityUtils.toString(responseEntity1); |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | Batter batter = objectMapper.readValue(responseData, Batter.class); |
| | | Batter batter = objectMapper.readValue(responseData1, Batter.class); |
| | | result.put("totalNumber", batter.getData().getAll_batter_num()); |
| | | result.put("totalTime", batter.getData().getAll_batter_time()); |
| | | List<BatterData> dataList = batter.getData().getList(); |
| | | |
| | | // 月度数据 |
| | | result.put("mDataList", dataList); |
| | | } |
| | |
| | | return result; |
| | | } |
| | | /** |
| | | * 获取跨城赛统计 |
| | | * 获取90°准度赛全球总数 |
| | | */ |
| | | @RequestMapping("/cityGameOne") |
| | | @ResponseBody |
| | | public Object cityGameOne() { |
| | | Map<String, Object> result = new HashMap<>(); |
| | | try { |
| | | String apiUrl = "https://try.daowepark.com/v7/user_api/general/getAccuracyGameCount?space_id="; |
| | | URL url = new URL(apiUrl); |
| | | HttpURLConnection connection = (HttpURLConnection) url.openConnection(); |
| | | connection.setRequestMethod("GET"); |
| | | // 发送请求并获取响应 |
| | | int responseCode = connection.getResponseCode(); |
| | | if (responseCode == HttpURLConnection.HTTP_OK) { |
| | | BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); |
| | | String line; |
| | | StringBuilder response = new StringBuilder(); |
| | | while ((line = reader.readLine()) != null) { |
| | | response.append(line); |
| | | } |
| | | reader.close(); |
| | | // 处理响应数据 |
| | | String data = response.toString(); |
| | | // 使用Jackson库将JSON字符串转换为Java对象 |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | CityGame res = objectMapper.readValue(data, CityGame.class); |
| | | result.put("totalNum", res.getData().getTotal_num()); |
| | | return result; |
| | | } |
| | | } |
| | | catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 获取跨城赛统计全球总数 |
| | | */ |
| | | @RequestMapping("/cityGame") |
| | | @ResponseBody |
| | |
| | | // 使用Jackson库将JSON字符串转换为Java对象 |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | CityGame res = objectMapper.readValue(data, CityGame.class); |
| | | // 场地总入场人数 |
| | | String totalNum = ""; |
| | | for (CityGameData datum : res.getData()) { |
| | | totalNum = datum.getTotal_num(); |
| | | } |
| | | result.put("totalNum", totalNum); |
| | | |
| | | |
| | | result.put("totalNum", res.getData().getTotal_num()); |
| | | return result; |
| | | } |
| | | } |
| | |
| | | private SiteClient siteClient; |
| | | private String PREFIX = "/system/gateData/"; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 跳转到充值记录页面 |
| | | */ |
| | |
| | | return PREFIX + "GateData.html"; |
| | | } |
| | | /** |
| | | * 获取教练类型列表 |
| | | * 获取闸机数据列表 |
| | | */ |
| | | @RequestMapping("/list") |
| | | @ResponseBody |
| | | public Object list() { |
| | | List<Site> list = siteClient.getList(); |
| | | try { |
| | | for (Site site : list) { |
| | | String apiUrl = "https://try.daowepark.com/v7/user_api/general/spaceDoorData?space_id=" + site.getId(); |
| | | String apiUrl = "https://try.daowepark.com/v7/user_api/general/spaceDoorData?space_id=1001"; |
| | | URL url = new URL(apiUrl); |
| | | HttpURLConnection connection = (HttpURLConnection) url.openConnection(); |
| | | connection.setRequestMethod("GET"); |
| | |
| | | } else { |
| | | System.out.println("请求失败: " + responseCode); |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return new ArrayList<>(); |
| | | } |
| | | /** |
| | | * 获取教练类型列表 |
| | | */ |
| | | @RequestMapping("/totalNum") |
| | | @ResponseBody |
| | | public Object totalNum() { |
| | | try { |
| | | String apiUrl = "https://try.daowepark.com/v7/user_api/general/spaceDoorData?space_id=1001"; |
| | | URL url = new URL(apiUrl); |
| | | HttpURLConnection connection = (HttpURLConnection) url.openConnection(); |
| | | connection.setRequestMethod("GET"); |
| | | // 发送请求并获取响应 |
| | | int responseCode = connection.getResponseCode(); |
| | | if (responseCode == HttpURLConnection.HTTP_OK) { |
| | | BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); |
| | | String line; |
| | | StringBuilder response = new StringBuilder(); |
| | | while ((line = reader.readLine()) != null) { |
| | | response.append(line); |
| | | } |
| | | reader.close(); |
| | | // 处理响应数据 |
| | | String data = response.toString(); |
| | | // 使用Jackson库将JSON字符串转换为Java对象 |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | GateDataResponse res = objectMapper.readValue(data, GateDataResponse.class); |
| | | // 访问Java对象中的数据 |
| | | int code = res.getCode(); |
| | | String message = res.getMessage(); |
| | | // 场地总入场人数 |
| | | int totalNum = res.getData().getTotal_num(); |
| | | return totalNum; |
| | | |
| | | } else { |
| | | System.out.println("请求失败: " + responseCode); |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | |
| | | import com.dsh.guns.core.common.constant.factory.PageFactory; |
| | | import com.dsh.guns.core.util.SinataUtil; |
| | | import com.dsh.guns.modular.system.model.*; |
| | | import com.dsh.guns.modular.system.service.ICityService; |
| | | import com.dsh.guns.modular.system.service.IUserService; |
| | | import com.dsh.guns.modular.system.service.TOperatorCityService; |
| | | import com.dsh.guns.modular.system.service.TOperatorService; |
| | | import com.dsh.guns.modular.system.service.*; |
| | | import com.dsh.guns.modular.system.service.impl.TOperatorUserServiceImpl; |
| | | import com.dsh.guns.modular.system.util.ResultUtil; |
| | | import io.swagger.models.auth.In; |
| | | import org.apache.catalina.valves.RemoteIpValve; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | |
| | | private TOperatorService operatorService; |
| | | @Autowired |
| | | private TOperatorCityService operatorCityService; |
| | | @Autowired |
| | | private IOperatorUserService operatorUserService; |
| | | @Autowired |
| | | private IUserService userService; |
| | | @Autowired |
| | |
| | | page.setRecords(list); |
| | | return super.packForBT(page); |
| | | } |
| | | |
| | | /** |
| | | * 跳转运营商商户去认证页面 |
| | | */ |
| | | @RequestMapping("/proportionAuth/{id}") |
| | | public String proportionAuth(Model model,@PathVariable("id") Integer id) { |
| | | model.addAttribute("operatorId",id); |
| | | return PREFIX + "OperatorUser_proportionAuth.html"; |
| | | } |
| | | /** |
| | | * 商户认证提交 |
| | | */ |
| | | @RequestMapping(value = "/auth") |
| | | @ResponseBody |
| | | public Object auth(Integer alipayType,Integer wechatType,String alipayNum,String wechatNum,Integer operatorId ) { |
| | | TOperator id = operatorService.getOne(new QueryWrapper<TOperator>().eq("id", operatorId)); |
| | | OperatorUser operatorUser = new OperatorUser(); |
| | | operatorUser.setUserId(id.getUserId()); |
| | | operatorUser.setAlipay("支付宝"); |
| | | operatorUser.setWechat("微信"); |
| | | operatorUser.setWechatType(wechatType); |
| | | operatorUser.setAlipayType(alipayType); |
| | | operatorUser.setAlipayNum(alipayNum); |
| | | operatorUser.setWechatNum(wechatNum); |
| | | operatorUser.setOperatorId(operatorId); |
| | | operatorUserService.save(operatorUser); |
| | | // 修改运营商状态为 已认证 |
| | | id.setStatus(2); |
| | | operatorService.updateById(id); |
| | | return SUCCESS_TIP; |
| | | } |
| | | /** |
| | | * 分账比例提交 |
| | | */ |
| | | @RequestMapping(value = "/proportion") |
| | | @ResponseBody |
| | | public Object auth(String alipayProportion,String wechatProportion,Integer operatorIdOne ) { |
| | | OperatorUser id = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("id", operatorIdOne)); |
| | | id.setAlipayProportion(alipayProportion); |
| | | id.setWechatProportion(wechatProportion); |
| | | operatorUserService.updateById(id); |
| | | return SUCCESS_TIP; |
| | | } |
| | | /** |
| | | * 跳转运营商设置分账比例页面 |
| | | */ |
| | | @RequestMapping("/proportion/{id}") |
| | | public String proportion(Model model,@PathVariable("id") Integer id) { |
| | | OperatorUser o = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("operatorId", id)); |
| | | model.addAttribute("operatorIdOne",o.getId()); |
| | | model.addAttribute("alipayProportion",o.getAlipayProportion()); |
| | | model.addAttribute("wechatProportion",o.getWechatProportion()); |
| | | return PREFIX + "OperatorUser_proportion.html"; |
| | | } |
| | | /** |
| | | * 批量重置密码 |
| | | * @return |
| | |
| | | List<Integer> userIds = list.stream() |
| | | .map(TOperator::getUserId) |
| | | .collect(Collectors.toList()); |
| | | String a123456 = SecureUtil.md5("123456"); |
| | | String a123456 = SecureUtil.md5("a123456"); |
| | | List<User> users = userService.list(new QueryWrapper<User>().in("id", userIds)); |
| | | for (User user : users) { |
| | | user.setPassword(a123456); |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 跳转运营商商户去认证页面 |
| | | */ |
| | | @RequestMapping("/proportion/{id}") |
| | | public String update(Model model,@PathVariable("id") Integer id) { |
| | | List<TCity> provinceList = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); |
| | | model.addAttribute("provinceList",provinceList); |
| | | List<Bank> bankList = operatorService.getBankList(); |
| | | TStore store = storeService.getOne(new QueryWrapper<TStore>().eq("cityManagerId", id)); |
| | | model.addAttribute("storeName",store.getName()); |
| | | TStoreStaff storeByStoreStaffId = storeStaffClient.getStoreByStoreStaffId(store.getStoreStaffId()); |
| | | model.addAttribute("storeStaff",storeByStoreStaffId.getName()); |
| | | model.addAttribute("storePhone",storeByStoreStaffId.getPhone()); |
| | | model.addAttribute("bankList",bankList); |
| | | return PREFIX + "OperatorUser_auth.html"; |
| | | } |
| | | |
| | | /** |
| | | * 获取运营商列表 |
| | | */ |
| | |
| | | return super.packForBT(page); |
| | | } |
| | | |
| | | /** |
| | | * 批量重置密码 |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "/addProportion") |
| | | @ResponseBody |
| | | public Object pwd(Integer id, BigDecimal alipay,BigDecimal wechat) { |
| | | List<OperatorUser> list = operatorUserService.list(new QueryWrapper<OperatorUser>().eq("operatorId", id)); |
| | | for (OperatorUser operatorUser : list) { |
| | | if (operatorUser.getPlatform()==1){ |
| | | operatorUser.setProportion(wechat); |
| | | operatorUserService.updateById(operatorUser); |
| | | }else { |
| | | operatorUser.setProportion(alipay); |
| | | operatorUserService.updateById(operatorUser); |
| | | } |
| | | } |
| | | return SUCCESS_TIP; |
| | | } |
| | | } |
| | |
| | | |
| | | String jsonString = jsonArray.getString(i); |
| | | String[] split = jsonString.split("-"); |
| | | System.out.println("============"+split); |
| | | if (split.length>1){ |
| | | first.add(split[0]); |
| | | second.add(split[1]); |
| | | second.add(split[1]);} |
| | | |
| | | } |
| | | String firstString = String.join(",",first); |
| | |
| | | import com.dsh.guns.core.base.controller.BaseController; |
| | | import com.dsh.guns.modular.system.model.*; |
| | | 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; |
| | | import com.dsh.guns.modular.system.service.ITSiteService; |
| | | 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.google.common.base.Ascii; |
| | |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | |
| | | @Controller |
| | |
| | | return PREFIX+"ball.html"; |
| | | } |
| | | |
| | | //入园方式 |
| | | @RequestMapping("/joinmethod/{id}") |
| | | public String joinmethod(Model model,@PathVariable("id") Integer id) { |
| | | |
| | | |
| | | model.addAttribute("id",id); |
| | | |
| | | return PREFIX+"join.html"; |
| | | } |
| | | |
| | | |
| | | @RequestMapping("/selectJoin") |
| | | @ResponseBody |
| | | public ResultUtil join(@RequestBody MethodDto method) { |
| | | |
| | | System.out.println("============"+method); |
| | | SiteBooking siteBooking = new SiteBooking(); |
| | | siteBooking.setStatus(2); |
| | | siteBooking.setId(method.getId()); |
| | | siteBooking.setGoType(method.getMethod()); |
| | | iSiteBookingService.updateById(siteBooking); |
| | | |
| | | return new ResultUtil<>(0,0,"到店成功",null,null); |
| | | } |
| | | |
| | | |
| | | |
| | | @RequestMapping(value = "/yunying") |
| | | @ResponseBody |
| | | public ResultUtil getUserSlect() { |
| | | |
| | | |
| | | |
| | | List<SelectDto> selectDtos = storeService.getSelect(); |
| | | Map<String,List<SelectDto>> map = new HashMap<>(); |
| | | map.put("options",selectDtos); |
| | | |
| | | System.out.println("=======selectDtos====="+selectDtos); |
| | | return new ResultUtil(0,0,"编辑成功",map,""); |
| | | } |
| | | |
| | | //取消凭证页面 |
| | | @RequestMapping("/tocancel/{id}") |
| | | public String tocancel(Model model,@PathVariable("id") Integer id) { |
| | | |
| | | model.addAttribute("id",id); |
| | | |
| | | return PREFIX+"cancel.html"; |
| | | } |
| | | |
| | | |
| | | @RequestMapping("/cancel") |
| | | @ResponseBody |
| | | public ResultUtil cancel(Integer id,String voucher,String textarea) { |
| | | |
| | | System.out.println("============"+id); |
| | | SiteBooking siteBooking = new SiteBooking(); |
| | | siteBooking.setId(id); |
| | | siteBooking.setStatus(5); |
| | | siteBooking.setVoucher(voucher); |
| | | siteBooking.setRemark(textarea); |
| | | siteBooking.setCancelUserId(UserExt.getUser().getId()); |
| | | iSiteBookingService.updateById(siteBooking); |
| | | |
| | | return new ResultUtil<>(0,0,"到店成功",null,null); |
| | | } |
| | | |
| | | /** |
| | | * 获取变更列表 |
| | |
| | | |
| | | @RequestMapping("/save") |
| | | @ResponseBody |
| | | public ResultUtil save(String red, String blue, String province, String city, Integer site, Integer store |
| | | public ResultUtil save(String operationId,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 |
| | |
| | | game.setCityCode(city); |
| | | game.setSiteId(site); |
| | | game.setStoreId(store); |
| | | |
| | | |
| | | if (!operationId.equals("平台")){ |
| | | game.setOperationId(Integer.valueOf(operationId));} |
| | | else { |
| | | game.setOperationId(0); |
| | | } |
| | | System.out.println("============"+game); |
| | | Integer gameId = ballClient.save(game); |
| | | |
| | |
| | | @RequestMapping("/pre_add") |
| | | public String add(Model model) { |
| | | |
| | | |
| | | model.addAttribute("is","${is}"); |
| | | |
| | | return PREFIX+"ball_pre_add.html"; |
| | | } |
| | |
| | | |
| | | return PREFIX+"ball_pre_edit.html"; |
| | | } |
| | | |
| | | @Autowired |
| | | private ISiteBookingService iSiteBookingService; |
| | | |
| | | @RequestMapping("/yueyue_edit/{id}") |
| | | public String yueyue_edit(@PathVariable("id") Integer id,Model model) { |
| | | |
| | | List<String> strings1 = new ArrayList<>(); |
| | | |
| | | SiteBooking book = iSiteBookingService.getById(id); |
| | | model.addAttribute("item", book); |
| | | if (book.getMoney()!=null){ |
| | | model.addAttribute("money",book.getMoney().split(","));} |
| | | String[] split1 = book.getTimes().split(";"); |
| | | model.addAttribute("date",split1[0].substring(0,10)); |
| | | |
| | | for (String s : split1) { |
| | | |
| | | String convertedValue = s.substring(11); |
| | | strings1.add(convertedValue); |
| | | } |
| | | |
| | | System.out.println("========strings1====="+strings1); |
| | | |
| | | //时间段 |
| | | List<String> strings = new ArrayList<>(); |
| | | // List<SiteBooking> siteBookings = siteClient.listBooks(book.getSiteId()); |
| | | List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", book.getSiteId()).like("times",split1[0].substring(0,10))); |
| | | 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(book.getSiteId()); |
| | | System.out.println("================"+site); |
| | | String appointmentStartTime = site.getAppointmentStartTime(); |
| | | String appointmentEndTime = site.getAppointmentEndTime(); |
| | | //生成用于比较日期是否超过的当前日期 |
| | | LocalDate currentDate = LocalDate.now(); |
| | | LocalDate parsedDate = LocalDate.parse(split1[0].substring(0,10), DateTimeFormatter.ISO_DATE); |
| | | boolean isAfterCurrentDate = parsedDate.isBefore(currentDate); |
| | | System.out.println("是否超过当前日期"+isAfterCurrentDate); |
| | | 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); |
| | | } |
| | | //日期是否超过 |
| | | if (isAfterCurrentDate){ |
| | | orderDto.setState(0); |
| | | } |
| | | //是否是当前场地当前日期预定的 |
| | | if (strings1.contains(timeRange)){ |
| | | orderDto.setState(1); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | timeRanges.add(orderDto); |
| | | currentTime = nextTime; |
| | | } |
| | | System.out.println("-------------"+timeRanges); |
| | | model.addAttribute("timeRanges",timeRanges); |
| | | |
| | | System.out.println("======timeRanges========"+timeRanges); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | Integer objectType = UserExt.getUser().getObjectType(); |
| | | Integer objectId = UserExt.getUser().getObjectId(); |
| | | |
| | | String cityCode = null; |
| | | if(objectType == 2){//城市管理员 |
| | | CityManager cityManager = cityManagerClient.queryCityManagerById(objectId); |
| | | cityCode = cityManager.getCityCode(); |
| | | } |
| | | List<Map<String, Object>> list = storeService.queryProvince(cityCode); |
| | | model.addAttribute("province", list); |
| | | Object code = list.get(0).get("code"); |
| | | List<Map<String, Object>> list1 = storeService.queryCity(code.toString(), cityCode); |
| | | model.addAttribute("city", list1); |
| | | String code1 = list1.get(0).get("code").toString(); |
| | | List<TStore> list2 = storeService.list(new QueryWrapper<TStore>().eq("cityCode", code1).eq("state", 1)); |
| | | model.addAttribute("store", list2); |
| | | TStore store = list2.get(0); |
| | | List<TSite> list3 = siteService.list(new QueryWrapper<TSite>().eq("storeId", store.getId()).eq("state", 1)); |
| | | model.addAttribute("site", list3); |
| | | |
| | | |
| | | return PREFIX+"yuyue_edit.html"; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Autowired |
| | | private IUserService userService; |
| | | @RequestMapping("/yueyue_info/{id}") |
| | | public String yueyue_info(@PathVariable("id") Integer id,Model model) { |
| | | |
| | | List<String> strings1 = new ArrayList<>(); |
| | | |
| | | SiteBooking book = iSiteBookingService.getById(id); |
| | | model.addAttribute("item", book); |
| | | if (book.getMoney()!=null){ |
| | | model.addAttribute("money",book.getMoney().split(","));} |
| | | String[] split1 = book.getTimes().split(";"); |
| | | model.addAttribute("date",split1[0].substring(0,10)); |
| | | |
| | | |
| | | User user = userService.getById(book.getCancelUserId()); |
| | | if (user!=null) { |
| | | model.addAttribute("cancelUser", user.getName()); |
| | | } |
| | | |
| | | |
| | | for (String s : split1) { |
| | | |
| | | String convertedValue = s.substring(11); |
| | | strings1.add(convertedValue); |
| | | } |
| | | |
| | | System.out.println("========strings1====="+strings1); |
| | | |
| | | //时间段 |
| | | List<String> strings = new ArrayList<>(); |
| | | // List<SiteBooking> siteBookings = siteClient.listBooks(book.getSiteId()); |
| | | List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", book.getSiteId()).like("times",split1[0].substring(0,10))); |
| | | 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(book.getSiteId()); |
| | | System.out.println("================"+site); |
| | | String appointmentStartTime = site.getAppointmentStartTime(); |
| | | String appointmentEndTime = site.getAppointmentEndTime(); |
| | | //生成用于比较日期是否超过的当前日期 |
| | | LocalDate currentDate = LocalDate.now(); |
| | | LocalDate parsedDate = LocalDate.parse(split1[0].substring(0,10), DateTimeFormatter.ISO_DATE); |
| | | boolean isAfterCurrentDate = parsedDate.isBefore(currentDate); |
| | | System.out.println("是否超过当前日期"+isAfterCurrentDate); |
| | | 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); |
| | | } |
| | | //日期是否超过 |
| | | if (isAfterCurrentDate){ |
| | | orderDto.setState(0); |
| | | } |
| | | //是否是当前场地当前日期预定的 |
| | | if (strings1.contains(timeRange)){ |
| | | orderDto.setState(1); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | timeRanges.add(orderDto); |
| | | currentTime = nextTime; |
| | | } |
| | | System.out.println("-------------"+timeRanges); |
| | | model.addAttribute("timeRanges",timeRanges); |
| | | |
| | | System.out.println("======timeRanges========"+timeRanges); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | Integer objectType = UserExt.getUser().getObjectType(); |
| | | Integer objectId = UserExt.getUser().getObjectId(); |
| | | |
| | | String cityCode = null; |
| | | if(objectType == 2){//城市管理员 |
| | | CityManager cityManager = cityManagerClient.queryCityManagerById(objectId); |
| | | cityCode = cityManager.getCityCode(); |
| | | } |
| | | List<Map<String, Object>> list = storeService.queryProvince(cityCode); |
| | | model.addAttribute("province", list); |
| | | Object code = list.get(0).get("code"); |
| | | List<Map<String, Object>> list1 = storeService.queryCity(code.toString(), cityCode); |
| | | model.addAttribute("city", list1); |
| | | String code1 = list1.get(0).get("code").toString(); |
| | | List<TStore> list2 = storeService.list(new QueryWrapper<TStore>().eq("cityCode", code1).eq("state", 1)); |
| | | model.addAttribute("store", list2); |
| | | TStore store = list2.get(0); |
| | | List<TSite> list3 = siteService.list(new QueryWrapper<TSite>().eq("storeId", store.getId()).eq("state", 1)); |
| | | model.addAttribute("site", list3); |
| | | |
| | | |
| | | return PREFIX+"yuyue_info.html"; |
| | | } |
| | | |
| | | |
| | | |
| | | @RequestMapping("/paike") |
| | |
| | | |
| | | @RequestMapping("/yuyuetimes/{id}") |
| | | @ResponseBody |
| | | public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id) { |
| | | |
| | | public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id,String date) { |
| | | System.out.println("=======date======"+date); |
| | | |
| | | List<String> strings = new ArrayList<>(); |
| | | List<SiteBooking> siteBookings = siteClient.listBooks(id); |
| | | |
| | | // List<SiteBooking> siteBookings = siteClient.listBooks(id); |
| | | List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).like("times",date)); |
| | | System.out.println("=======siteBookings======"+siteBookings); |
| | | for (SiteBooking siteBooking : siteBookings) { |
| | | String[] split = siteBooking.getTimes().split(";"); |
| | |
| | | } |
| | | |
| | | return String.format("%02d:%02d", hour, minute); |
| | | |
| | | // String[] parts = currentTime.split(":"); |
| | | // int hour = Integer.parseInt(parts[0]); |
| | | // int minute = Integer.parseInt(parts[1]); |
| | | // |
| | | // if (minute == 45) { |
| | | // hour++; |
| | | // minute = 0; |
| | | // } else if (minute == 0){ |
| | | // minute = 15; |
| | | // }else if (minute == 15){ |
| | | // minute = 30; |
| | | // }else if (minute == 30){ |
| | | // minute = 45; |
| | | // } |
| | | // |
| | | // return String.format("%02d:%02d", hour, minute); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | return new ResultUtil<>(null,200,null,null,null); |
| | | } |
| | | |
| | | @RequestMapping("/orderedit") |
| | | @ResponseBody |
| | | public ResultUtil orderedit(SiteBooking siteBooking){ |
| | | iSiteBookingService.updateById(siteBooking); |
| | | |
| | | System.out.println("================="+siteBooking); |
| | | |
| | | return new ResultUtil<>(null,200,null,null,null); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.model; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 获取游戏列表 |
| | | */ |
| | | @Data |
| | | public class AccuracyGameDataOne { |
| | | private int account_id; |
| | | private int score; |
| | | private int match_id; |
| | | private String name; |
| | | private String avatar; |
| | | private String rank; |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.model; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 获取游戏列表 |
| | | */ |
| | | @Data |
| | | public class AccuracyGameOne { |
| | | private int code; |
| | | private String message; |
| | | private List<AccuracyGameDataOne> data; |
| | | private String nextUrl; |
| | | } |
| | |
| | | public class CityGame { |
| | | private int code; |
| | | private String message; |
| | | private List<CityGameData> data; |
| | | private CityGameData data; |
| | | private String nextUrl; |
| | | } |
| | |
| | | package com.dsh.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | |
| | |
| | | @TableName("t_operator_user") |
| | | @Data |
| | | public class OperatorUser { |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | private String province; |
| | | private Integer provinceCode; |
| | | private String city; |
| | | private Integer cityCode; |
| | | @TableField(value = "userId") |
| | | private Integer userId; |
| | | private Integer platform; |
| | | private Integer type; |
| | | private BigDecimal proportion; |
| | | private Integer state; |
| | | private Integer status; |
| | | @TableField(value = "alipay") |
| | | private String alipay; |
| | | @TableField(value = "alipayProportion") |
| | | private String alipayProportion; |
| | | @TableField(value = "alipayNum") |
| | | private String alipayNum; |
| | | @TableField(value = "wechat") |
| | | private String wechat; |
| | | @TableField(value = "wechatProportion") |
| | | private String wechatProportion; |
| | | @TableField(value = "wechatNum") |
| | | private String wechatNum; |
| | | @TableField(value = "alipayType") |
| | | private Integer alipayType; |
| | | @TableField(value = "wechatType") |
| | | private Integer wechatType; |
| | | @TableField(value = "operatorId") |
| | | private Integer operatorId; |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.model.dto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class MethodDto { |
| | | Integer id; |
| | | Integer method; |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.dsh.guns.modular.system.model.*; |
| | | import com.dsh.guns.modular.system.model.dto.SelectDto; |
| | | import io.swagger.models.auth.In; |
| | | import com.dsh.course.dto.JsDto; |
| | | import com.dsh.guns.modular.system.model.Dict; |
| | |
| | | void insert(JsDto jsDto); |
| | | |
| | | JsDto get(Integer id); |
| | | |
| | | List<SelectDto> getSelect(); |
| | | } |
| | |
| | | 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 com.dsh.guns.modular.system.model.dto.SelectDto; |
| | | import com.dsh.guns.modular.system.service.IStoreService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<SelectDto> getSelect() { |
| | | return this.baseMapper.getSelect(); |
| | | } |
| | | |
| | | @Override |
| | | public List<TImgConfig> getConfig() { |
| | | |
| | | return this.baseMapper.getConfig1(); |
| | |
| | | <?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.TOperatorUserMapper"> |
| | | <select id="listAll" resultType="java.util.Map"> |
| | | select t1.id as id, t1.platform,t1.type,t1.proportion,CONCAT(t1.province,t1.city) as provinceAndCity |
| | | t1.state as state,t1.status as status,t2.name as userName,t2.phone as phone from t_operatorUser t1 |
| | | left join sys_user t2 on t1.userId = t2.id |
| | | where 1=1 |
| | | <if test="province != null and province != ''"> |
| | | and t1.provinceCode = #{province} |
| | | </if> |
| | | <if test="city != null and city != ''"> |
| | | and t1.cityCode = #{city} |
| | | </if> |
| | | <if test="userName != null and userName != ''"> |
| | | and t2.name like CONCAT('%',#{userName},'%') |
| | | </if> |
| | | <if test="phone != null and phone != ''"> |
| | | and t2.phone like CONCAT('%',#{phone},'%') |
| | | </if> |
| | | <if test="platform != null and platform != ''"> |
| | | and t1.platform = #{platform} |
| | | </if> |
| | | <if test="type != null and type != ''"> |
| | | and t1.type = #{type} |
| | | </if> |
| | | <if test="proportion != null and proportion != ''"> |
| | | and t1.proportion = #{proportion} |
| | | </if> |
| | | <if test="state != null and state != ''"> |
| | | and t1.state = #{state} |
| | | </if> |
| | | <if test="status != null and status != ''"> |
| | | and t1.status = #{status} |
| | | </if> |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <select id="getConfig1" resultType="com.dsh.guns.modular.system.model.TImgConfig"> |
| | | select * from t_img_config |
| | | </select> |
| | | <select id="getSelect" resultType="com.dsh.guns.modular.system.model.dto.SelectDto"> |
| | | |
| | | |
| | | SELECT op.id , CONCAT(us.name,'-',us.`phone`) as value |
| | | FROM t_operator op |
| | | LEFT JOIN sys_user us on op.userId = us.id |
| | | |
| | | |
| | | |
| | | |
| | | </select> |
| | | </mapper> |
| | |
| | | { |
| | | "type": "form", |
| | | "id": "u:24af29be25d2", |
| | | "title": "111", |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "label": "所属运营商:", |
| | | "type": "tpl", |
| | | "id": "u:587781d5d181", |
| | | "tpl": "                                    *所属运营商:", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "marginLeft": "0" |
| | | } |
| | | },{ |
| | | "type": "select", |
| | | "name": "operator", |
| | | "id": "u:970f68a2c4ee", |
| | | "mode": "horizontal", |
| | | "size": "lg", |
| | | "label": "", |
| | | "name": "operationId", |
| | | "id": "u:c037c33c2c81", |
| | | "mode": "inline", |
| | | "size": "md", |
| | | "multiple": false, |
| | | "showInvalidMatch": false, |
| | | "searchable": true, |
| | |
| | | "horizontal": { |
| | | "leftFixed": "lg" |
| | | }, |
| | | "options": [ |
| | | "disabledOn": "is!=0", |
| | | "required": true, |
| | | "source": { |
| | | "url": "/ball/yunying", |
| | | "method": "post", |
| | | "messages": { |
| | | } |
| | | }, |
| | | "labelField": "value", |
| | | "valueField": "id" |
| | | },{ |
| | | "type": "checkbox", |
| | | "option": "平台", |
| | | "name": "is", |
| | | "id": "u:88f23ebcf4f7", |
| | | "onEvent": { |
| | | "change": { |
| | | "weight": 0, |
| | | "actions": [ |
| | | { |
| | | "label": "等待沟通中", |
| | | "value": "等待沟通中" |
| | | "componentId": "u:c037c33c2c81", |
| | | "args": { |
| | | "value": "$event.data.value" |
| | | }, |
| | | "actionType": "setValue" |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "trueValue": "平台", |
| | | "falseValue": 0, |
| | | "mode": "inline" |
| | | }, |
| | | { |
| | | "type": "select", |
| | |
| | | }, |
| | | "value": "", |
| | | "required": true |
| | | |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | |
| | | "clearValueOnHidden": false, |
| | | "hidden": false, |
| | | "required": true |
| | | |
| | | }, |
| | | { |
| | | "type": "button", |
| | |
| | | "mode": "inline", |
| | | "labelClassName": "text-dark m-b", |
| | | "value": "14" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:587781d5d181", |
| | | "tpl": "                                ", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "marginLeft": "0" |
| | | } |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | |
| | | "value": "16" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:587781d5d181", |
| | | "tpl": "                                ", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "marginLeft": "0" |
| | | } |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "玩派币", |
| | | "name": "shequCoin", |
| | |
| | | "value": "13" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:587781d5d181", |
| | | "tpl": "                                ", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "marginLeft": "0" |
| | | } |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "玩派币", |
| | | "name": "shemenCoin", |
| | |
| | | "value": "玩湃熊之力-速度" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:587781d5d181", |
| | | "tpl": "                                ", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "marginLeft": "0" |
| | | } |
| | | }, |
| | | { |
| | | "type": "hidden", |
| | | "label": "", |
| | | "name": "suduId", |
| | | "id": "u:f0f7e6028e17", |
| | | "id": "u:ca5a1fd9c191", |
| | | "mode": "inline", |
| | | "labelClassName": "text-dark m-b", |
| | | "value": "15" |
| | |
| | | "value": "1" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:587781d5d181", |
| | | "tpl": "                                ", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "marginLeft": "0" |
| | | } |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "玩派币", |
| | | "name": "fangkuaiCoin", |
| | |
| | | "mode": "inline", |
| | | "labelClassName": "text-dark m-b", |
| | | "value": "7" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:587781d5d181", |
| | | "tpl": "                                ", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "marginLeft": "0" |
| | | } |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | |
| | | "value": "8" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:587781d5d181", |
| | | "tpl": "                                ", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "marginLeft": "0" |
| | | } |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "玩派币", |
| | | "name": "sqCoin", |
| | |
| | | "mode": "inline", |
| | | "labelClassName": "text-dark m-b", |
| | | "value": "10" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:587781d5d181", |
| | | "tpl": "                                ", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "marginLeft": "0" |
| | | } |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | |
| | | "value": "11" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:587781d5d181", |
| | | "tpl": "                                ", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "marginLeft": "0" |
| | | } |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "玩派币", |
| | | "name": "zs2Coin", |
| | |
| | | }, |
| | | { |
| | | "type": "hidden", |
| | | "label": "游戏名称", |
| | | "label": "", |
| | | "name": "ly", |
| | | "id": "u:c4a543b6cda0", |
| | | "mode": "inline", |
| | |
| | | }, |
| | | { |
| | | "type": "hidden", |
| | | "label": "游戏id", |
| | | "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", |
| | |
| | | "actions": [ |
| | | { |
| | | "componentId": "u:24af29be25d2", |
| | | "actionType": "submit" |
| | | }, |
| | | { |
| | | "args": { |
| | | }, |
| | | "outputVar": "responseResult", |
| | | "actionType": "submit" |
| | | "script": "window.parent.TStudent.table.refresh();", |
| | | "actionType": "custom" |
| | | }, |
| | | { |
| | | "args": {}, |
| | | "script": "parent.layer.close(window.parent.TStudent.layerIndex);", |
| | | "actionType": "custom" |
| | | } |
| | | ] |
| | | } |
| | |
| | | "dataType": "form-data" |
| | | }, |
| | | "actions": [ |
| | | ], |
| | | "onEvent": { |
| | | "submitSucc": { |
| | | "weight": 0, |
| | | "actions": [ |
| | | { |
| | | "args": { |
| | | }, |
| | | "script": "parent.layer.close(window.parent.TStudent.layerIndex);", |
| | | "actionType": "custom" |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | }; |
| | | |
| | |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "label": "所属运营商:", |
| | | "type": "tpl", |
| | | "id": "u:587781d5d181", |
| | | "tpl": "                                    *所属运营商:", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "marginLeft": "0" |
| | | } |
| | | },{ |
| | | "type": "select", |
| | | "name": "operator", |
| | | "id": "u:970f68a2c4ee", |
| | | "mode": "horizontal", |
| | | "size": "lg", |
| | | "label": "", |
| | | "name": "operationId", |
| | | "id": "u:c037c33c2c81", |
| | | "mode": "inline", |
| | | "size": "md", |
| | | "multiple": false, |
| | | "showInvalidMatch": false, |
| | | "searchable": true, |
| | |
| | | "horizontal": { |
| | | "leftFixed": "lg" |
| | | }, |
| | | "options": [ |
| | | "disabledOn": "is!=0", |
| | | "required": true, |
| | | "source": { |
| | | "url": "/ball/yunying", |
| | | "method": "post", |
| | | "messages": { |
| | | } |
| | | }, |
| | | "labelField": "value", |
| | | "valueField": "id" |
| | | },{ |
| | | "type": "checkbox", |
| | | "option": "平台", |
| | | "name": "is", |
| | | "id": "u:88f23ebcf4f7", |
| | | "onEvent": { |
| | | "change": { |
| | | "weight": 0, |
| | | "actions": [ |
| | | { |
| | | "label": "等待沟通中", |
| | | "value": "等待沟通中" |
| | | "componentId": "u:c037c33c2c81", |
| | | "args": { |
| | | "value": "$event.data.value" |
| | | }, |
| | | "actionType": "setValue" |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "trueValue": "平台", |
| | | "falseValue": 0, |
| | | "mode": "inline" |
| | | }, |
| | | { |
| | | "type": "select", |
| | |
| | | "actions": [ |
| | | { |
| | | "componentId": "u:24af29be25d2", |
| | | "actionType": "submit" |
| | | }, |
| | | { |
| | | "args": { |
| | | }, |
| | | "outputVar": "responseResult", |
| | | "actionType": "submit" |
| | | "script": "window.parent.TStudent.table.refresh();", |
| | | "actionType": "custom" |
| | | }, |
| | | { |
| | | "args": {}, |
| | | "script": "parent.layer.close(window.parent.TStudent.layerIndex);", |
| | | "actionType": "custom" |
| | | } |
| | | ] |
| | | } |
New file |
| | |
| | | <!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": "", |
| | | "body": [ |
| | | { |
| | | "type": "form", |
| | | "id": "u:6d72ddddf222", |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "type": "grid", |
| | | "columns": [ |
| | | ], |
| | | "id": "u:313016b48f71" |
| | | }, |
| | | { |
| | | "type": "flex", |
| | | "id": "u:e21645a48093", |
| | | "className": "p-1", |
| | | "items": [ |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:5130236fd5a1", |
| | | "tpl": "入园方式", |
| | | "inline": true, |
| | | "wrapperComponent": "h2" |
| | | } |
| | | ], |
| | | "style": { |
| | | "position": "static", |
| | | "flexWrap": "nowrap" |
| | | }, |
| | | "direction": "row", |
| | | "justify": "center", |
| | | "alignItems": "stretch", |
| | | "isFixedHeight": false, |
| | | "isFixedWidth": false |
| | | }, |
| | | { |
| | | "type": "input-image", |
| | | "label": "上传凭证", |
| | | "name": "voucher", |
| | | "autoUpload": true, |
| | | "proxy": true, |
| | | "uploadType": "fileReceptor", |
| | | "imageClassName": "r w-full", |
| | | "receiver": { |
| | | "url": "/mgr/uploadImgAmis", |
| | | "method": "post" |
| | | }, |
| | | "id": "u:15f57e1e7de6", |
| | | "accept": ".jpeg, .jpg, .png, .gif", |
| | | "multiple": false, |
| | | "hideUploadButton": false, |
| | | "fixedSize": false, |
| | | "required": true, |
| | | "mode": "horizontal" |
| | | }, |
| | | { |
| | | "type": "textarea", |
| | | "label": "备注:", |
| | | "name": "textarea", |
| | | "id": "u:d98613414ea8", |
| | | "minRows": 3, |
| | | "maxRows": 20, |
| | | "mode": "horizontal", |
| | | "size": "md" |
| | | }, |
| | | { |
| | | "type": "hidden", |
| | | "name": "id", |
| | | "id": "u:91f4afc2930e", |
| | | "value": `${id}` |
| | | }, |
| | | { |
| | | "type": "flex", |
| | | "id": "u:8254704349a2", |
| | | "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:6d72ddddf222", |
| | | "actionType": "submit" |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | "style": { |
| | | "position": "relative" |
| | | } |
| | | }, |
| | | { |
| | | "type": "grid", |
| | | "columns": [ |
| | | ], |
| | | "id": "u:ec43218540fa" |
| | | } |
| | | ], |
| | | "api": { |
| | | "url": "/ball/cancel", |
| | | "method": "post", |
| | | "messages": { |
| | | }, |
| | | "dataType": "form-data" |
| | | }, |
| | | "actions": [ |
| | | ], |
| | | "onEvent": { |
| | | "submitSucc": { |
| | | "weight": 0, |
| | | "actions": [ |
| | | { |
| | | "args": { |
| | | }, |
| | | "script": "window.parent.TStudent.table.refresh();", |
| | | "actionType": "custom" |
| | | }, |
| | | { |
| | | "args": { |
| | | }, |
| | | "script": "parent.layer.close(window.parent.TStudent.layerIndex);", |
| | | "actionType": "custom" |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | "id": "u:b97e4e9b9f48", |
| | | "actions": [ |
| | | ] |
| | | }; |
| | | |
| | | let amisScoped = amis.embed('#root', amisJSON); |
| | | |
| | | |
| | | })(); |
| | | |
| | | |
| | | </script> |
| | | |
| | | </body> |
| | | </html> |
New file |
| | |
| | | <!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": "", |
| | | "body": [ |
| | | { |
| | | "type": "form", |
| | | "id": "u:6d72ddddf25c", |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "type": "grid", |
| | | "columns": [ |
| | | ], |
| | | "id": "u:313016b48f71" |
| | | }, |
| | | { |
| | | "type": "flex", |
| | | "id": "u:e21645a48093", |
| | | "className": "p-1", |
| | | "items": [ |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:5130236fd5a1", |
| | | "tpl": "入园方式", |
| | | "inline": true, |
| | | "wrapperComponent": "h2" |
| | | } |
| | | ], |
| | | "style": { |
| | | "position": "static", |
| | | "flexWrap": "nowrap" |
| | | }, |
| | | "direction": "row", |
| | | "justify": "center", |
| | | "alignItems": "stretch", |
| | | "isFixedHeight": false, |
| | | "isFixedWidth": false |
| | | }, |
| | | { |
| | | "type": "hidden", |
| | | "name": "id", |
| | | "id": "u:91f4afc2930e", |
| | | "value": `${id}` |
| | | }, |
| | | { |
| | | "type": "radios", |
| | | "id": "u:d98068b4f7d2", |
| | | "label": "请选择:", |
| | | "name": "method", |
| | | "options": [ |
| | | { |
| | | "label": "手环", |
| | | "value": "1" |
| | | } |
| | | ], |
| | | "mode": "inline", |
| | | "required": true |
| | | }, |
| | | { |
| | | "type": "flex", |
| | | "id": "u:8254704349a2", |
| | | "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:6d72ddddf25c", |
| | | "actionType": "submit" |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | "style": { |
| | | "position": "relative" |
| | | } |
| | | }, |
| | | { |
| | | "type": "grid", |
| | | "columns": [ |
| | | ], |
| | | "id": "u:ec43218540fa" |
| | | } |
| | | ], |
| | | "api": { |
| | | "url": "/ball/selectJoin", |
| | | "method": "post", |
| | | "messages": { |
| | | } |
| | | }, |
| | | "actions": [ |
| | | ], |
| | | "onEvent": { |
| | | "submitSucc": { |
| | | "weight": 0, |
| | | "actions": [ |
| | | { |
| | | "args": { |
| | | }, |
| | | "script": "window.parent.TStudent.table.refresh();", |
| | | "actionType": "custom" |
| | | }, |
| | | { |
| | | "args": { |
| | | }, |
| | | "script": "parent.layer.close(window.parent.TStudent.layerIndex);", |
| | | "actionType": "custom" |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | "id": "u:b97e4e9b9f48", |
| | | "actions": [ |
| | | ] |
| | | }; |
| | | |
| | | let amisScoped = amis.embed('#root', amisJSON); |
| | | |
| | | |
| | | })(); |
| | | |
| | | |
| | | </script> |
| | | |
| | | </body> |
| | | </html> |
| | |
| | | </div> |
| | | |
| | | <div class="col-sm-3"> |
| | | <div class="input-group"> |
| | | <div class="input-group-btn open"> |
| | | <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true"> |
| | | 支付方式 |
| | | </button> |
| | | </div> |
| | | <select class="form-control" id="payMethod"> |
| | | <option value="">全部</option> |
| | | <option value=1>微信</option> |
| | | <option value=2>支付宝</option> |
| | | <option value=3>玩湃币</option> |
| | | <option value=4>手动支付</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-sm-3"> |
| | | <div class="input-group"> |
| | | <div class="input-group-btn open"> |
| | | <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true"> |
| | | 支付方式 |
| | | </button> |
| | | </div> |
| | | <select class="form-control" id="state"> |
| | | <option value="">全部</option> |
| | | |
| | | <option value="0">待支付</option> |
| | | <option value="1">待核销</option> |
| | | <option value="2">已到店</option> |
| | | <option value="3">已完成</option> |
| | | <option value="4">已过期</option> |
| | | <option value="5">已取消</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TStudent.search()"/> |
| | | </div> |
| | | </div> |
| | |
| | | <#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"/> |
| | | <#button name="取消凭证" icon="fa-edit" clickFun="TStudent.openTStudentDetail4()" space="true"/> |
| | | |
| | | <#button name="查看详情" icon="fa-edit" clickFun="TStudent.openTStudentDetail5()" space="true"/> |
| | | |
| | | @if(shiro.hasPermission("/tStudent/delete")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="TStudent.delete()" space="true"/> |
| | |
| | | <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)"> |
| | | <select class="form-control" id="siteId" name="siteId" > |
| | | <option >请选择场地</option> |
| | | |
| | | |
| | |
| | | <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" > |
| | | <input class="form-control" id="time" name="time" type="text" onchange="CoursePackageInfo.addTime()"> |
| | | |
| | | </div> |
| | | </div> |
| | |
| | | elem: '#time' |
| | | ,lang:"CN", |
| | | min:0, |
| | | max:10 |
| | | max:10, |
| | | format:'yyyy-MM-dd', |
| | | done: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.set("date",$('#time').val()); |
| | | ajax.start() |
| | | |
| | | var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){ |
| | | console.log("================"+data) |
| | | if(data!=null){ |
| | | let htmlStr = ''; |
| | | for (let i = 0; i < data.length; i++) { |
| | | htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>' |
| | | } |
| | | $("#half").empty().append(htmlStr); |
| | | } |
| | | }) |
| | | ajax1.start() |
| | | |
| | | } |
| | | }); |
| | | |
| | | laydate.render({ |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <style> |
| | | .green-button { |
| | | background-color: green; |
| | | } |
| | | </style> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <input type="hidden" id="id" value="${item.id}"> |
| | | <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.code == item.provinceCode ? 'selected=selected' : ''}>${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.code == item.cityCode ? 'selected=selected' : ''}>${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.id == item.storeId ? 'selected=selected' : ''}>${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> |
| | | <input type="hidden" id="selSiteId" value="${item.siteId}"> |
| | | |
| | | <div class="col-sm-4"> |
| | | <select class="form-control" id="siteId" name="siteId" onchange="CoursePackageInfo.addTime1()" > |
| | | <option >请选择场地</option> |
| | | |
| | | @for(obj in site){ |
| | | <option value="${obj.id}" data-custom-data="1" ${obj.id == item.siteId ? 'selected=selected' : ''} >${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"> |
| | | <input type="hidden" id="selDate" value="${date}"> |
| | | <label class="col-sm-3 control-label">预约时间:</label> |
| | | <div class="col-sm-4"> |
| | | <input class="form-control" id="time" name="time" type="text" value="${date}"> |
| | | |
| | | </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 class="layui-btn-group" id="ttt3"> |
| | | |
| | | @for(obj in timeRanges){ |
| | | <button name="has" type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary' disabled style='background-color: red'" : obj.state == 1 ? "class = 'layui-btn layui-btn-primary green-button'" : "class = 'layui-btn layui-btn-primary'"} onclick="toggleColor(this)">${obj.time}</button> |
| | | <!-- <button type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary' disabled style='background-color: red'" : "class = 'layui-btn layui-btn-primary' "} onclick="toggleColor(this)">${obj.time}</button>--> |
| | | <!-- <button type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary green-button'" : "class = 'layui-btn layui-btn-primary'"} onclick="toggleColor(this)">${obj.time}</button>--> |
| | | @} |
| | | </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" value="${money[0]!}" > |
| | | </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" value="${money[1]!}" > |
| | | |
| | | </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" value="${item.booker}" > |
| | | |
| | | </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" value="${item.phone}" > |
| | | |
| | | </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.addSubmit1()"/> |
| | | <#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, |
| | | format:'yyyy-MM-dd', |
| | | done:function (a) { |
| | | console.log("==============="+$('#time').val()) |
| | | console.log("==============="+$('#selDate').val()) |
| | | console.log("==============="+$('#siteId').val()) |
| | | console.log("==============="+$('#selSiteId').val()) |
| | | |
| | | if ($('#siteId').val() != $('#selSiteId').val()||$('#time').val()!=$('#selDate').val()){ |
| | | $("#ttt3").hide() |
| | | $("#ttt2").show() |
| | | |
| | | }else { |
| | | $("#ttt3").show() |
| | | $("#ttt2").hide() |
| | | |
| | | } |
| | | |
| | | 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() |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | }); |
| | | |
| | | 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> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <style> |
| | | .green-button { |
| | | background-color: green; |
| | | } |
| | | </style> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <input type="hidden" id="id" value="${item.id}"> |
| | | <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" disabled> |
| | | @for(obj in province){ |
| | | <option value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${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" disabled> |
| | | @for(obj in city){ |
| | | <option value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${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" disabled> |
| | | @for(obj in store){ |
| | | <option value="${obj.id}" ${obj.id == item.storeId ? 'selected=selected' : ''}>${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)" disabled> 全场 |
| | | <input type="radio" name="type" value="2" onclick="updateType(2)" disabled> 半场 |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*上课场地:</label> |
| | | <input type="hidden" id="selSiteId" value="${item.siteId}"> |
| | | |
| | | <div class="col-sm-4"> |
| | | <select class="form-control" id="siteId" name="siteId" onchange="CoursePackageInfo.addTime1()" disabled > |
| | | <option >请选择场地</option> |
| | | |
| | | @for(obj in site){ |
| | | <option value="${obj.id}" data-custom-data="1" ${obj.id == item.siteId ? 'selected=selected' : ''} >${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" disabled> |
| | | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <input type="hidden" id="selDate" value="${date}"> |
| | | <label class="col-sm-3 control-label">预约时间:</label> |
| | | <div class="col-sm-4"> |
| | | <input class="form-control" id="time" name="time" type="text" value="${date}" disabled> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*预约时间段:</label> |
| | | <div class="col-sm-5" id="ttt1" disabled=""> |
| | | <div class="layui-btn-group" id="ttt2"> |
| | | |
| | | |
| | | </div> |
| | | |
| | | <div class="layui-btn-group" id="ttt3"> |
| | | |
| | | @for(obj in timeRanges){ |
| | | <button disabled name="has" type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary' disabled style='background-color: red'" : obj.state == 1 ? "class = 'layui-btn layui-btn-primary green-button'" : "class = 'layui-btn layui-btn-primary'"} onclick="toggleColor(this)">${obj.time}</button> |
| | | <!-- <button type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary' disabled style='background-color: red'" : "class = 'layui-btn layui-btn-primary' "} onclick="toggleColor(this)">${obj.time}</button>--> |
| | | <!-- <button type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary green-button'" : "class = 'layui-btn layui-btn-primary'"} onclick="toggleColor(this)">${obj.time}</button>--> |
| | | @} |
| | | </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" value="${money[0]!}" disabled > |
| | | |
| | | </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" value="${money[1]!}" disabled > |
| | | |
| | | </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" value="${item.booker}" disabled > |
| | | |
| | | </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" value="${item.phone}" disabled > |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">操作人:</label> |
| | | <div class="col-sm-4"> |
| | | <input class="form-control" id="cancelUserId" name="cancelUserId" type="text" value="${cancelUser!}" disabled > |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group" disabled> |
| | | <label class="col-sm-3 control-label head-scu-label">*上传凭证:</label> |
| | | <div class="col-sm-2"> |
| | | <div id="introduceDrawingPreId"> |
| | | <div><img width="100px" height="100px" src="${item.voucher}"></div> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">备注:</label> |
| | | <div class="col-sm-4"> |
| | | <textarea class="form-control" id="remark" name="remark" disabled>${item.remark}</textarea > |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | | <!-- <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.addSubmit1()"/>--> |
| | | <#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, |
| | | format:'yyyy-MM-dd', |
| | | done:function (a) { |
| | | console.log("==============="+$('#time').val()) |
| | | console.log("==============="+$('#selDate').val()) |
| | | console.log("==============="+$('#siteId').val()) |
| | | console.log("==============="+$('#selSiteId').val()) |
| | | |
| | | if ($('#siteId').val() != $('#selSiteId').val()||$('#time').val()!=$('#selDate').val()){ |
| | | $("#ttt3").hide() |
| | | $("#ttt2").show() |
| | | |
| | | }else { |
| | | $("#ttt3").show() |
| | | $("#ttt2").hide() |
| | | |
| | | } |
| | | |
| | | 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() |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | }); |
| | | |
| | | 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> |
| | | @} |
| | |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>课程管理</h5> |
| | | <h5>视频课管理</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="managerTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/course/addCourse")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="Course.addCourse()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/course/editCourse")){ |
| | | <#button name="编辑" icon="fa-edit" clickFun="Course.editCourse()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/course/deleteCourse")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="Course.deleteCourse()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/course/upCourse")){ |
| | | <#button name="上架" icon="fa-refresh" clickFun="Course.editCourseState(1)" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/course/downCourse")){ |
| | | <#button name="下架" icon="fa-warning" clickFun="Course.editCourseState(2)" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/course/detailsCourse")){ |
| | | <#button name="详情" icon="fa-check-circle" clickFun="Course.detailsCourse()" space="true"/> |
| | | @} |
| | | </div> |
| | | <#table id="managerTable"/> |
| | | </div> |
| | |
| | | <span class="classNumber_span" ${type == 2||type == 3 ? '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" ></span> |
| | | <span class="paiCoin_span"></span> |
| | | <#button btnCss="info" name="优惠卷" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.openDia(1)"/> |
| | | <#button btnCss="info" name="优惠券" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.openDia(1)"/> |
| | | <i class="fa fa-plus-circle" style="font-size:24px" onclick="addPrice(${type})"></i> |
| | | <input type="text" id = "counpons1" class="counpons" hidden="hidden" > |
| | | </div> |
| | |
| | | @} |
| | | </span> |
| | | <input type="hidden" id="counpons1" value="${couponIds}" class="counpons"> |
| | | <#button btnCss="info" name="优惠卷" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.openDia(1)"/> |
| | | <#button btnCss="info" name="优惠券" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.openDia(1)"/> |
| | | <i class="fa fa-plus-circle" style="font-size:24px" onclick="addPrice(${type})"></i> |
| | | </div> |
| | | </div> |
| | |
| | | @} |
| | | </select> |
| | | |
| | | <#button name="搜索" icon="fa-search" clickFun="Search()"/> |
| | | <#button name="搜索" icon="fa-search" clickFun="BatterData()"/> |
| | | </div> |
| | | <div class="col-sm-10"> |
| | | <div class="row" id="t1" style="margin-left: 100px;"> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="row" id="content3" style="margin-left: 100px;"> |
| | | <div class="col-sm-11"> |
| | | <div class="form-group"> |
| | | <span id="totalNumber3">全球场次总数:</span> |
| | | </div> |
| | | </div> |
| | | </br> |
| | | <div class="col-sm-11" style="display: flex"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*筛选城市:</label> |
| | | <label class="col-sm-3 control-label">*筛选范围:</label> |
| | | <div class="col-sm-9"> |
| | | <select style="width: 200px" class="form-control" id="yearOrMonth3" name="cCode" onchange="getStoreByCity1(this)"> |
| | | <select style="width: 300px" class="form-control" id="yearOrMonth3" name="cCode" > |
| | | <option value="y">年度</option> |
| | | <option value="m">月度</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*筛选内容:</label> |
| | | <div class="col-sm-9" style="display: flex;"> |
| | | <input style="width: 200px" class="form-control" id="con3" placeholder="请输入年份或者月份" type="text"> |
| | | <input style="width: 300px" class="form-control" id="con3" placeholder="请输入年份或者月份" type="text"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*筛选城市:</label> |
| | | <div class="col-sm-9"> |
| | | <select style="width: 200px" class="form-control" id="cCode3" name="cCode" onchange="getStoreByCity1(this)"> |
| | | <select style="width: 300px" class="form-control" id="cCode3" name="cCode" onchange="getStoreByCity3(this)"> |
| | | <option value="">全球</option> |
| | | @for(obj in list){ |
| | | <option style="width: 200px" value="${obj.cityCode}">${obj.city}</option> |
| | | <option style="width: 300px" value="${obj.cityCode}">${obj.city}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <div class="col-sm-11" style="display: flex"> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*筛选场地:</label> |
| | | <div class="col-sm-9"> |
| | | <select style="width: 200px" class="form-control" id="site3" name="site"> |
| | | <select style="width: 300px" class="form-control" id="site3" name="site"> |
| | | <option value="">全球</option> |
| | | @for(obj in sites){ |
| | | <option style="width: 200px" value="${obj.id}">${obj.name}</option> |
| | | <option style="width: 300px" value="${obj.id}">${obj.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | |
| | | <#table id="TSiteTable"/> |
| | | </div> |
| | | <div class="row" id="content4" style="margin-left: 100px;"> |
| | | <div class="col-sm-11"> |
| | | <div class="form-group"> |
| | | <span id="totalNumber4">全球场次总数:</span> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-11" style="display: flex"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*筛选城市:</label> |
| | | <label class="col-sm-3 control-label">*筛选范围:</label> |
| | | <div class="col-sm-9"> |
| | | <select style="width: 200px" class="form-control" id="yearOrMonth4" name="cCode" onchange="getStoreByCity1(this)"> |
| | | <select style="width: 300px" class="form-control" id="yearOrMonth4" name="cCode"> |
| | | <option value="y">年度</option> |
| | | <option value="m">月度</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*筛选内容:</label> |
| | | <div class="col-sm-9" style="display: flex;"> |
| | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*筛选城市:</label> |
| | | <div class="col-sm-9"> |
| | | <select style="width: 300px" class="form-control" id="cCode4" name="cCode" onchange="getStoreByCity1(this)"> |
| | | <select style="width: 300px" class="form-control" id="cCode4" name="cCode" onchange="getStoreByCity4(this)"> |
| | | <option value="">全球</option> |
| | | @for(obj in list){ |
| | | <option style="width: 300px" value="${obj.cityCode}">${obj.city}</option> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | <div class="col-sm-11" style="display: flex"> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*筛选场地:</label> |
| | | <div class="col-sm-9"> |
| | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCompetition.search4()"/> |
| | | <#button name="搜索" icon="fa-search" clickFun="TSite1.search4()"/> |
| | | </div> |
| | | |
| | | <#table id="TSiteTable1"/> |
| | | </div> |
| | | </div> |
| | |
| | | // 时长 |
| | | yT = []; |
| | | mT = []; |
| | | yearX=[]; |
| | | for (let i = 0; i <yDataList.length ; i++) { |
| | | |
| | | yD.push(yDataList[i].total_num); |
| | | yT.push(yDataList[i].batter_time); |
| | | } |
| | |
| | | } |
| | | for (let i = 0; i <resp.yearList.length ; i++) { |
| | | yearX.push(resp.yearList[i]) |
| | | } |
| | | if(resp.yearList.length==0){ |
| | | yearX=[2019,2020,2021,2023] |
| | | } |
| | | var totalNumber= resp.totalNumber; |
| | | var totalTime= resp.totalTime; |
| | |
| | | } |
| | | ] |
| | | }; |
| | | var myChart4 = echarts.init(document.getElementById('number')); |
| | | myChart4.setOption(option); |
| | | var myChart5 = echarts.init(document.getElementById('time')); |
| | | myChart5.setOption(option2); |
| | | }); |
| | | |
| | | ajax.set("storeId",$("#stores").val()); |
| | | ajax.start(); |
| | | } |
| | |
| | | BatterData(); |
| | | SUTUData(); |
| | | Search1(); |
| | | |
| | | // 跨城赛获取全球场次总数 |
| | | var ajax = new $ax(Feng.ctxPath + "/gameData/cityGame", function(data){ |
| | | var totalNumber3= document.getElementById("totalNumber3"); |
| | | totalNumber3.innerText = "全球场次总数:"+data.totalNum; |
| | | }); |
| | | ajax.start(); |
| | | // 获取90°准度赛全球场次总数 |
| | | var ajax4 = new $ax(Feng.ctxPath + "/gameData/cityGameOne", function(data){ |
| | | var totalNumber4= document.getElementById("totalNumber4"); |
| | | totalNumber4.innerText = "全球场次总数:"+data.totalNum; |
| | | }); |
| | | ajax4.start(); |
| | | // 基于准备好的dom,初始化echarts实例 |
| | | var myChart = echarts.init(document.getElementById('number')); |
| | | |
| | |
| | | var cityCode=$(e).val(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tSite/getSiteByCity", function(data){ |
| | | if(data!=null){ |
| | | if (cityCode==""){ |
| | | var content='<option value="">全球</option>'; |
| | | }else{ |
| | | var content='<option value="">全部</option>'; |
| | | } |
| | | |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.id+"'>"+v.name+"</option>"; |
| | | }); |
| | |
| | | ajax.set("oneId",cityCode); |
| | | ajax.start(); |
| | | } |
| | | function getStoreByCity1(e) { |
| | | function getStoreByCity3(e) { |
| | | var cityCode=$(e).val(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tSite/getSiteByCity", function(data){ |
| | | if(data!=null){ |
| | | if (cityCode==""){ |
| | | var content='<option value="">全球</option>'; |
| | | }else{ |
| | | var content='<option value="">全部</option>'; |
| | | } |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.id+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#site1").empty().append(content); |
| | | $("#site3").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("oneId",cityCode); |
| | | ajax.start(); |
| | | } |
| | | function getStoreByCity4(e) { |
| | | var cityCode=$(e).val(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tSite/getSiteByCity", function(data){ |
| | | if(data!=null){ |
| | | if (cityCode==""){ |
| | | var content='<option value="">全球</option>'; |
| | | }else{ |
| | | var content='<option value="">全部</option>'; |
| | | } |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.id+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#site4").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("oneId",cityCode); |
| | |
| | | <div class="row"> |
| | | </div> |
| | | <div class="hidden-xs" id="TCompetitionTableToolbar" role="group"> |
| | | <h3>场地总人次:</h3> |
| | | <h3 id="totalNumber">场地总人次:</h3> |
| | | </div> |
| | | <#table id="TSiteTable"/> |
| | | </div> |
| | |
| | | ,range: true |
| | | ,lang:"en" |
| | | }); |
| | | $(function(){ |
| | | var ajax = new $ax(Feng.ctxPath + "/gateData/totalNum", function(data){ |
| | | var totalNumber= document.getElementById("totalNumber"); |
| | | totalNumber.innerText = "场地总人次:" + data +"次"; |
| | | }); |
| | | ajax.start(); |
| | | }); |
| | | </script> |
| | | @} |
| | |
| | | <#button name="编辑" icon="fa-edit" clickFun="TSite.openInfo()" space="true"/> |
| | | <#button name="冻结" icon="fa-remove" clickFun="TSite.offShelf()" space="true"/> |
| | | <#button name="解冻" icon="fa-check" clickFun="TSite.onShelf()" space="true"/> |
| | | <#button name="分账比例" icon="fa-plus" clickFun="TSite.proportion()"/> |
| | | <#button name="重置密码" icon="fa-search" clickFun="TSite.reload()" space="true"/> |
| | | </div> |
| | | <#table id="TSiteTable"/> |
New file |
| | |
| | | @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: 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> |
| | | <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"> |
| | | <div class="form-horizontal" id="carInfoForm"> |
| | | <div class="row"> |
| | | <div class="col-lg-6" style=""> |
| | | <input hidden id="operatorIdOne" value="${operatorIdOne}"> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*支付宝分账比例(%):</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="alipayProportion" value="${alipayProportion}" placeholder="请输入" type="number"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*微信分账比例(%):</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="wechatProportion" value="${wechatProportion}" placeholder="请输入" type="number"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | |
| | | <div class="form-group"> |
| | | <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="TSite.addSubmit1()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script src="${ctxPath}/modular/system/operator/operator.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: '#tradeTime' |
| | | ,range: true |
| | | ,lang:"CN" |
| | | }); |
| | | laydate.render({ |
| | | elem: '#IDCardTime' |
| | | ,range: true |
| | | ,lang:"CN" |
| | | }); |
| | | laydate.render({ |
| | | elem: '#bTime' |
| | | ,range: true |
| | | ,lang:"CN" |
| | | }); |
| | | function updateHalf(e) { |
| | | if(e==1){ |
| | | $("#benefit").hide() |
| | | }else { |
| | | $("#benefit").show() |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | @} |
New file |
| | |
| | | @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: 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> |
| | | <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"> |
| | | <div class="form-horizontal" id="carInfoForm"> |
| | | <div class="row"> |
| | | <div class="col-lg-6" style=""> |
| | | <input id="operatorId" value="${operatorId}" hidden> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*支付宝认证类型:</label> |
| | | <div class="col-sm-9"> |
| | | <input type="radio" name="alipayType" value="1" checked>个人 |
| | | <input type="radio" name="alipayType" value="2" >企业 |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*支付宝商户号:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="alipayNum" placeholder="请输入" 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="wechatType" value="1" checked>个人 |
| | | <input type="radio" name="wechatType" value="2" >企业 |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*微信商户号:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="wechatNum" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | |
| | | <div class="form-group"> |
| | | <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="TSite.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script src="${ctxPath}/modular/system/operator/operator.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: '#tradeTime' |
| | | ,range: true |
| | | ,lang:"CN" |
| | | }); |
| | | laydate.render({ |
| | | elem: '#IDCardTime' |
| | | ,range: true |
| | | ,lang:"CN" |
| | | }); |
| | | laydate.render({ |
| | | elem: '#bTime' |
| | | ,range: true |
| | | ,lang:"CN" |
| | | }); |
| | | function updateHalf(e) { |
| | | if(e==1){ |
| | | $("#benefit").hide() |
| | | }else { |
| | | $("#benefit").show() |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | @} |
| | |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TCompetitionTableToolbar" role="group"> |
| | | <#button name="分账比例" icon="fa-plus" clickFun="TSite.openAddTSite()"/> |
| | | <#button name="认证" icon="fa-plus" clickFun="TSite.openInfo()"/> |
| | | <#button name="分账比例" icon="fa-plus" clickFun="TSite.proportion()"/> |
| | | </div> |
| | | <#table id="TSiteTable"/> |
| | | </div> |
New file |
| | |
| | | @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: 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> |
| | | <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"> |
| | | <div class="form-horizontal" id="carInfoForm"> |
| | | <div class="row"> |
| | | <div class="col-lg-6" style=""> |
| | | <input hidden id="operatorIdOne" value="${operatorIdOne}"> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*支付宝分账比例:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="alipayProportion" value="${alipay}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*微信分账比例:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="wechatProportion" value="${wechat}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | |
| | | <div class="form-group"> |
| | | <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="TSite.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script src="${ctxPath}/modular/system/operatorUser/operatorUser.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: '#tradeTime' |
| | | ,range: true |
| | | ,lang:"CN" |
| | | }); |
| | | laydate.render({ |
| | | elem: '#IDCardTime' |
| | | ,range: true |
| | | ,lang:"CN" |
| | | }); |
| | | laydate.render({ |
| | | elem: '#bTime' |
| | | ,range: true |
| | | ,lang:"CN" |
| | | }); |
| | | function updateHalf(e) { |
| | | if(e==1){ |
| | | $("#benefit").hide() |
| | | }else { |
| | | $("#benefit").show() |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | @} |
New file |
| | |
| | | @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: 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> |
| | | <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"> |
| | | <div class="form-horizontal" id="carInfoForm"> |
| | | <div class="row"> |
| | | <div class="col-lg-6" style=""> |
| | | <input id="operatorId" value="${operatorId}" hidden> |
| | | <div class="form-group"> |
| | | <label class="col-sm-4 control-label" > |
| | | 支付宝认证类型: |
| | | <input type="radio" name="alipayType" value="1" checked>个人 |
| | | <input type="radio" name="alipayType" value="2" >企业 |
| | | </label> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">支付宝商户号</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="alipayNum" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-4 control-label" > |
| | | 微信认证类型: |
| | | <input type="radio" name="wechatType" value="1" checked>个人 |
| | | <input type="radio" name="wechatType" value="2" >企业 |
| | | </label> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">微信商户号</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="wechatNum" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | |
| | | <div class="form-group"> |
| | | <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="TSite.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script src="${ctxPath}/modular/system/operatorUser/operatorUser.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: '#tradeTime' |
| | | ,range: true |
| | | ,lang:"CN" |
| | | }); |
| | | laydate.render({ |
| | | elem: '#IDCardTime' |
| | | ,range: true |
| | | ,lang:"CN" |
| | | }); |
| | | laydate.render({ |
| | | elem: '#bTime' |
| | | ,range: true |
| | | ,lang:"CN" |
| | | }); |
| | | function updateHalf(e) { |
| | | if(e==1){ |
| | | $("#benefit").hide() |
| | | }else { |
| | | $("#benefit").show() |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | @} |
| | |
| | | <div class="form-group" id="shop"> |
| | | <label class="col-sm-3 control-label">举办门店:</label> |
| | | <div class="col-sm-9"> |
| | | <select class="form-control" id="shopId" name="shopId"> |
| | | <select class="form-control" id="shopId" name="shopId" multiple> |
| | | <option value="">选择门店</option> |
| | | </select> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/modular/system/tCompetition/tCompetition_info.js"></script> |
| | | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css"> |
| | | <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>--> |
| | | <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.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> |
| | | $(document).ready(function() { |
| | | $('#shopId').select2({ |
| | | multiple: true, |
| | | closeOnSelect: false |
| | | }); |
| | | }); |
| | | |
| | | laydate.render({ |
| | | elem: '#startTime' |
| | | ,type:"datetime" |
| | | }); |
| | | laydate.render({ |
| | | elem: '#endTime' |
| | | ,type:"datetime" |
| | | }); |
| | | |
| | | |
| | | |
| | | var vue2 = new Vue({ |
| | | el: '#app1', |
| | | props: { |
| | |
| | | */ |
| | | TStudent.openTStudentDetail = function () { |
| | | if (this.check()) { |
| | | |
| | | if (TStudent.seItem.status!=1){ |
| | | Feng.error("请选择待核销的数据") |
| | | return |
| | | } |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/ball/pre_edit/' + TStudent.seItem.id |
| | | content: Feng.ctxPath + '/ball/yueyue_edit/' + TStudent.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | TStudent.openTStudentDetail5 = function () { |
| | | if (this.check()) { |
| | | |
| | | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/ball/yueyue_info/' + TStudent.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | /** |
| | | * 打开详情 |
| | | * 确认到店 |
| | | */ |
| | | TStudent.openTStudentDetail1 = function () { |
| | | if (this.check()) { |
| | | |
| | | if (TStudent.seItem.status!=1){ |
| | | Feng.error("请选择待核销的数据") |
| | | return |
| | | } |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '', |
| | | area: ['20%', '25%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/ball/joinmethod/' + TStudent.seItem.id |
| | | }); |
| | | |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 确认到店 |
| | | */ |
| | | TStudent.openTStudentDetail4 = function () { |
| | | if (this.check()) { |
| | | |
| | | if (TStudent.seItem.status!=1){ |
| | | Feng.error("请选择待核销的数据") |
| | | return |
| | | } |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '', |
| | | area: ['30%', '40%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/ball/tocancel/' + TStudent.seItem.id |
| | | }); |
| | | |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | TStudent.openTStudentDetail2 = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | |
| | | queryData['store'] = $("#store").val(); |
| | | queryData['peopleName'] = $("#peopleName").val(); |
| | | queryData['phone'] = $("#phone").val(); |
| | | queryData['date'] = $("#peopleName").val(); |
| | | queryData['date'] = $("#date").val(); |
| | | queryData['payMethod'] = $("#payMethod").val(); |
| | | queryData['state'] = $("#state").val(); |
| | | |
| | | |
| | | |
| | |
| | | $("#ttt2").empty().append(content); |
| | | } |
| | | }) |
| | | ajax.set("date",$('#time').val()); |
| | | ajax.start() |
| | | |
| | | var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){ |
| | | console.log("================"+data) |
| | | if(data!=null){ |
| | | let htmlStr = ''; |
| | | for (let i = 0; i < data.length; i++) { |
| | | htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>' |
| | | } |
| | | $("#half").empty().append(htmlStr); |
| | | } |
| | | }) |
| | | ajax1.start() |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | }; |
| | | |
| | | |
| | | |
| | | CoursePackageInfo.addTime1 = function (a) { |
| | | |
| | | |
| | | if ($('#siteId').val() != $('#selSiteId').val()||$('#time').val()!=$('#selDate').val()){ |
| | | $("#ttt3").hide() |
| | | $("#ttt2").show() |
| | | |
| | | }else { |
| | | $("#ttt3").show() |
| | | $("#ttt2").hide() |
| | | |
| | | } |
| | | |
| | | 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){ |
| | |
| | | var values = ""; |
| | | |
| | | for (var i = 0; i < elements.length; i++) { |
| | | values += date +" "+ elements[i].innerText + ","; |
| | | values += date +" "+ elements[i].innerText + ";"; |
| | | } |
| | | |
| | | // 去除最后一个逗号 |
| | |
| | | ajax.start(); |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 新修改 |
| | | */ |
| | | CoursePackageInfo.addSubmit1 = 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 = ""; |
| | | console.log("==============="+elements[0]) |
| | | if ($('#siteId').val() != $('#selSiteId').val()||$('#time').val()!=$('#selDate').val()) { |
| | | for (var i = 0; i < elements.length; i++) { |
| | | if (elements[i].name != 'has') { |
| | | values += date + " " + elements[i].innerText + ";"; |
| | | } |
| | | |
| | | } |
| | | }else { |
| | | for (var i = 0; i < elements.length; i++) { |
| | | if (elements[i].name = 'has') { |
| | | 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(); |
| | | let id = $('#id').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/orderedit", 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.set("id",id); |
| | | |
| | | |
| | | ajax.start(); |
| | | }; |
| | | /** |
| | | * 提交修改 |
| | | */ |
| | |
| | | */ |
| | | CoursePackage.editCoursePackageState = function (state) { |
| | | if (this.check()) { |
| | | |
| | | if(CoursePackage.seItem.state == state){ |
| | | Feng.error("不能重复操作"); |
| | | return |
| | | } |
| | | parent.layer.confirm(state == 1 ? '是否上架' : "是否下架" , { |
| | | btn: ['确定', '取消'] |
| | | }, function (index) { |
| | | let ajax = new $ax(Feng.ctxPath + "/coursePackage/editCoursePackageState", function (data) { |
| | | Feng.success(state == 1 ? '上架' : "下架" + "成功!"); |
| | | CoursePackage.table.refresh(); |
| | |
| | | ajax.set("id", CoursePackage.seItem.id); |
| | | ajax.set("state", state); |
| | | ajax.start(); |
| | | parent.layer.close(index); |
| | | |
| | | }, function (index) { |
| | | parent.layer.close(index); |
| | | } |
| | | |
| | | |
| | | ) |
| | | |
| | | } |
| | | }; |
| | | |
| | |
| | | {field: 'selectItem', checkbox: true}, |
| | | {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '序号', field: 'account_id', visible:true, align: 'center', valign: 'middle'}, |
| | | {title: '昵称', field: 'nickname', visible: true, align: 'center', valign: 'middle',}, |
| | | {title: '昵称', field: 'name', visible: true, align: 'center', valign: 'middle',}, |
| | | {title: '成绩', field: 'score', visible: true, align: 'center', valign: 'middle'}, |
| | | ]; |
| | | }; |
| | |
| | | queryData['date'] = $("#con4").val(); |
| | | queryData['cityCode'] = $("#cCode4").val(); |
| | | queryData['spaceId'] = $("#site4").val(); |
| | | TSite.table.refresh({query: queryData}); |
| | | TSite1.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | TSite.resetSearch = function () { |
| | |
| | | TSite.table = table.init(); |
| | | |
| | | var defaultColunms1 = TSite1.initColumn(); |
| | | var table1 = new BSTable(TSite1.id, "/gameData/listAll", defaultColunms1); |
| | | var table1 = new BSTable(TSite1.id, "/gameData/listAll1", defaultColunms1); |
| | | table1.setPaginationType("client"); |
| | | TSite1.table = table1.init(); |
| | | }); |
| | |
| | | {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: 'number', visible: true, align: 'center', valign: 'middle'} |
| | | {title: '入场人次', field: 'enter_num', visible: true, align: 'center', valign: 'middle'} |
| | | ]; |
| | | }; |
| | | |
| | |
| | | formatter: function (data,row) { |
| | | var btn = ""; |
| | | if(data==1) { |
| | | var str = '<button class="btn btn-outline btn-primary" onclick="TSite.bindOperator('+row.id+')" >去绑定</button>' |
| | | var str = '<button class="btn btn-outline btn-primary" onclick="TSite.Allocationratio('+row.id+')" >去绑定</button>' |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="" onfocus="TUser.tooltip()">' + str + '</p>'] |
| | | }else{ |
| | | var str = '<h3>已绑定</h3>' |
| | |
| | | return true; |
| | | } |
| | | }; |
| | | TSite.bindOperator = function (e) { |
| | | /** |
| | | * 商户号认证 |
| | | */ |
| | | TSite.Allocationratio = function (e) { |
| | | console.log("看看E"); |
| | | console.log(e); |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: "商户认证", |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/operator/proportionAuth/' + e |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | /** |
| | | * 分账比例 |
| | | */ |
| | | TSite.proportion = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length >1 ){ |
| | | Feng.info("只能选择一个运营商商户设置分账比例!"); |
| | | }else { |
| | | if (this.check()) { |
| | | console.log("看看状态") |
| | | console.log(TSite.seItem.status) |
| | | if (TSite.seItem.status==1){ |
| | | Feng.error("当前运营商没有绑定商户号,请先绑定商户号!") |
| | | return; |
| | | } |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: "认证", |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/operatorUser/proportion/' + e |
| | | content: Feng.ctxPath + '/operator/proportion/' + TSite.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | } |
| | | |
| | | }; |
| | | TSite.addSubmit = function(){ |
| | | var alipayType = $("input[name='alipayType']:checked").val(); |
| | | var wechatType = $("input[name='wechatType']:checked").val(); |
| | | var alipayNum = $("#alipayNum").val(); |
| | | var wechatNum = $("#wechatNum").val(); |
| | | var operatorId = $("#operatorId").val(); |
| | | if($("#alipayNum").val()=='' ){ |
| | | Feng.info("请输入支付宝商户号") |
| | | return; |
| | | } |
| | | if($("#wechatNum").val()=='' ){ |
| | | Feng.info("请输入微信商户号") |
| | | return; |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/operator/auth", function(data){ |
| | | Feng.success("认证成功") |
| | | TSite.close(); |
| | | TSite.search(); |
| | | }); |
| | | ajax.set("alipayType",alipayType); |
| | | ajax.set("wechatType",wechatType); |
| | | ajax.set("alipayNum",alipayNum); |
| | | ajax.set("wechatNum",wechatNum); |
| | | ajax.set("operatorId",operatorId); |
| | | ajax.start(); |
| | | }; |
| | | TSite.addSubmit1 = function(){ |
| | | var alipayProportion = $("#alipayProportion").val(); |
| | | var wechatProportion = $("#wechatProportion").val(); |
| | | var operatorIdOne = $("#operatorIdOne").val(); |
| | | if($("#alipayNum").val()=='' ){ |
| | | Feng.info("请输入支付宝分账比例") |
| | | return; |
| | | } |
| | | if($("#wechatNum").val()=='' ){ |
| | | Feng.info("请输入微信分账比例") |
| | | return; |
| | | } |
| | | if (Number(alipayProportion)+Number(wechatProportion)!=100){ |
| | | Feng.info("总比例应该是100%,当前比例:"+Number(Number(alipayProportion)+Number(wechatProportion))); |
| | | return; |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/operator/proportion", function(data){ |
| | | Feng.success("分账比例设置成功") |
| | | TSite.close(); |
| | | TSite.search(); |
| | | }); |
| | | ajax.set("alipayProportion",alipayProportion); |
| | | ajax.set("wechatProportion",wechatProportion); |
| | | ajax.set("operatorIdOne",operatorIdOne); |
| | | ajax.start(); |
| | | }; |
| | | /** |
| | | * 上架 |
| | | */ |
| | |
| | | return true; |
| | | } |
| | | }; |
| | | /** |
| | | * 分账比例 |
| | | */ |
| | | TSite.openAddTSite = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length >1 ){ |
| | | Feng.info("只能选择一个运营商商户设置分账比例!"); |
| | | }else { |
| | | if (this.check()) { |
| | | var index = layer.load(1,{ |
| | | type: 1 |
| | | , title: '添加分账比例' |
| | | , area: ['50%', '50%'] |
| | | , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset |
| | | , id: 'layerDemo' //防止重复弹出cge |
| | | , content: '<div class="form-horizontal">' + |
| | | ' <div class="col-sm-11" >' + |
| | | ' <div class="col-sm-11">' + |
| | | ' <div class="form-group">\n' + |
| | | ' <label class="col-sm-3 control-label">支付宝分账比例:</label>\n' + |
| | | ' <div class="col-sm-9">\n' + |
| | | ' <input class="form-control" placeholder="请输入分账比例" type="text" id="alipay"> '+ |
| | | ' </div>\n' + |
| | | ' </div>\n' + |
| | | ' <div class="form-group">\n' + |
| | | ' <label class="col-sm-3 control-label">微信分账比例:</label>\n' + |
| | | ' <div class="col-sm-9">\n' + |
| | | ' <input class="form-control" placeholder="请输入分账比例" type="text" id="wechat"> '+ |
| | | ' </div>\n' + |
| | | ' </div>\n' + |
| | | ' </div>' + |
| | | ' </div>' + |
| | | '</div>' |
| | | , btn: ['关闭', '保存'] |
| | | , btnAlign: 'c' //按钮居中 |
| | | , shade: 0.5 //不显示遮罩 |
| | | ,load:1 |
| | | , yes: function () { |
| | | layer.closeAll(); |
| | | }, |
| | | btn2:function () { |
| | | let wechat = $("#wechat").val() |
| | | let alipay = $("#alipay").val() |
| | | if(alipay==''){ |
| | | Feng.info("请输入支付宝分账比例") |
| | | return false; |
| | | } |
| | | if(wechat==''){ |
| | | Feng.info("请输入微信分账比例") |
| | | return false; |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/operatorUser/addProportion", function (data) { |
| | | Feng.success("设置成功!"); |
| | | window.location.reload(); |
| | | window.parent.layer.closeAll(); |
| | | }, function (data) { |
| | | Feng.error("操作失败!") |
| | | }); |
| | | ajax.set("id", TSite.seItem.id); |
| | | ajax.set("alipay", alipay); |
| | | ajax.set("wechat", wechat); |
| | | ajax.start(); |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | } |
| | | |
| | | }; |
| | | function UploadFileFn(){ |
| | | $('#upFile').click(); |
| | | } |
| | |
| | | @ResponseBody |
| | | @PostMapping("/listorder") |
| | | public List<Map<String, Object>> listorder(@RequestBody BookingQuery bookingQuery){ |
| | | System.out.println("===bookingQuery===="+bookingQuery); |
| | | return gameService.orderlist(bookingQuery); |
| | | // return game.getId(); |
| | | } |
| | |
| | | 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 |
| | | <where> |
| | | <if test="provinceCode!=null and provinceCode!= ''"> |
| | | and bk.provinceCode=#{provinceCode} |
| | | </if> |
| | | <if test="cityCode!=null and cityCode!= ''"> |
| | | and bk.cityCode=#{cityCode} |
| | | </if> |
| | | |
| | | <if test="store!=null and store!= ''"> |
| | | and st.name=#{store} |
| | | </if> |
| | | |
| | | <if test="peopleName!=null and peopleName!= ''"> |
| | | and bk.booker=#{peopleName} |
| | | </if> |
| | | |
| | | <if test="phone!=null and phone!= ''"> |
| | | and bk.phone=#{phone} |
| | | </if> |
| | | |
| | | |
| | | <if test="date!=null and date!= ''"> |
| | | and bk.times like concat('%',#{date},'%') </if> |
| | | <if test="payMethod!=null "> |
| | | and bk.payType=#{payMethod} |
| | | </if> |
| | | |
| | | <if test="state!=null "> |
| | | and bk.status=#{state} |
| | | </if> |
| | | |
| | | |
| | | </where> |
| | | |
| | | |
| | | |