From 014d7a35addafbc63689cda7c20bae61951f7852 Mon Sep 17 00:00:00 2001 From: luo <2855143437@qq.com> Date: 星期一, 09 十月 2023 18:25:19 +0800 Subject: [PATCH] 10.9 --- cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html | 44 + cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java | 3 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java | 6 cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js | 193 ++++ cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html | 192 ++++ cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html | 41 .idea/workspace.xml | 121 ++ cloud-server-management/src/main/resources/mapper/TStoreMapper.xml | 11 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js | 13 cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html | 2 cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html | 2 cloud-server-account/src/test/java/com/dsh/AccountApplicationTests.java | 22 cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js | 73 + cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/join.html | 189 ++++ cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/MethodDto.java | 9 cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java | 1 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_edit.html | 354 ++++++++ cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html | 23 cloud-server-other/src/main/resources/mapper/GameMapper.xml | 32 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java | 4 cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java | 3 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html | 67 + cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java | 375 +++++++++ cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html | 384 +++++++++ cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/cancel.html | 206 +++++ 25 files changed, 2,281 insertions(+), 89 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index aacdc06..f73921d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -25,13 +25,26 @@ <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" /> @@ -79,43 +92,43 @@ <option name="hideEmptyMiddlePackages" value="true" /> <option name="showLibraryContents" value="true" /> </component> - <component name="PropertiesComponent">{ - "keyToString": { - "DefaultHtmlFileTemplate": "HTML File", - "RequestMappingsPanelOrder0": "0", - "RequestMappingsPanelOrder1": "1", - "RequestMappingsPanelWidth0": "75", - "RequestMappingsPanelWidth1": "75", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "master", - "ignore.virus.scanning.warn.message": "true", - "last_opened_file_path": "D:/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" /> @@ -147,6 +160,30 @@ <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> @@ -235,8 +272,9 @@ </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" /> @@ -248,6 +286,7 @@ </list> <recent_temporary> <list> + <item itemvalue="JUnit.AccountApplicationTests.contextLoads" /> <item itemvalue="应用程序.BigDecimalToChineseWords" /> </list> </recent_temporary> @@ -307,7 +346,7 @@ <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> @@ -608,7 +647,15 @@ <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"> @@ -650,7 +697,8 @@ <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> @@ -674,11 +722,6 @@ <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> diff --git a/cloud-server-account/src/test/java/com/dsh/AccountApplicationTests.java b/cloud-server-account/src/test/java/com/dsh/AccountApplicationTests.java new file mode 100644 index 0000000..455dcdd --- /dev/null +++ b/cloud-server-account/src/test/java/com/dsh/AccountApplicationTests.java @@ -0,0 +1,22 @@ +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()); + } + +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java index 0a958da..07185a1 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java +++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java @@ -7,6 +7,7 @@ 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; @@ -69,4 +70,6 @@ void inset(JsDto jsDto); JsDto get(Integer id); + + List<SelectDto> getSelect(); } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java index 3c4532d..ae08367 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java @@ -830,8 +830,10 @@ 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); diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java index 210b1ff..4efb025 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java @@ -22,10 +22,7 @@ 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; @@ -56,7 +53,9 @@ 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 @@ -106,6 +105,72 @@ 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); + } /** * 获取变更列表 @@ -123,7 +188,7 @@ @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 @@ -148,6 +213,13 @@ 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); @@ -285,7 +357,7 @@ @RequestMapping("/pre_add") public String add(Model model) { - + model.addAttribute("is","${is}"); return PREFIX+"ball_pre_add.html"; } @@ -301,6 +373,260 @@ 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") @@ -434,11 +760,13 @@ @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(";"); @@ -503,6 +831,25 @@ } 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); + + } @@ -556,4 +903,14 @@ 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); + } + } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/MethodDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/MethodDto.java new file mode 100644 index 0000000..6af7834 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/MethodDto.java @@ -0,0 +1,9 @@ +package com.dsh.guns.modular.system.model.dto; + +import lombok.Data; + +@Data +public class MethodDto { + Integer id; + Integer method; +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java index 55d1c2b..01baa7a 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java @@ -3,6 +3,7 @@ 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; @@ -71,4 +72,6 @@ void insert(JsDto jsDto); JsDto get(Integer id); + + List<SelectDto> getSelect(); } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java index 2ac311e..f66f1c7 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java @@ -8,6 +8,7 @@ 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; @@ -104,6 +105,11 @@ } @Override + public List<SelectDto> getSelect() { + return this.baseMapper.getSelect(); + } + + @Override public List<TImgConfig> getConfig() { return this.baseMapper.getConfig1(); diff --git a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml index e247e9d..5877e09 100644 --- a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml +++ b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml @@ -127,4 +127,15 @@ <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> \ No newline at end of file diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html index 8eef478..caf096a 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html @@ -42,15 +42,24 @@ { "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, @@ -58,12 +67,38 @@ "horizontal": { "leftFixed": "lg" }, - "options": [ - { - "label": "等待沟通中", - "value": "等待沟通中" + "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": [ + { + "componentId": "u:c037c33c2c81", + "args": { + "value": "$event.data.value" + }, + "actionType": "setValue" + } + ] + } + }, + "trueValue": "平台", + "falseValue": 0, + "mode": "inline" }, { "type": "select", @@ -214,6 +249,7 @@ }, "value": "", "required": true + }, { "type": "input-text", @@ -224,6 +260,7 @@ "clearValueOnHidden": false, "hidden": false, "required": true + }, { "type": "button", @@ -301,6 +338,16 @@ "mode": "inline", "labelClassName": "text-dark m-b", "value": "14" + }, + { + "type": "tpl", + "id": "u:587781d5d181", + "tpl": "                                ", + "inline": true, + "wrapperComponent": "", + "style": { + "marginLeft": "0" + } }, { "type": "input-text", @@ -385,6 +432,16 @@ "value": "16" }, { + "type": "tpl", + "id": "u:587781d5d181", + "tpl": "                                ", + "inline": true, + "wrapperComponent": "", + "style": { + "marginLeft": "0" + } + }, + { "type": "input-text", "label": "玩派币", "name": "shequCoin", @@ -466,6 +523,16 @@ "value": "13" }, { + "type": "tpl", + "id": "u:587781d5d181", + "tpl": "                                ", + "inline": true, + "wrapperComponent": "", + "style": { + "marginLeft": "0" + } + }, + { "type": "input-text", "label": "玩派币", "name": "shemenCoin", @@ -544,10 +611,20 @@ "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" @@ -635,6 +712,16 @@ "value": "1" }, { + "type": "tpl", + "id": "u:587781d5d181", + "tpl": "                                ", + "inline": true, + "wrapperComponent": "", + "style": { + "marginLeft": "0" + } + }, + { "type": "input-text", "label": "玩派币", "name": "fangkuaiCoin", @@ -714,6 +801,16 @@ "mode": "inline", "labelClassName": "text-dark m-b", "value": "7" + }, + { + "type": "tpl", + "id": "u:587781d5d181", + "tpl": "                                ", + "inline": true, + "wrapperComponent": "", + "style": { + "marginLeft": "0" + } }, { "type": "input-text", @@ -803,6 +900,16 @@ "value": "8" }, { + "type": "tpl", + "id": "u:587781d5d181", + "tpl": "                                ", + "inline": true, + "wrapperComponent": "", + "style": { + "marginLeft": "0" + } + }, + { "type": "input-text", "label": "玩派币", "name": "sqCoin", @@ -883,6 +990,16 @@ "mode": "inline", "labelClassName": "text-dark m-b", "value": "10" + }, + { + "type": "tpl", + "id": "u:587781d5d181", + "tpl": "                                ", + "inline": true, + "wrapperComponent": "", + "style": { + "marginLeft": "0" + } }, { "type": "input-text", @@ -966,6 +1083,16 @@ "value": "11" }, { + "type": "tpl", + "id": "u:587781d5d181", + "tpl": "                                ", + "inline": true, + "wrapperComponent": "", + "style": { + "marginLeft": "0" + } + }, + { "type": "input-text", "label": "玩派币", "name": "zs2Coin", @@ -1036,7 +1163,7 @@ }, { "type": "hidden", - "label": "游戏名称", + "label": "", "name": "ly", "id": "u:c4a543b6cda0", "mode": "inline", @@ -1045,12 +1172,22 @@ }, { "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", @@ -1137,10 +1274,18 @@ "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" } ] } @@ -1166,7 +1311,20 @@ "dataType": "form-data" }, "actions": [ - ] + ], + "onEvent": { + "submitSucc": { + "weight": 0, + "actions": [ + { + "args": { + }, + "script": "parent.layer.close(window.parent.TStudent.layerIndex);", + "actionType": "custom" + } + ] + } + } } ] }; diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html index 6b53d15..f375f7f 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html @@ -45,12 +45,21 @@ "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, @@ -58,12 +67,38 @@ "horizontal": { "leftFixed": "lg" }, - "options": [ - { - "label": "等待沟通中", - "value": "等待沟通中" + "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": [ + { + "componentId": "u:c037c33c2c81", + "args": { + "value": "$event.data.value" + }, + "actionType": "setValue" + } + ] + } + }, + "trueValue": "平台", + "falseValue": 0, + "mode": "inline" }, { "type": "select", @@ -1245,10 +1280,18 @@ "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" } ] } diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/cancel.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/cancel.html new file mode 100644 index 0000000..624df13 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/cancel.html @@ -0,0 +1,206 @@ +<!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> \ No newline at end of file diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/join.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/join.html new file mode 100644 index 0000000..1ff3eb8 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/join.html @@ -0,0 +1,189 @@ +<!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> \ No newline at end of file diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html index 0aafb2c..f4eef17 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html @@ -55,6 +55,45 @@ </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> @@ -62,7 +101,10 @@ <#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"/> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html index d64fa91..3ced3d4 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html @@ -52,7 +52,7 @@ <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> @@ -76,7 +76,7 @@ <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> @@ -248,7 +248,42 @@ 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({ diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_edit.html new file mode 100644 index 0000000..6dd45c1 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_edit.html @@ -0,0 +1,354 @@ +@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> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html new file mode 100644 index 0000000..4ee4007 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html @@ -0,0 +1,384 @@ +@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> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html index cb7fc3a..f66df1d 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html @@ -205,7 +205,7 @@ <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> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html index c9d8e1b..7142138 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html @@ -221,7 +221,7 @@ @} </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> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html index b49d32e..92cd00c 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html @@ -70,7 +70,7 @@ <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> @@ -193,10 +193,31 @@ </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: { diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js index 9403aa8..cf527c3 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js @@ -127,23 +127,88 @@ */ 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, @@ -185,7 +250,9 @@ 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(); diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js index 9dc4393..4456b15 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js @@ -62,6 +62,59 @@ $("#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){ @@ -114,7 +167,7 @@ var values = ""; for (var i = 0; i < elements.length; i++) { - values += date +" "+ elements[i].innerText + ","; + values += date +" "+ elements[i].innerText + ";"; } // 去除最后一个逗号 @@ -204,6 +257,144 @@ 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(); +}; /** * 提交修改 */ diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js index 413b667..e951696 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js @@ -167,10 +167,14 @@ */ 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(); @@ -180,6 +184,15 @@ ajax.set("id", CoursePackage.seItem.id); ajax.set("state", state); ajax.start(); + parent.layer.close(index); + + }, function (index) { + parent.layer.close(index); + } + + + ) + } }; diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java index 9494de6..ff9fa6c 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java +++ b/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java @@ -83,6 +83,7 @@ @ResponseBody @PostMapping("/listorder") public List<Map<String, Object>> listorder(@RequestBody BookingQuery bookingQuery){ + System.out.println("===bookingQuery===="+bookingQuery); return gameService.orderlist(bookingQuery); // return game.getId(); } diff --git a/cloud-server-other/src/main/resources/mapper/GameMapper.xml b/cloud-server-other/src/main/resources/mapper/GameMapper.xml index fb0656a..7ba2226 100644 --- a/cloud-server-other/src/main/resources/mapper/GameMapper.xml +++ b/cloud-server-other/src/main/resources/mapper/GameMapper.xml @@ -36,7 +36,39 @@ 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> -- Gitblit v1.7.1