Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai
Conflicts:
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java
| | |
| | | <modules> |
| | | <module fileurl="file://$PROJECT_DIR$/.idea/PlayPai.iml" filepath="$PROJECT_DIR$/.idea/PlayPai.iml" /> |
| | | <module fileurl="file://$PROJECT_DIR$/cloud-server-course/mb-cloud-course.iml" filepath="$PROJECT_DIR$/cloud-server-course/mb-cloud-course.iml" /> |
| | | <module fileurl="file://$PROJECT_DIR$/cloud-server-parent/mb-cloud-parent.iml" filepath="$PROJECT_DIR$/cloud-server-parent/mb-cloud-parent.iml" /> |
| | | </modules> |
| | | </component> |
| | | </project> |
| | |
| | | <select /> |
| | | </component> |
| | | <component name="ChangeListManager"> |
| | | <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="9.15.1"> |
| | | <change afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/resources/mapper/TStudentMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/resources/mapper/TStudentMapper.xml" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ITStudentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ITStudentService.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TStudentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TStudentServiceImpl.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ResultUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ResultUtil.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/mapper/BannerMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/mapper/BannerMapper.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/IBannerService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/IBannerService.java" afterDir="false" /> |
| | | <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/BannerServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/BannerServiceImpl.java" afterDir="false" /> |
| | | </list> |
| | | <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="学员2" /> |
| | | <option name="SHOW_DIALOG" value="false" /> |
| | | <option name="HIGHLIGHT_CONFLICTS" value="true" /> |
| | | <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> |
| | | <option name="LAST_RESOLUTION" value="IGNORE" /> |
| | | </component> |
| | | <component name="ChangesViewManager"> |
| | | <option name="groupingKeys"> |
| | | <option value="directory" /> |
| | | </option> |
| | | </component> |
| | | <component name="FileTemplateManagerImpl"> |
| | | <option name="RECENT_TEMPLATES"> |
| | |
| | | <option name="hideEmptyMiddlePackages" value="true" /> |
| | | <option name="showLibraryContents" value="true" /> |
| | | </component> |
| | | <component name="PropertiesComponent"><![CDATA[{ |
| | | "keyToString": { |
| | | "DefaultHtmlFileTemplate": "HTML File", |
| | | "RequestMappingsPanelOrder0": "0", |
| | | "RequestMappingsPanelOrder1": "1", |
| | | "RequestMappingsPanelWidth0": "75", |
| | | "RequestMappingsPanelWidth1": "75", |
| | | "WebServerToolWindowFactoryState": "false", |
| | | "git-widget-placeholder": "master", |
| | | "ignore.virus.scanning.warn.message": "true", |
| | | "last_opened_file_path": "D:/ttt/java/PlayPai/cloud-server-other/src/main/resources/mapper", |
| | | "node.js.detected.package.eslint": "true", |
| | | "node.js.detected.package.tslint": "true", |
| | | "node.js.selected.package.eslint": "(autodetect)", |
| | | "node.js.selected.package.tslint": "(autodetect)", |
| | | "project.structure.last.edited": "模块", |
| | | "project.structure.proportion": "0.15", |
| | | "project.structure.side.proportion": "0.54367816", |
| | | "spring.configuration.checksum": "7fb6c6ffe49cf7315145a28a96be3d8f", |
| | | "vue.rearranger.settings.migration": "true" |
| | | <component name="PropertiesComponent">{ |
| | | "keyToString": { |
| | | "DefaultHtmlFileTemplate": "HTML File", |
| | | "RequestMappingsPanelOrder0": "0", |
| | | "RequestMappingsPanelOrder1": "1", |
| | | "RequestMappingsPanelWidth0": "75", |
| | | "RequestMappingsPanelWidth1": "75", |
| | | "WebServerToolWindowFactoryState": "false", |
| | | "git-widget-placeholder": "master", |
| | | "ignore.virus.scanning.warn.message": "true", |
| | | "last_opened_file_path": "D:/JavaTool/PlayPai1/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent", |
| | | "node.js.detected.package.eslint": "true", |
| | | "node.js.detected.package.tslint": "true", |
| | | "node.js.selected.package.eslint": "(autodetect)", |
| | | "node.js.selected.package.tslint": "(autodetect)", |
| | | "nodejs_package_manager_path": "npm", |
| | | "project.structure.last.edited": "模块", |
| | | "project.structure.proportion": "0.15", |
| | | "project.structure.side.proportion": "0.54367816", |
| | | "settings.editor.selected.configurable": "MavenSettings", |
| | | "spring.configuration.checksum": "b0c8222ba40624e179f539b98c2e8cad", |
| | | "vue.rearranger.settings.migration": "true" |
| | | } |
| | | }]]></component> |
| | | }</component> |
| | | <component name="ReactorSettings"> |
| | | <option name="notificationShown" value="true" /> |
| | | </component> |
| | | <component name="RecentsManager"> |
| | | <key name="CopyFile.RECENT_KEYS"> |
| | | <recent name="D:\ttt\java\PlayPai\cloud-server-other\src\main\resources\mapper" /> |
| | | <recent name="D:\ttt\java\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system\tStudent" /> |
| | | <recent name="D:\ttt\java\PlayPai\cloud-server-management\src\main\webapp\static" /> |
| | | <recent name="D:\ttt\java\PlayPai\cloud-server-parent" /> |
| | | <recent name="D:\ttt\java\PlayPai\cloud-server-management\src\main\resources\mapper" /> |
| | | <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system\tStudent" /> |
| | | <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\coursePackage" /> |
| | | <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\tCoupon" /> |
| | | <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system\coursePackage" /> |
| | | <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system" /> |
| | | </key> |
| | | <key name="MoveFile.RECENT_KEYS"> |
| | | <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\tStudent" /> |
| | | <recent name="D:\JavaTool\PlayPai1\cloud-server-parent" /> |
| | | <recent name="D:\ttt\java\PlayPai\cloud-server-parent" /> |
| | | </key> |
| | | <key name="CopyClassDialog.RECENTS_KEY"> |
| | | <recent name="com.dsh.course.entity.dto" /> |
| | | <recent name="com.dsh.course.feignClient.other" /> |
| | | <recent name="com.dsh.course.dto" /> |
| | | <recent name="com.dsh.account.dto" /> |
| | | <recent name="com.dsh.course.mapper" /> |
| | | <recent name="com.dsh.course.service.impl" /> |
| | | <recent name="com.dsh.course.service" /> |
| | | <recent name="com.dsh.course.entity" /> |
| | | <recent name="com.dsh.course.entity.dto" /> |
| | | </key> |
| | | </component> |
| | | <component name="RunDashboard"> |
| | |
| | | </set> |
| | | </option> |
| | | </component> |
| | | <component name="RunManager" selected="Spring Boot.AuthApplication"> |
| | | <component name="RunManager" selected="Spring Boot.ManagementApplication"> |
| | | <configuration name="BigDecimalToChineseWords" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> |
| | | <option name="MAIN_CLASS_NAME" value="com.dsh.guns.modular.system.util.BigDecimalToChineseWords" /> |
| | | <module name="mb-cloud-management" /> |
| | | <extension name="coverage"> |
| | | <pattern> |
| | | <option name="PATTERN" value="com.dsh.guns.modular.system.util.*" /> |
| | | <option name="ENABLED" value="true" /> |
| | | </pattern> |
| | | </extension> |
| | | <method v="2"> |
| | | <option name="Make" enabled="true" /> |
| | | </method> |
| | | </configuration> |
| | | <configuration name="AccountApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> |
| | | <module name="mb-cloud-account" /> |
| | | <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" /> |
| | |
| | | </configuration> |
| | | <list> |
| | | <item itemvalue="Spring Boot.GatewayApplication" /> |
| | | <item itemvalue="Spring Boot.UserApplication" /> |
| | | <item itemvalue="Spring Boot.AccountApplication" /> |
| | | <item itemvalue="Spring Boot.ManagementApplication" /> |
| | | <item itemvalue="Spring Boot.CourseApplication" /> |
| | | <item itemvalue="Spring Boot.OtherApplication" /> |
| | | <item itemvalue="Spring Boot.UserApplication" /> |
| | | <item itemvalue="Spring Boot.AuthApplication" /> |
| | | <item itemvalue="Spring Boot.ActivityApplication" /> |
| | | <item itemvalue="Spring Boot.CourseApplication" /> |
| | | <item itemvalue="Spring Boot.CompetitionApplication" /> |
| | | <item itemvalue="应用程序.BigDecimalToChineseWords" /> |
| | | </list> |
| | | <recent_temporary> |
| | | <list> |
| | | <item itemvalue="应用程序.BigDecimalToChineseWords" /> |
| | | </list> |
| | | </recent_temporary> |
| | | </component> |
| | | <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" /> |
| | | <component name="SvnConfiguration"> |
| | |
| | | <workItem from="1694826468892" duration="22165000" /> |
| | | <workItem from="1694931109193" duration="31686000" /> |
| | | <workItem from="1695084815207" duration="29663000" /> |
| | | <workItem from="1695138476053" duration="63000" /> |
| | | <workItem from="1695138628399" duration="396000" /> |
| | | <workItem from="1695139199151" duration="117000" /> |
| | | <workItem from="1695139544607" duration="173000" /> |
| | | <workItem from="1695139722530" duration="14000" /> |
| | | <workItem from="1695139741242" duration="4527000" /> |
| | | <workItem from="1695162059666" duration="1120000" /> |
| | | <workItem from="1695163191288" duration="585000" /> |
| | | <workItem from="1695170647169" duration="6776000" /> |
| | | <workItem from="1695178072108" duration="30661000" /> |
| | | <workItem from="1695250896481" duration="445000" /> |
| | | <workItem from="1695255303249" duration="37521000" /> |
| | | <workItem from="1695342171677" duration="37810000" /> |
| | | <workItem from="1695430054273" duration="24454000" /> |
| | | <workItem from="1695461202457" duration="322000" /> |
| | | </task> |
| | | <task id="LOCAL-00001" summary="后台代码删除"> |
| | | <created>1690249807612</created> |
| | |
| | | <option name="project" value="LOCAL" /> |
| | | <updated>1694749099246</updated> |
| | | </task> |
| | | <option name="localTasksCounter" value="15" /> |
| | | <task id="LOCAL-00015" summary="学员"> |
| | | <option name="closed" value="true" /> |
| | | <created>1695461057360</created> |
| | | <option name="number" value="00015" /> |
| | | <option name="presentableId" value="LOCAL-00015" /> |
| | | <option name="project" value="LOCAL" /> |
| | | <updated>1695461057360</updated> |
| | | </task> |
| | | <task id="LOCAL-00016" summary="学员2"> |
| | | <option name="closed" value="true" /> |
| | | <created>1695461216122</created> |
| | | <option name="number" value="00016" /> |
| | | <option name="presentableId" value="LOCAL-00016" /> |
| | | <option name="project" value="LOCAL" /> |
| | | <updated>1695461216122</updated> |
| | | </task> |
| | | <option name="localTasksCounter" value="17" /> |
| | | <servers /> |
| | | </component> |
| | | <component name="TypeScriptGeneratedFilesManager"> |
| | |
| | | <MESSAGE value="后台代码删除" /> |
| | | <MESSAGE value="后台代码" /> |
| | | <MESSAGE value="9.15" /> |
| | | <option name="LAST_COMMIT_MESSAGE" value="9.15" /> |
| | | <MESSAGE value="学员" /> |
| | | <MESSAGE value="学员2" /> |
| | | <option name="LAST_COMMIT_MESSAGE" value="学员2" /> |
| | | </component> |
| | | <component name="XDebuggerManager"> |
| | | <breakpoint-manager> |
| | |
| | | </breakpoints> |
| | | </breakpoint-manager> |
| | | </component> |
| | | <component name="XSLT-Support.FileAssociations.UIState"> |
| | | <expand /> |
| | | <select /> |
| | | </component> |
| | | <component name="masterDetails"> |
| | | <states> |
| | | <state key="ArtifactsStructureConfigurable.UI"> |
| | |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | |
| | | } |
| | | |
| | | @ResponseBody |
| | |
| | | @ApiOperation(value = "上课首页分配课时-课程列表", tags = {"APP-开始上课"}) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), |
| | | @ApiImplicitParam(value = "分配给课包id", name = "packetId", required = true, dataType = "string"), |
| | | @ApiImplicitParam(value = "分配给课包id", name = "packetId", required = true, dataType = "Long"), |
| | | }) |
| | | public ResultUtil<Integer> weeksOfAddHours(Integer packetId){ |
| | | public ResultUtil<Integer> weeksOfAddHours(Long packetId){ |
| | | try { |
| | | Integer appUserId = tokenUtil.getUserIdFormRedis(); |
| | | if(null == appUserId){ |
| | |
| | | } |
| | | TAppGift one = appGiftService.getOne(new LambdaQueryWrapper<TAppGift>().eq(TAppGift::getUserId, appUserId)); |
| | | Boolean b= false; |
| | | Integer i=0; |
| | | if(one!=null && one.getNum()>0){ |
| | | b =appGiftService.weeksOfAddHours(packetId,appUserId,one.getNum()); |
| | | i=appGiftService.weeksOfAddHours(packetId,appUserId,one.getNum()); |
| | | |
| | | } |
| | | if(b){ |
| | | if(i==1){ |
| | | // 送完清0 |
| | | one.setNum(0); |
| | | appGiftService.updateById(one); |
| | |
| | | @ApiOperation(value = "联系客服-常见问题列表", tags = {"APP-探索玩湃"}) |
| | | public ResultUtil<List<QuestionIns>> queryFrequentlyAskedQuestionDetails(){ |
| | | try { |
| | | return ResultUtil.success(tsService.queryQuestionData()); |
| | | List<QuestionIns> questionIns = tsService.queryQuestionData(); |
| | | return ResultUtil.success(questionIns); |
| | | }catch (Exception e){ |
| | | return ResultUtil.runErr(); |
| | | } |
| | |
| | | package com.dsh.account.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.dsh.account.dto.CreateHistoryDto; |
| | | import com.dsh.account.dto.GetHistoryDto; |
| | | import com.dsh.account.dto.StudentSearch; |
| | | import com.dsh.account.dto.TStudentDto; |
| | | import com.dsh.account.dto.*; |
| | | import com.dsh.account.entity.GiftSearchDto; |
| | | import com.dsh.account.entity.TStudent; |
| | | import com.dsh.account.feignclient.course.CoursePaymentClient; |
| | | import com.dsh.account.feignclient.course.model.TCoursePackagePayment; |
| | | import com.dsh.account.model.StudentVo; |
| | | import com.dsh.account.service.TStudentService; |
| | | import com.dsh.account.util.ResultUtil; |
| | |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import springfox.documentation.swagger2.mappers.ModelMapper; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 根据名称模糊搜索学员 |
| | | * @param name |
| | |
| | | List<GetHistoryDto> getHistoryDtos = studentService.getHistory(); |
| | | return getHistoryDtos; |
| | | } |
| | | |
| | | |
| | | @Resource |
| | | private CoursePaymentClient paymentClient; |
| | | @ResponseBody |
| | | @PostMapping("/student/giftSelect") |
| | | public List<SelectDto> giftSelect(@RequestBody GiftSearchDto giftSearchDto){ |
| | | System.out.println("======giftSelect=========giftSearchDto===="+giftSearchDto); |
| | | |
| | | // Integer appId = studentService.getGiftSelect(giftSearchDto); |
| | | TCoursePackagePayment coursePackagePaymentById = paymentClient.getCoursePackagePaymentById(giftSearchDto.getId()); |
| | | // System.out.println("=======giftSelect======appId====>"+appId); |
| | | List<TStudent> selectDtos = studentService.list(new QueryWrapper<TStudent>() |
| | | .select("name, id") |
| | | .eq("state", 1) |
| | | .eq("name", giftSearchDto.getName()).eq("phone",giftSearchDto.getPhone()).ne("appUserId",coursePackagePaymentById.getAppUserId())); |
| | | |
| | | |
| | | List<SelectDto> list = new ArrayList<>(); |
| | | for (TStudent student : selectDtos) { |
| | | SelectDto selectDto = new SelectDto(); |
| | | selectDto.setValue(student.getName()); |
| | | selectDto.setId(student.getId()); |
| | | list.add(selectDto); |
| | | } |
| | | System.out.println("=======giftSelect======selectDtos====>"+list); |
| | | return list; |
| | | } |
| | | } |
New file |
| | |
| | | package com.dsh.account.entity; |
| | | |
| | | import io.swagger.models.auth.In; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class GiftSearchDto { |
| | | String name; |
| | | String phone; |
| | | Integer id; |
| | | } |
| | |
| | | @PostMapping("/base/coursePack/delPaymentCoursePackage") |
| | | public boolean delPaymentCoursePackage(@RequestBody Integer payId); |
| | | |
| | | |
| | | @PostMapping("/base/coursePack/getCoursePackagePaymentById") |
| | | public TCoursePackagePayment getCoursePackagePaymentById(@RequestBody Integer id); |
| | | |
| | | @PostMapping("/base/coursePack/updatePaymentCoursePackage") |
| | | void updatePaymentCoursePackage(@RequestBody TCoursePackagePayment coursePackagePayment); |
| | | |
| | |
| | | List<TCoursePackagePayment> getCoursePackagePaymentOfCode(@RequestBody String code); |
| | | |
| | | @PostMapping("/base/coursePack/sendHours") |
| | | Boolean sendHours(String s); |
| | | Integer sendHours(String s); |
| | | |
| | | @PostMapping("/base/coursePack/getClassHour") |
| | | Integer getClassHour(Integer courseConfigId); |
| | |
| | | |
| | | @Data |
| | | public class StuCourseResp { |
| | | private Long id; |
| | | |
| | | @ApiModelProperty(value = "课包id") |
| | | private Integer courseId; |
| | |
| | | package com.dsh.account.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dsh.account.dto.CreateHistoryDto; |
| | | import com.dsh.account.dto.GetHistoryDto; |
| | | import com.dsh.account.dto.StudentSearch; |
| | | import com.dsh.account.dto.TStudentDto; |
| | | import com.dsh.account.dto.*; |
| | | import com.dsh.account.entity.GiftSearchDto; |
| | | import com.dsh.account.entity.TStudent; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | |
| | | void createHistory(@Param("createHistoryDto") CreateHistoryDto createHistoryDto); |
| | | |
| | | List<GetHistoryDto> getHistory(); |
| | | |
| | | |
| | | |
| | | Integer getGiftSelect(@Param("giftSearchDto")GiftSearchDto giftSearchDto); |
| | | } |
| | |
| | | @Data |
| | | public class RegisteredCourse { |
| | | |
| | | private Long id; |
| | | |
| | | @ApiModelProperty(value = "课程ID") |
| | | private Integer courseId; |
| | | |
| | |
| | | public class QuestionIns { |
| | | |
| | | @ApiModelProperty(value = "问题id") |
| | | private Integer noticeId; |
| | | private Integer quesId; |
| | | |
| | | @ApiModelProperty(value = "问题标题") |
| | | private String noticeTitle; |
| | | private String quesTitle; |
| | | |
| | | @ApiModelProperty(value = "答复内容") |
| | | private String noticeContents; |
| | | private String quesContents; |
| | | |
| | | } |
| | |
| | | */ |
| | | public interface TAppGiftService extends IService<TAppGift> { |
| | | |
| | | Boolean weeksOfAddHours(Integer packetId,Integer appUserId,Integer num); |
| | | Integer weeksOfAddHours(Long packetId,Integer appUserId,Integer num); |
| | | |
| | | |
| | | } |
| | |
| | | package com.dsh.account.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.dsh.account.dto.CreateHistoryDto; |
| | | import com.dsh.account.dto.GetHistoryDto; |
| | | import com.dsh.account.dto.StudentSearch; |
| | | import com.dsh.account.dto.TStudentDto; |
| | | import com.dsh.account.dto.*; |
| | | import com.dsh.account.entity.GiftSearchDto; |
| | | import com.dsh.account.entity.TStudent; |
| | | import com.dsh.account.feignclient.competition.model.PurchaseRecordVo; |
| | | import com.dsh.account.feignclient.course.model.RecordAppoint; |
| | |
| | | void createHistory(CreateHistoryDto createHistoryDto); |
| | | |
| | | List<GetHistoryDto> getHistory(); |
| | | |
| | | |
| | | Integer getGiftSelect(GiftSearchDto giftSearchDto); |
| | | } |
| | |
| | | private CoursePaymentClient coursePaymentClient; |
| | | |
| | | @Override |
| | | public Boolean weeksOfAddHours(Integer packetId,Integer appUserId,Integer num) { |
| | | Boolean b = coursePaymentClient.sendHours(packetId+"_"+appUserId+"_"+num); |
| | | public Integer weeksOfAddHours(Long packetId,Integer appUserId,Integer num) { |
| | | Integer b = coursePaymentClient.sendHours(packetId+"_"+appUserId+"_"+num); |
| | | return b; |
| | | } |
| | | } |
| | |
| | | coursePackIds = stuCoursePayment.stream().map(StuCourseResp::getCourseId).collect(Collectors.toList()); |
| | | for (StuCourseResp tCoursePackagePayment : stuCoursePayment) { |
| | | RegisteredCourse course = new RegisteredCourse(); |
| | | course.setId(tCoursePackagePayment.getId()); |
| | | course.setCourseId(tCoursePackagePayment.getCourseId()); |
| | | course.setCourseName(tCoursePackagePayment.getCourseName()); |
| | | course.setTotalNums(ToolUtil.isEmpty(tCoursePackagePayment.getTotalCourseNums()) ? 0 : tCoursePackagePayment.getTotalCourseNums()); |
| | |
| | | course.setPeriodOfValidity(tCoursePackagePayment.getPeriodOfValidity()); |
| | | courseList.add(course); |
| | | } |
| | | |
| | | } |
| | | classInfoVo.setCourseList(courseList); |
| | | List<ExerciseVideo> stuCourseOfVideoList = voclClient.getStuCourseOfVideoList(coursePackIds); |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.dsh.account.dto.CreateHistoryDto; |
| | | import com.dsh.account.dto.GetHistoryDto; |
| | | import com.dsh.account.dto.StudentSearch; |
| | | import com.dsh.account.dto.TStudentDto; |
| | | import com.dsh.account.entity.Coach; |
| | | import com.dsh.account.entity.TAppUser; |
| | | import com.dsh.account.entity.TCourseInfoRecord; |
| | | import com.dsh.account.entity.TStudent; |
| | | import com.dsh.account.dto.*; |
| | | import com.dsh.account.entity.*; |
| | | import com.dsh.account.feignclient.activity.IntroduceRewardsClient; |
| | | import com.dsh.account.feignclient.activity.UserConponClient; |
| | | import com.dsh.account.feignclient.activity.model.IntrduceOfUserRequest; |
| | |
| | | return this.baseMapper.getHistory(); |
| | | } |
| | | |
| | | @Override |
| | | public Integer getGiftSelect(GiftSearchDto giftSearchDto) { |
| | | return this.baseMapper.getGiftSelect(giftSearchDto); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="getGiftSelect" resultType="java.lang.Integer"> |
| | | SELECT appUserId FROM t_student |
| | | WHERE name = #{giftSearchDto.name} |
| | | AND phone = #{giftSearchDto.phone} |
| | | </select> |
| | | </mapper> |
| | |
| | | private Integer state; |
| | | |
| | | private Page<Map<String, Object>> page; |
| | | private String cityCode; |
| | | private Integer storeId; |
| | | |
| | | |
| | | } |
| | |
| | | @Param("userPopulation")Integer userPopulation, |
| | | @Param("status")Integer status, |
| | | @Param("state")Integer state, |
| | | @Param("page")Page<Map<String, Object>> page); |
| | | @Param("page")Page<Map<String, Object>> page, |
| | | @Param("cityCode") String cityCode, |
| | | @Param("storeId")Integer storeId |
| | | |
| | | ); |
| | | |
| | | List<Map<String, Object>> queryCouponExamineList(@Param("name")String name, |
| | | @Param("type")Integer type, |
| | |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> queryCouponListOfSearch(CouponListOfSearch ofSearch) { |
| | | return this.baseMapper.queryCouponListOfSearch(ofSearch.getName(),ofSearch.getType(),ofSearch.getDistributionMethod(),ofSearch.getUserPopulation(),ofSearch.getStatus(),ofSearch.getState(),ofSearch.getPage()); |
| | | return this.baseMapper.queryCouponListOfSearch(ofSearch.getName(),ofSearch.getType(),ofSearch.getDistributionMethod(),ofSearch.getUserPopulation(),ofSearch.getStatus(),ofSearch.getState(),ofSearch.getPage(),ofSearch.getCityCode(),ofSearch.getStoreId()); |
| | | } |
| | | |
| | | @Override |
| | |
| | | illustrate |
| | | from t_coupon |
| | | where 1 = 1 |
| | | <if test="cityCode != null"> |
| | | and id in( |
| | | SELECT DISTINCT couponId FROM |
| | | |
| | | (SELECT DISTINCT couponId |
| | | from t_coupon_store |
| | | WHERE storeId = #{storeId} |
| | | UNION ALL |
| | | SELECT DISTINCT couponId |
| | | |
| | | from t_coupon_city |
| | | WHERE provinceCode = #{cityCode}) o) |
| | | </if> |
| | | <if test="name != null"> |
| | | and `name` like concat('%', #{name}, '%') |
| | | </if> |
| | |
| | | <artifactId>alipay-sdk-java</artifactId> |
| | | <version>4.8.10.ALL</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.huaweicloud</groupId> |
| | | <artifactId>esdk-obs-java-bundle</artifactId> |
| | | <version>3.23.5</version> |
| | | <scope>compile</scope> |
| | | </dependency> |
| | | </dependencies> |
| | | |
| | | <build> |
| | |
| | | import com.dsh.course.feignclient.model.GetStuSessionList; |
| | | import com.dsh.course.feignclient.model.PurchaseRecordVo; |
| | | import com.dsh.course.service.CancelledClassesService; |
| | | import com.dsh.course.service.CourseCounsumService; |
| | | import com.dsh.course.service.TCoursePackagePaymentService; |
| | | import io.swagger.annotations.Api; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | @RestController |
| | | @RequestMapping("") |
| | | public class CancelSourceController { |
| | | |
| | | |
| | | @Autowired |
| | | private CancelledClassesService caceService; |
| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.activerecord.Model; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.dsh.course.entity.*; |
| | | import com.dsh.course.feignclient.account.AppUserClient; |
| | |
| | | import com.dsh.course.feignclient.model.*; |
| | | import com.dsh.course.feignclient.other.StoreClient; |
| | | import com.dsh.course.feignclient.other.model.Store; |
| | | import com.dsh.course.mapper.CoursePackageSchedulingMapper; |
| | | import com.dsh.course.model.*; |
| | | import com.dsh.course.model.dto.DiscountJsonDto; |
| | | import com.dsh.course.model.vo.CourseDetailRequest; |
| | |
| | | import io.swagger.annotations.ApiOperation; |
| | | import net.bytebuddy.asm.Advice; |
| | | import org.aspectj.weaver.ast.Var; |
| | | import io.swagger.models.auth.In; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | private StoreClient storeClient; |
| | | @Autowired |
| | | private TCoursePackageDiscountService discountService; |
| | | |
| | | @Resource |
| | | private CoursePackageSchedulingMapper coursePackageSchedulingMapper; |
| | | |
| | | |
| | | private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm"); |
| | | |
| | | /** |
| | |
| | | TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId()); |
| | | StuCourseResp resp = new StuCourseResp(); |
| | | resp.setCourseId(tCoursePackage.getId()); |
| | | resp.setId(tCoursePackagePayment.getId()); |
| | | resp.setCourseName(tCoursePackage.getName()); |
| | | resp.setTotalCourseNums(tCoursePackagePayment.getTotalClassHours()); |
| | | resp.setResidueNums(tCoursePackagePayment.getLaveClassHours()); |
| | |
| | | .groupBy("coursePackageId")); |
| | | if (list.size() > 0){ |
| | | for (TCoursePackagePayment tCoursePackagePayment : list) { |
| | | CoursePackageStudent packageStudent = cspsService.getOne(new LambdaQueryWrapper<CoursePackageStudent>() |
| | | List<CoursePackageStudent> packageStudent = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>() |
| | | .eq(CoursePackageStudent::getAppUserId, courseRest.getAppUserId()) |
| | | .eq(CoursePackageStudent::getStudentId,courseRest.getStuId()) |
| | | .eq(CoursePackageStudent::getCoursePackagePaymentId,tCoursePackagePayment.getId()) |
| | | .eq(CoursePackageStudent::getCoursePackageId,tCoursePackagePayment.getCoursePackageId())); |
| | | if (ToolUtil.isEmpty(packageStudent) || (ToolUtil.isNotEmpty(packageStudent) && packageStudent.getReservationStatus() != 1)){ |
| | | if (ToolUtil.isEmpty(packageStudent) || (ToolUtil.isNotEmpty(packageStudent) && packageStudent.get(0).getReservationStatus() == 1)){ |
| | | // 没有预约过的/已经取消了的 |
| | | TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId()); |
| | | CoursePackagePaymentConfig paymentConfig = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>() |
| | |
| | | if(null == userIdFormRedis){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | Integer couponId = request.getConponId(); |
| | | if(couponId==null || couponId==0){ |
| | | request.setConponId(null); |
| | | } |
| | | return packagePaymentService.ContinuationOrpaymentCourse(userIdFormRedis,request); |
| | | }catch (Exception e){ |
| | | return ResultUtil.runErr(); |
| | |
| | | .eq("code",code)); |
| | | } |
| | | |
| | | |
| | | @PostMapping("/base/coursePack/getCoursePackagePaymentById") |
| | | public TCoursePackagePayment getCoursePackagePaymentById(@RequestBody Integer id){ |
| | | return packagePaymentService.getById(id); |
| | | } |
| | | @PostMapping("/base/coursePack/delPaymentCoursePackage") |
| | | public boolean delPaymentCoursePackage(@RequestBody Integer payId){ |
| | | return packagePaymentService.removeById(payId); |
| | |
| | | |
| | | // 2.0 送课时 |
| | | @PostMapping("/base/coursePack/sendHours") |
| | | public Boolean sendHours(@RequestBody String s){ |
| | | public Integer sendHours(@RequestBody String s){ |
| | | String[] split = s.split("_"); |
| | | TCoursePackagePayment byId = packagePaymentService.getById(Integer.valueOf(split[0])); |
| | | TCoursePackagePayment byId = packagePaymentService.getById(Long.valueOf(split[0])); |
| | | byId.setTotalClassHours(byId.getTotalClassHours()+Integer.valueOf(split[2])); |
| | | return packagePaymentService.updateById(byId); |
| | | boolean b = packagePaymentService.updateHoursById(byId,Integer.valueOf(split[2])); |
| | | if(b){ |
| | | return 1; |
| | | }else { |
| | | |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | @ResponseBody |
| | | @PostMapping("/coursePackagePayment/CountqueryByClassId") |
| | | public Integer CountqueryByClassId(@RequestBody Integer id){ |
| | | int coursePackageId = packagePaymentService.count(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", id)); |
| | | |
| | | |
| | | return coursePackageId; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 修改数据 |
| | | * @param coursePackagePayment |
| | |
| | | if(null == appUserId){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | TCoursePackagePayment packagePayment = packagePaymentService.getOne(new LambdaQueryWrapper<TCoursePackagePayment>() |
| | | List<TCoursePackagePayment> packagePayment = packagePaymentService.list(new LambdaQueryWrapper<TCoursePackagePayment>() |
| | | .eq(TCoursePackagePayment::getCoursePackageId,courseID ) |
| | | .eq(TCoursePackagePayment::getAppUserId,appUserId) |
| | | .eq(TCoursePackagePayment::getStudentId,stuId) |
| | | ); |
| | | |
| | | if (ToolUtil.isEmpty(packagePayment)){ |
| | | if (ToolUtil.isEmpty(packagePayment) || packagePayment.size()==0){ |
| | | return ResultUtil.error("该用户未购买该课包"); |
| | | } |
| | | List<CoursePackageStudent> coursePackageStudent = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>() |
| | | .eq(CoursePackageStudent::getCoursePackageId,packagePayment.getCoursePackageId()) |
| | | .eq(CoursePackageStudent::getCoursePackagePaymentId,courseID) |
| | | .in(CoursePackageStudent::getCoursePackagePaymentId,packagePayment.stream().map(TCoursePackagePayment::getId).collect(Collectors.toList())) |
| | | .eq(CoursePackageStudent::getCoursePackageId,courseID) |
| | | .eq(CoursePackageStudent::getStudentId,stuId) |
| | | .eq(CoursePackageStudent::getAppUserId,appUserId) |
| | | ); |
| | | |
| | | if (ToolUtil.isNotEmpty(coursePackageStudent)){ |
| | | for (CoursePackageStudent packageStudent : coursePackageStudent) { |
| | | if(packageStudent.getReservationStatus()==0){ |
| | | if(packageStudent.getReservationStatus()==1){ |
| | | packageStudent.setSignInOrNot(2); |
| | | packageStudent.setInsertTime(simpleDateFormat.parse(time)); |
| | | cspsService.updateById(packageStudent); |
| | | cspsService.updateSignInOrNotById(packageStudent.getId()); |
| | | } |
| | | } |
| | | |
| | |
| | | map.put("lon",lon); |
| | | map.put("lat",lat); |
| | | |
| | | String time1 = courseDetailReq.getTime(); |
| | | |
| | | // 找出门店的所有课程 排出体验 |
| | | List<TCoursePackage> list = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().eq(TCoursePackage::getStoreId, courseDetailReq.getStoreId()).ne(TCoursePackage::getType, 3).like(TCoursePackage::getClassWeeks,week)); |
| | | List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList()); |
| | |
| | | // 找出购买的课包 |
| | | List<TCoursePackagePayment> list1 = packagePaymentService.list(new LambdaQueryWrapper<TCoursePackagePayment>().eq(TCoursePackagePayment::getAppUserId, courseDetailReq.getAppUserId()).eq(TCoursePackagePayment::getStudentId, courseDetailReq.getStuId()).in(TCoursePackagePayment::getCoursePackageId, collect)); |
| | | List<Integer> collect1 = list1.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList()); |
| | | List<Long> ids = list1.stream().map(TCoursePackagePayment::getId).collect(Collectors.toList()); |
| | | for (TCoursePackage tCoursePackage : list) { |
| | | DetailsListVo detailsListVo = new DetailsListVo(); |
| | | detailsListVo.setId(tCoursePackage.getId()); |
| | |
| | | } |
| | | detailsListVo.setNum(tCoursePackage.getNeedNum()); |
| | | if (collect1.contains(tCoursePackage.getId())) { |
| | | detailsListVo.setType(1); |
| | | // 找出排课记录 |
| | | List<CoursePackageScheduling> list3 = coursePackageSchedulingMapper.selectList(new LambdaQueryWrapper<CoursePackageScheduling>() |
| | | .eq(CoursePackageScheduling::getCoursePackageId, tCoursePackage.getId()) |
| | | .like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime()) |
| | | ); |
| | | List<Long> collect2 = list3.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList()); |
| | | if(collect2.size()==0){ |
| | | collect2.add(-1l); |
| | | } |
| | | List<CoursePackageStudent> list4 = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>() |
| | | .eq(CoursePackageStudent::getAppUserId, courseDetailReq.getAppUserId()) |
| | | .eq(CoursePackageStudent::getCoursePackageId, tCoursePackage.getId()) |
| | | .in(CoursePackageStudent::getCoursePackageSchedulingId, collect2). |
| | | in(CoursePackageStudent::getCoursePackagePaymentId, ids) |
| | | ); |
| | | |
| | | detailsListVo.setType(1); |
| | | if(list4.size()>0){ |
| | | Integer signInOrNot = list4.get(0).getSignInOrNot(); |
| | | if(signInOrNot==2){ |
| | | detailsListVo.setType(3); |
| | | } |
| | | } |
| | | |
| | | } else { |
| | | detailsListVo.setType(2); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.dsh.course.entity.StudentClassInfo; |
| | | import com.dsh.course.entity.TCoursePackagePayment; |
| | | import com.dsh.course.entity.dto.ClassListDto; |
| | | import com.dsh.course.entity.dto.SelectDto; |
| | | import com.dsh.course.entity.dto.updateTimeDto; |
| | | import com.dsh.course.entity.*; |
| | | import com.dsh.course.entity.dto.*; |
| | | import com.dsh.course.feignclient.account.AppUserClient; |
| | | import com.dsh.course.service.CoursePackageStudentService; |
| | | import com.dsh.course.service.TCoursePackagePaymentService; |
| | | import com.dsh.course.feignclient.account.StudentClient; |
| | | import com.dsh.course.feignclient.account.model.Student; |
| | | import com.dsh.course.model.dto.ToClassDto; |
| | | import com.dsh.course.service.*; |
| | | import com.dsh.course.util.ResultUtil; |
| | | import com.dsh.course.util.UUIDUtil; |
| | | import io.swagger.annotations.Api; |
| | | import org.apache.commons.lang.StringUtils; |
| | | import org.apache.commons.lang3.ArrayUtils; |
| | | import org.checkerframework.checker.units.qual.A; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.swing.text.html.parser.Entity; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Api |
| | | @CrossOrigin |
| | |
| | | |
| | | // Date maxDate = studentService.getMaxDate(tStudentId); |
| | | Date minDate = studentService.getMinDate(tStudentId); |
| | | System.out.println("===========>"+studentClassInfo); |
| | | Integer totalHours = studentClassInfo.getTotalHours(); |
| | | Integer hasHours = studentClassInfo.getRestHours(); |
| | | Integer restHours = totalHours-hasHours; |
| | | studentClassInfo.setHasHours(restHours); |
| | | studentClassInfo.setInDate(minDate); |
| | | System.out.println("===========>"+studentClassInfo); |
| | | |
| | | return studentClassInfo; |
| | | } |
| | | //获取学员课程列表 |
| | |
| | | public List<ClassListDto> listClass(@RequestParam("tStudentId")Integer tStudentId) { |
| | | System.out.println("==========getClassList===tStudentId===="+tStudentId); |
| | | List<ClassListDto> listDtos = studentService.getClassList(tStudentId); |
| | | for (ClassListDto dto : listDtos){ |
| | | dto.setHasClassHours(dto.getTotalClassHours()-dto.getLaveClassHours()); |
| | | } |
| | | System.out.println("======listDtos======"+listDtos); |
| | | return listDtos; |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | //根据payid获取对应门店的常规课程 |
| | | |
| | | @Autowired |
| | | private TCoursePackageService packageService; |
| | | @RequestMapping("/holiSelect") |
| | | @ResponseBody |
| | | public List<SelectDto> getHoliSelect(@RequestParam("courseId")Integer id){ |
| | | |
| | | TCoursePackage byId = packageService.getById(id); |
| | | Integer storeId = byId.getStoreId(); |
| | | List<TCoursePackage> list = packageService.list(new QueryWrapper<TCoursePackage>() |
| | | .select("id", "name") |
| | | .eq("storeId", storeId) |
| | | .eq("type","2") |
| | | ); |
| | | List<SelectDto> selectDtos = new ArrayList<>(); |
| | | for (TCoursePackage t :list){ |
| | | SelectDto selectDto = new SelectDto(); |
| | | selectDto.setId(t.getId()); |
| | | selectDto.setValue(t.getName()); |
| | | selectDtos.add(selectDto); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | return selectDtos; |
| | | } |
| | | |
| | | @RequestMapping("/transSelect") |
| | | @ResponseBody |
| | | public List<SelectDto> getTransSelect(@RequestParam("courseId")Integer id){ |
| | | |
| | | TCoursePackage byId = packageService.getById(id); |
| | | Integer storeId = byId.getStoreId(); |
| | | List<TCoursePackage> list = packageService.list(new QueryWrapper<TCoursePackage>() |
| | | .select("id", "name") |
| | | .eq("storeId", storeId) |
| | | .eq("type","1") |
| | | ); |
| | | List<SelectDto> selectDtos = new ArrayList<>(); |
| | | for (TCoursePackage t :list){ |
| | | SelectDto selectDto = new SelectDto(); |
| | | selectDto.setId(t.getId()); |
| | | selectDto.setValue(t.getName()); |
| | | selectDtos.add(selectDto); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | return selectDtos; |
| | | } |
| | | |
| | | @Autowired |
| | | private CourseCounsumService counsumService; |
| | | @RequestMapping("/queryCounsum") |
| | | @ResponseBody |
| | | public List<CourseCounsum> queryCounsum(@RequestBody ConsumeQuery consumeQuery){ |
| | | System.out.println("======queryCounsum==========="+consumeQuery); |
| | | |
| | | QueryWrapper<CourseCounsum> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("paymentId",consumeQuery.getPayId()); |
| | | |
| | | |
| | | if (consumeQuery.getChangeType()!=null){ |
| | | queryWrapper.eq("changeType", consumeQuery.getChangeType()); |
| | | } |
| | | if (consumeQuery.getStart()!=null){ |
| | | queryWrapper.between("insertTime", consumeQuery.getStart(), consumeQuery.getEnd()); |
| | | } |
| | | if (consumeQuery.getReason()!=null&&consumeQuery.getReason()!=""){ |
| | | queryWrapper.like("reason", consumeQuery.getReason()); |
| | | |
| | | } |
| | | |
| | | List<CourseCounsum> list = counsumService.list(queryWrapper); |
| | | |
| | | |
| | | |
| | | |
| | | // List<CourseCounsum> list = counsumService.list(new QueryWrapper<CourseCounsum>().eq("paymentId", consumeQuery.getPayId()).eq("changeType", consumeQuery.getChangeType()).between("insertTime", consumeQuery.getStart(), consumeQuery.getEnd()).like("reason", consumeQuery.getReason())); |
| | | return list; |
| | | } |
| | | |
| | | |
| | | @RequestMapping("/insertBack") |
| | | @ResponseBody |
| | | public void insertBack(@RequestBody InsertBackDto insertBackDto){ |
| | | |
| | | MoneyBack moneyBack = new MoneyBack(); |
| | | moneyBack.setStudentId(insertBackDto.getId()); |
| | | moneyBack.setStatus(0); |
| | | moneyBack.setInsertTime(new Date()); |
| | | moneyBack.setIds(insertBackDto.getIds()); |
| | | moneyBackService.save(moneyBack); |
| | | |
| | | } |
| | | |
| | | |
| | | @RequestMapping("/queryByIds") |
| | | @ResponseBody |
| | | public List<TCoursePackagePayment> queryByIds(@RequestParam("ids")String ids){ |
| | | List<TCoursePackagePayment> paymentList = paymentService.list(new QueryWrapper<TCoursePackagePayment>() |
| | | .in("id", Arrays.asList(ids.split(",")))); |
| | | |
| | | System.out.println("========client==>"+paymentList); |
| | | return paymentList; |
| | | } |
| | | |
| | | @RequestMapping("/changeStatus") |
| | | @ResponseBody |
| | | public void changeStatus(@RequestParam("id")Integer id){ |
| | | MoneyBack byId = moneyBackService.getById(id); |
| | | byId.setStatus(1); |
| | | moneyBackService.updateById(byId); |
| | | |
| | | } |
| | | |
| | | @RequestMapping("/zeroClass") |
| | | @ResponseBody |
| | | public void zeroClass(@RequestParam("id")Integer id){ |
| | | MoneyBack byId = moneyBackService.getById(id); |
| | | String[] split = byId.getIds().split(","); |
| | | System.out.println("========split===>"+split); |
| | | List<TCoursePackagePayment> id1 = paymentService.list(new QueryWrapper<TCoursePackagePayment>().in("id", split)); |
| | | for (TCoursePackagePayment o :id1){ |
| | | o.setTotalClassHours(0); |
| | | o.setLaveClassHours(0); |
| | | o.setAppUserId(null); |
| | | } |
| | | paymentService.updateBatchById(id1); |
| | | } |
| | | |
| | | @RequestMapping("/cancel") |
| | | @ResponseBody |
| | | public void cancel(@RequestParam("ids")String ids){ |
| | | String[] split = ids.split(","); |
| | | List<CoursePackageStudent> coursePackagePaymentId = studentService.list(new QueryWrapper<CoursePackageStudent>().in("coursePackagePaymentId", split)); |
| | | for (CoursePackageStudent student :coursePackagePaymentId){ |
| | | student.setReservationStatus(2); |
| | | student.setAppUserId(null); |
| | | } |
| | | studentService.updateBatchById(coursePackagePaymentId); |
| | | |
| | | |
| | | } |
| | | |
| | | @Autowired |
| | | private MoneyBackService moneyBackService; |
| | | @RequestMapping("/getMoneyBack") |
| | | @ResponseBody |
| | | public List<MoneyBack> getMoneyBack(@RequestParam("tStudentId")Integer tStudentId){ |
| | | |
| | | List<MoneyBack> moneyBacksck = moneyBackService.list(new QueryWrapper<MoneyBack>().eq("studentId", tStudentId)); |
| | | return moneyBacksck; |
| | | } |
| | | |
| | | //课程转移 |
| | | @RequestMapping("/toClass") |
| | | @ResponseBody |
| | | public void toClass(@RequestBody ToClassDto toClassDto){ |
| | | System.out.println("===========到达getSelect======="+toClassDto); |
| | | TCoursePackagePayment orinPay = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", toClassDto.getId())); |
| | | TCoursePackagePayment studentPay = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId",orinPay.getCoursePackageId())); |
| | | if (studentPay!=null) { |
| | | System.out.println("======orinPay=====>" + orinPay); |
| | | System.out.println("======studentPay=====>" + studentPay); |
| | | Integer laveClassHours = orinPay.getLaveClassHours(); |
| | | Integer totalClassHours = orinPay.getTotalClassHours(); |
| | | |
| | | orinPay.setTotalClassHours(0); |
| | | orinPay.setLaveClassHours(0); |
| | | orinPay.setAppUserId(null); |
| | | paymentService.updateById(orinPay); |
| | | |
| | | CourseCounsum courseCounsum = new CourseCounsum(); |
| | | courseCounsum.setInsertTime(new Date()); |
| | | courseCounsum.setReason("转课"); |
| | | courseCounsum.setNum(laveClassHours); |
| | | courseCounsum.setChangeType(0); |
| | | courseCounsum.setPaymentId(orinPay.getId()); |
| | | counsumService.save(courseCounsum); |
| | | |
| | | Integer laveClassHours1 = studentPay.getLaveClassHours(); |
| | | Integer totalClassHours1 = studentPay.getTotalClassHours(); |
| | | int total = totalClassHours + totalClassHours1; |
| | | int lave = laveClassHours + laveClassHours1; |
| | | |
| | | studentPay.setAppUserId(null); |
| | | studentPay.setLaveClassHours(lave); |
| | | studentPay.setTotalClassHours(total); |
| | | paymentService.updateById(studentPay); |
| | | |
| | | CourseCounsum courseCounsum1 = new CourseCounsum(); |
| | | courseCounsum1.setInsertTime(new Date()); |
| | | courseCounsum1.setReason("转课"); |
| | | courseCounsum1.setNum(laveClassHours); |
| | | courseCounsum1.setChangeType(1); |
| | | courseCounsum1.setPaymentId(studentPay.getId()); |
| | | counsumService.save(courseCounsum1); |
| | | |
| | | }else { |
| | | |
| | | |
| | | |
| | | orinPay.setTotalClassHours(0); |
| | | orinPay.setLaveClassHours(0); |
| | | orinPay.setAppUserId(null); |
| | | paymentService.updateById(orinPay); |
| | | |
| | | |
| | | CourseCounsum courseCounsum = new CourseCounsum(); |
| | | courseCounsum.setInsertTime(new Date()); |
| | | courseCounsum.setReason("赠课"); |
| | | courseCounsum.setNum(orinPay.getLaveClassHours()); |
| | | courseCounsum.setChangeType(0); |
| | | courseCounsum.setPaymentId(orinPay.getId()); |
| | | counsumService.save(courseCounsum); |
| | | |
| | | |
| | | |
| | | Student student = studentClient.queryStudentById(toClassDto.getToStudentId()); |
| | | TCoursePackagePayment to = new TCoursePackagePayment(); |
| | | to.setStudentId(toClassDto.getToStudentId()); |
| | | to.setTotalClassHours(orinPay.getTotalClassHours()); |
| | | to.setLaveClassHours(orinPay.getLaveClassHours()); |
| | | to.setCoursePackageId(orinPay.getCoursePackageId()); |
| | | to.setState(1); |
| | | to.setAppUserId(student.getAppUserId()); |
| | | to.setPayStatus(2); |
| | | to.setStatus(1); |
| | | to.setInsertTime(new Date()); |
| | | paymentService.save(to); |
| | | |
| | | |
| | | CourseCounsum courseCounsum1 = new CourseCounsum(); |
| | | courseCounsum1.setInsertTime(new Date()); |
| | | courseCounsum1.setReason("赠课"); |
| | | courseCounsum1.setNum(orinPay.getLaveClassHours()); |
| | | courseCounsum1.setChangeType(1); |
| | | courseCounsum1.setPaymentId(to.getId()); |
| | | counsumService.save(courseCounsum); |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | @Resource |
| | | private StudentClient studentClient; |
| | | @RequestMapping(value = "/toHoli",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8") |
| | | @ResponseBody |
| | | public String toHoli(@RequestBody ToHoliDto toHoliDto){ |
| | | |
| | | String [] ids = toHoliDto.getIds(); |
| | | List<String> strings = new ArrayList<>(); |
| | | |
| | | |
| | | for (String id : ids){ |
| | | //扣除课时 |
| | | TCoursePackagePayment payment = paymentService.getById(id); |
| | | System.out.println("=====byId========="+payment); |
| | | |
| | | |
| | | Integer laveClassHours = payment.getLaveClassHours(); |
| | | |
| | | Integer classNum = toHoliDto.getClassNum(); |
| | | Integer totalClassHours = payment.getTotalClassHours(); |
| | | Student student = studentClient.queryStudentById(payment.getStudentId()); |
| | | |
| | | if (laveClassHours < classNum){ |
| | | strings.add(student.getName()); continue; |
| | | } |
| | | |
| | | Integer laveClassHoursnew = laveClassHours - classNum; |
| | | Integer totalClassHoursnew = totalClassHours - classNum; |
| | | payment.setLaveClassHours(laveClassHoursnew); |
| | | payment.setTotalClassHours(totalClassHoursnew); |
| | | payment.setAppUserId(null); |
| | | |
| | | paymentService.updateById(payment); |
| | | |
| | | //获取student信息 |
| | | |
| | | //新增课时 |
| | | |
| | | TCoursePackagePayment holi = new TCoursePackagePayment(); |
| | | holi.setAppUserId(student.getAppUserId()); |
| | | holi.setStudentId(student.getId()); |
| | | holi.setCoursePackageId(toHoliDto.getClassId()); |
| | | holi.setTotalClassHours(toHoliDto.getClassNum()); |
| | | holi.setLaveClassHours(toHoliDto.getClassNum()); |
| | | holi.setState(1); |
| | | holi.setInsertTime(new Date()); |
| | | paymentService.save(holi); |
| | | |
| | | System.out.println("保存成功=============》="+holi); |
| | | |
| | | |
| | | |
| | | } |
| | | String[] stringArray = strings.toArray(new String[strings.size()]); |
| | | |
| | | String join = StringUtils.join(stringArray, ","); |
| | | System.out.println("==========join========"+join); |
| | | return join; |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | @RequestMapping(value = "/toTrans",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8") |
| | | @ResponseBody |
| | | public String toTrans(@RequestBody ToHoliDto toHoliDto){ |
| | | |
| | | String [] ids = toHoliDto.getIds(); |
| | | List<String> strings = new ArrayList<>(); |
| | | |
| | | |
| | | for (String id : ids){ |
| | | //扣除课时 |
| | | TCoursePackagePayment payment = paymentService.getById(id); |
| | | System.out.println("=====byId========="+payment); |
| | | |
| | | |
| | | Integer laveClassHours = payment.getLaveClassHours(); |
| | | |
| | | Integer classNum = toHoliDto.getClassNum(); |
| | | Integer totalClassHours = payment.getTotalClassHours(); |
| | | Student student = studentClient.queryStudentById(payment.getStudentId()); |
| | | |
| | | // if (laveClassHours < classNum){ |
| | | // strings.add(student.getName()); continue; |
| | | // } |
| | | // |
| | | // Integer laveClassHoursnew = laveClassHours - classNum; |
| | | // Integer totalClassHoursnew = totalClassHours - classNum; |
| | | payment.setLaveClassHours(0); |
| | | payment.setTotalClassHours(0); |
| | | payment.setAppUserId(null); |
| | | |
| | | paymentService.updateById(payment); |
| | | |
| | | //获取student信息 |
| | | |
| | | //新增课时 |
| | | |
| | | TCoursePackagePayment holi = new TCoursePackagePayment(); |
| | | holi.setAppUserId(student.getAppUserId()); |
| | | holi.setStudentId(student.getId()); |
| | | holi.setCoursePackageId(toHoliDto.getClassId()); |
| | | holi.setTotalClassHours(laveClassHours); |
| | | holi.setLaveClassHours(laveClassHours); |
| | | holi.setState(1); |
| | | holi.setInsertTime(new Date()); |
| | | paymentService.save(holi); |
| | | |
| | | System.out.println("保存成功=============》="+holi); |
| | | |
| | | |
| | | |
| | | } |
| | | String[] stringArray = strings.toArray(new String[strings.size()]); |
| | | |
| | | String join = StringUtils.join(stringArray, ","); |
| | | System.out.println("==========join========"+join); |
| | | return "转课成功"; |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.course.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import io.swagger.models.auth.In; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | |
| | | @Data |
| | | @TableName("t_course_consum") |
| | | public class CourseCounsum { |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | Integer id; |
| | | @TableField("changeType") |
| | | Integer changeType; |
| | | @TableField("num") |
| | | Integer num; |
| | | @TableField("reason") |
| | | String reason; |
| | | @TableField("paymentId") |
| | | Long paymentId; |
| | | @TableField("insertTime") |
| | | Date insertTime; |
| | | } |
| | |
| | | private Integer playPaiCoin; |
| | | @TableField("couponIds") |
| | | private String couponIds; |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.course.entity; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class InsertBackDto { |
| | | Integer id; |
| | | String ids; |
| | | } |
New file |
| | |
| | | package com.dsh.course.entity; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @TableName("t_back_money") |
| | | public class MoneyBack { |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | Integer id; |
| | | @TableField("ids") |
| | | String ids; |
| | | @TableField("studentId") |
| | | Integer studentId; |
| | | @TableField("status") |
| | | Integer status; |
| | | @TableField("insertTime") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | Date insertTime; |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.baomidou.mybatisplus.extension.activerecord.Model; |
| | | import com.dsh.course.service.CourseCounsumService; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | |
| | | @Accessors(chain = true) |
| | | @TableName("t_course_package") |
| | | public class TCoursePackage extends Model<TCoursePackage>{ |
| | | |
| | | |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | |
| | | */ |
| | | @TableField("maxSubscribeNumber") |
| | | private Integer maxSubscribeNumber; |
| | | |
| | | @TableField("codeTime") |
| | | private Integer codeTime; |
| | | /** |
| | | * 上课开始时间 |
| | | */ |
| | |
| | | package com.dsh.course.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.baomidou.mybatisplus.annotation.*; |
| | | import com.baomidou.mybatisplus.extension.activerecord.Model; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.Data; |
| | |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.NONE) |
| | | @TableField(updateStrategy = FieldStrategy.NEVER) |
| | | private Long id; |
| | | /** |
| | | * 业务编号 |
| | |
| | | package com.dsh.course.entity.dto; |
| | | |
| | | import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
| | | import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
| | | import io.swagger.models.auth.In; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | public class ClassListDto { |
| | | private Integer id; |
| | | |
| | | private Long id; |
| | | private String className; |
| | | |
| | | private String classType; |
| | | private Integer classType; |
| | | |
| | | private Date insertTime; |
| | | |
New file |
| | |
| | | package com.dsh.course.entity.dto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | public class ConsumeQuery { |
| | | |
| | | |
| | | Date start; |
| | | Date end; |
| | | Integer changeType; |
| | | |
| | | String reason; |
| | | |
| | | Integer payId; |
| | | } |
New file |
| | |
| | | package com.dsh.course.entity.dto; |
| | | |
| | | import io.swagger.models.auth.In; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | @Data |
| | | public class ToHoliDto { |
| | | Integer id; |
| | | Integer classId; |
| | | Integer classNum; |
| | | String[] ids; |
| | | } |
| | |
| | | @PostMapping("/base/coursePack/getPaymentCoursePackage") |
| | | public TCoursePackagePayment getCoursePackagePaymentByCode(@RequestBody String payId); |
| | | |
| | | @PostMapping("/base/coursePack/getCoursePackagePaymentById") |
| | | public TCoursePackagePayment getCoursePackagePaymentById(@RequestBody Integer id); |
| | | |
| | | |
| | | @PostMapping("/base/coursePack/delPaymentCoursePackage") |
| | | public boolean delPaymentCoursePackage(@RequestBody Integer payId); |
| | |
| | | |
| | | @PostMapping("/appUser/getSelects") |
| | | List<SelectDto> getSelects(List<Integer> studentIds); |
| | | |
| | | |
| | | } |
| | |
| | | package com.dsh.course.feignclient.account; |
| | | |
| | | import com.dsh.course.feignclient.account.model.Student; |
| | | import io.swagger.models.auth.In; |
| | | import org.springframework.cloud.openfeign.FeignClient; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | |
| | |
| | | */ |
| | | @PostMapping("/student/queryStudentListByName") |
| | | List<Student> queryStudentListByName(String name); |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | @Data |
| | | public class StuCourseResp { |
| | | private Long id; |
| | | |
| | | @ApiModelProperty(value = "课包id") |
| | | private Integer courseId; |
New file |
| | |
| | | package com.dsh.course.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dsh.course.entity.CourseCounsum; |
| | | import com.dsh.course.entity.CoursePackagePaymentConfig; |
| | | |
| | | public interface CourseCounsumMapper extends BaseMapper<CourseCounsum> { |
| | | } |
| | |
| | | List<ClassListDto> getClassList(@Param("tStudentId")Integer tStudentId); |
| | | |
| | | Date getMaxDate(@Param("tStudentId")Integer tStudentId); |
| | | |
| | | void updateSignInOrNotById(@Param("id") Long id); |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.course.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dsh.course.entity.CourseCounsum; |
| | | import com.dsh.course.entity.MoneyBack; |
| | | |
| | | public interface MoneyBackMapper extends BaseMapper<MoneyBack> { |
| | | } |
| | |
| | | void updateUseTime(@Param("id")Long id, @Param("date") Date date); |
| | | |
| | | List<Integer> getStudentIds(@Param("id")Integer payId); |
| | | |
| | | boolean updateHoursById(@Param("id") Long id, @Param("i") int i); |
| | | } |
New file |
| | |
| | | package com.dsh.course.model.dto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class ToClassDto { |
| | | Integer id; |
| | | Integer toStudentId; |
| | | } |
New file |
| | |
| | | package com.dsh.course.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.dsh.course.entity.CancelledClasses; |
| | | import com.dsh.course.entity.CourseCounsum; |
| | | |
| | | public interface CourseCounsumService extends IService<CourseCounsum> { |
| | | |
| | | } |
| | |
| | | Date getMaxDate(Integer tStudentId); |
| | | |
| | | Date getMinDate(Integer tStudentId); |
| | | |
| | | void updateSignInOrNotById(Long id); |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.course.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.dsh.course.entity.CourseCounsum; |
| | | import com.dsh.course.entity.MoneyBack; |
| | | |
| | | public interface MoneyBackService extends IService<MoneyBack> { |
| | | |
| | | } |
| | |
| | | |
| | | List<Integer> getStudentIds(Integer payId); |
| | | |
| | | boolean updateHoursById(TCoursePackagePayment byId, int i); |
| | | |
| | | |
| | | List<CoursePackagePaymentVO> listAll(CoursePackagePaymentQuery query); |
| | | |
| | | int changeState(CoursePackagePayDTO dto); |
New file |
| | |
| | | package com.dsh.course.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.dsh.course.entity.CancelledClasses; |
| | | import com.dsh.course.entity.CourseCounsum; |
| | | import com.dsh.course.mapper.CancelledClassesMapper; |
| | | import com.dsh.course.mapper.CourseCounsumMapper; |
| | | import com.dsh.course.service.CancelledClassesService; |
| | | import com.dsh.course.service.CourseCounsumService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | @Service |
| | | public class CourseCounsumServiceImpl extends ServiceImpl<CourseCounsumMapper, CourseCounsum> implements CourseCounsumService { |
| | | } |
| | |
| | | public Date getMinDate(Integer tStudentId) { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public void updateSignInOrNotById(Long id) { |
| | | this.baseMapper.updateSignInOrNotById(id); |
| | | } |
| | | } |
New file |
| | |
| | | package com.dsh.course.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.dsh.course.entity.CourseCounsum; |
| | | import com.dsh.course.entity.MoneyBack; |
| | | import com.dsh.course.mapper.CourseCounsumMapper; |
| | | import com.dsh.course.mapper.MoneyBackMapper; |
| | | import com.dsh.course.service.CourseCounsumService; |
| | | import com.dsh.course.service.MoneyBackService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | @Service |
| | | public class MoneyBackServiceImpl extends ServiceImpl<MoneyBackMapper, MoneyBack> implements MoneyBackService { |
| | | } |
| | |
| | | .eq("appUserId",appUserId )); |
| | | System.out.println(tCoursePackagePayments); |
| | | if (tCoursePackagePayments.size() > 0){ |
| | | for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) { |
| | | TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); |
| | | Store store = stoClient.queryStoreById(coursePackage.getStoreId()); |
| | | RegisterCourseVo registerCourseVo = new RegisterCourseVo(); |
| | | // 2.0 |
| | | registerCourseVo.setType(coursePackage.getType()); |
| | | try { |
| | | for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) { |
| | | TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); |
| | | Store store = stoClient.queryStoreById(coursePackage.getStoreId()); |
| | | RegisterCourseVo registerCourseVo = new RegisterCourseVo(); |
| | | // 2.0 |
| | | registerCourseVo.setType(coursePackage.getType()); |
| | | |
| | | registerCourseVo.setCoursePayId(tCoursePackagePayment.getId()); |
| | | registerCourseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); |
| | | registerCourseVo.setCoursePackTypeId(coursePackage.getCoursePackageTypeId()); |
| | | registerCourseVo.setPackageImg(coursePackage.getCoverDrawing()); |
| | | String storeAndCourse = coursePackage.getName()+"("+ store.getName() +")"; |
| | | registerCourseVo.setCourseNameStore(storeAndCourse); |
| | | registerCourseVo.setCoursePayId(tCoursePackagePayment.getId()); |
| | | registerCourseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); |
| | | registerCourseVo.setCoursePackTypeId(coursePackage.getCoursePackageTypeId()); |
| | | registerCourseVo.setPackageImg(coursePackage.getCoverDrawing()); |
| | | String storeAndCourse = coursePackage.getName()+"("+ store.getName() +")"; |
| | | registerCourseVo.setCourseNameStore(storeAndCourse); |
| | | // registerCourseVo.setCourseTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); |
| | | // 2.0 |
| | | registerCourseVo.setCourseTime(new SimpleDateFormat("yyyy-MM-dd").format(tCoursePackagePayment.getInsertTime())); |
| | | Coach coach = coachClient.queryCoachById(coursePackage.getCoachId()); |
| | | registerCourseVo.setCourseTeacher(ToolUtil.isEmpty(coach) ? "" : coach.getName()); |
| | | List<CoursePackageStudent> coursePackageStudents = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>() |
| | | .eq("coursePackageId",coursePackage.getId()) |
| | | .eq("studentId",appUserId )); |
| | | if (coursePackageStudents.size() > 0 ){ |
| | | registerCourseVo.setCourseNums(coursePackageStudents.size() * 2); |
| | | // 2.0 |
| | | registerCourseVo.setCourseTime(new SimpleDateFormat("yyyy-MM-dd").format(tCoursePackagePayment.getInsertTime())); |
| | | Coach coach = coachClient.queryCoachById(coursePackage.getCoachId()); |
| | | registerCourseVo.setCourseTeacher(ToolUtil.isEmpty(coach) ? "" : coach.getName()); |
| | | List<CoursePackageStudent> coursePackageStudents = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>() |
| | | .eq("coursePackageId",coursePackage.getId()) |
| | | .eq("studentId",appUserId )); |
| | | if (coursePackageStudents.size() > 0 ){ |
| | | registerCourseVo.setCourseNums(coursePackageStudents.size() * 2); |
| | | } |
| | | registerCourseVo.setPayStatus(tCoursePackagePayment.getPayStatus()); |
| | | courseVos.add(registerCourseVo); |
| | | } |
| | | registerCourseVo.setPayStatus(tCoursePackagePayment.getPayStatus()); |
| | | courseVos.add(registerCourseVo); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | if (ToolUtil.isNotEmpty(courseTypeId.getSearch())){ |
| | |
| | | return this.baseMapper.getStudentIds(payId); |
| | | } |
| | | |
| | | @Override |
| | | public boolean updateHoursById(TCoursePackagePayment byId, int i) { |
| | | return this.baseMapper.updateHoursById(byId.getId(),i); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | |
| | | }else if(integer>i) { |
| | | Calendar instance = Calendar.getInstance(); |
| | | instance.add(Calendar.DATE,integer-i); |
| | | Date time = instance.getTime(); |
| | | Date time1 = instance.getTime(); |
| | | List<Date> list = new ArrayList<>(); |
| | | list.add(time1); |
| | | instance.add(Calendar.DATE,7); |
| | | Date time2 = instance.getTime(); |
| | | list.add(time2); |
| | | for (Date time : list) { |
| | | for (int i1 = 0; i1 < split.length; i1++) { |
| | | CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); |
| | | coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); |
| | | try { |
| | | Date parse = format1.parse(format.format(time) + " " + split[i1]); |
| | | Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); |
| | | coursePackageScheduling.setClassDate(parse); |
| | | coursePackageScheduling.setEndDate(parse1); |
| | | coursePackageScheduling.setStatus(1); |
| | | coursePackageSchedulingService.save(coursePackageScheduling); |
| | | |
| | | for (int i1 = 0; i1 < split.length; i1++) { |
| | | CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); |
| | | coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); |
| | | try { |
| | | Date parse = format1.parse(format.format(time) + " " + split[i1]); |
| | | Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); |
| | | coursePackageScheduling.setClassDate(parse); |
| | | coursePackageScheduling.setEndDate(parse1); |
| | | coursePackageScheduling.setStatus(1); |
| | | coursePackageSchedulingService.save(coursePackageScheduling); |
| | | |
| | | CoursePackageStudent student1 = new CoursePackageStudent(); |
| | | student1.setAppUserId(userId); |
| | | student1.setStudentId(sId); |
| | | student1.setCoursePackageId(tCoursePackage.getId()); |
| | | student1.setCoursePackagePaymentId(paymentId); |
| | | student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); |
| | | student1.setSignInOrNot(0); |
| | | student1.setReservationStatus(1); |
| | | student1.setInsertTime(new Date()); |
| | | cpsMapper.insert(student1); |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | CoursePackageStudent student1 = new CoursePackageStudent(); |
| | | student1.setAppUserId(userId); |
| | | student1.setStudentId(sId); |
| | | student1.setCoursePackageId(tCoursePackage.getId()); |
| | | student1.setCoursePackagePaymentId(paymentId); |
| | | student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); |
| | | student1.setSignInOrNot(0); |
| | | student1.setReservationStatus(1); |
| | | student1.setInsertTime(new Date()); |
| | | cpsMapper.insert(student1); |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | }else { |
| | | Calendar instance = Calendar.getInstance(); |
| | | instance.add(Calendar.DATE,7); |
| | |
| | | SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | Date date = sdf1.parse(sdf.format(new Date()) + " 00:00:00"); |
| | | List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";")); |
| | | String classStartTime = coursePackage.getClassStartTime(); |
| | | String[] split = classStartTime.split(":"); |
| | | String classEndTime = coursePackage.getClassEndTime(); |
| | | String[] split1 = classEndTime.split(":"); |
| | | Calendar s = Calendar.getInstance(); |
| | | s.setTime(date); |
| | | s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); |
| | | s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0])); |
| | | s.set(Calendar.MINUTE, Integer.valueOf(split[1])); |
| | | s.set(Calendar.SECOND, 0); |
| | | String value = coursePackage.getClassStartTime(); |
| | | String value1 = coursePackage.getClassEndTime(); |
| | | |
| | | Calendar e = Calendar.getInstance(); |
| | | e.setTime(date); |
| | | e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13); |
| | | long timeInMillis = e.getTimeInMillis(); |
| | | String[] star = value.split(","); |
| | | String[] end = value1.split(","); |
| | | |
| | | while (true){ |
| | | int w = s.get(Calendar.DAY_OF_WEEK); |
| | | WeekEnum weekEnum = WeekEnum.getWeekEnum(w); |
| | | if(list.contains(weekEnum.getChineseName())){ |
| | | Calendar classDate = Calendar.getInstance(); |
| | | classDate.setTime(s.getTime()); |
| | | classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0])); |
| | | classDate.set(Calendar.MINUTE, Integer.valueOf(split[1])); |
| | | classDate.set(Calendar.SECOND, 0); |
| | | for (int i = 0; i < star.length; i++) { |
| | | |
| | | Calendar endDate = Calendar.getInstance(); |
| | | endDate.setTime(s.getTime()); |
| | | endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0])); |
| | | endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1])); |
| | | endDate.set(Calendar.SECOND, 0); |
| | | |
| | | CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); |
| | | coursePackageScheduling.setCoursePackageId(coursePackage.getId()); |
| | | coursePackageScheduling.setClassDate(classDate.getTime()); |
| | | coursePackageScheduling.setEndDate(endDate.getTime()); |
| | | coursePackageScheduling.setStatus(1); |
| | | coursePackageSchedulingService.save(coursePackageScheduling); |
| | | } |
| | | // int index = star[i].indexOf(","); |
| | | // |
| | | // |
| | | // String result = value.substring(0, index).trim(); |
| | | String classStartTime = star[i]; |
| | | String[] split = classStartTime.split(":"); |
| | | // String value1 = en; |
| | | int index1 = value1.indexOf(","); |
| | | // String result1 = value.substring(0, index1).trim(); |
| | | String classEndTime = end[i]; |
| | | String[] split1 = classEndTime.split(":"); |
| | | Calendar s = Calendar.getInstance(); |
| | | s.setTime(date); |
| | | s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); |
| | | if(s.getTimeInMillis() > timeInMillis){ |
| | | break; |
| | | s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0])); |
| | | s.set(Calendar.MINUTE, Integer.valueOf(split[1])); |
| | | s.set(Calendar.SECOND, 0); |
| | | |
| | | Calendar e = Calendar.getInstance(); |
| | | e.setTime(date); |
| | | e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13); |
| | | long timeInMillis = e.getTimeInMillis(); |
| | | |
| | | while (true){ |
| | | int w = s.get(Calendar.DAY_OF_WEEK); |
| | | WeekEnum weekEnum = WeekEnum.getWeekEnum(w); |
| | | if(list.contains(weekEnum.getChineseName())){ |
| | | Calendar classDate = Calendar.getInstance(); |
| | | classDate.setTime(s.getTime()); |
| | | classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0])); |
| | | classDate.set(Calendar.MINUTE, Integer.valueOf(split[1])); |
| | | classDate.set(Calendar.SECOND, 0); |
| | | |
| | | Calendar endDate = Calendar.getInstance(); |
| | | endDate.setTime(s.getTime()); |
| | | endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0])); |
| | | endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1])); |
| | | endDate.set(Calendar.SECOND, 0); |
| | | |
| | | CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); |
| | | coursePackageScheduling.setCoursePackageId(coursePackage.getId()); |
| | | coursePackageScheduling.setClassDate(classDate.getTime()); |
| | | coursePackageScheduling.setEndDate(endDate.getTime()); |
| | | coursePackageScheduling.setStatus(1); |
| | | coursePackageSchedulingService.save(coursePackageScheduling); |
| | | } |
| | | s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); |
| | | if(s.getTimeInMillis() > timeInMillis){ |
| | | break; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | return coursePackage.getId(); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | |
| | | package com.dsh.course.util; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | /** |
| | | * 定义统一返回对象 |
| | | */ |
| | | @ApiModel(value = "统一返回结果集") |
| | | public class ResultUtil<T> { |
| | | |
| | | public static final Integer SUCCESS = 200; |
| | |
| | | |
| | | public static final Integer ERROR = 500; |
| | | |
| | | public static final Integer TOKEN_ERROR = 600; |
| | | public static final String Token = "Token失效"; |
| | | |
| | | public static final Integer SIGN_ERROR = 700; |
| | | private Integer status;//状态码 |
| | | |
| | | public static final String Token = "TOKEN_INVALID"; |
| | | |
| | | public static final String SIGN = "SIGN_INVALID"; |
| | | |
| | | @ApiModelProperty(name = "code", value = "业务状态码 200:成功,300:参数错误,400:运行异常,500:其他异常, 600:token无效,需重新登录,700:签名无效") |
| | | private Integer code;//备用状态码 |
| | | |
| | | @ApiModelProperty(name = "msg", value = "返回结果说明") |
| | | private String msg;//返回说明 |
| | | |
| | | @ApiModelProperty(name = "data", value = "返回结果值") |
| | | private T data;//返回数据 |
| | | |
| | | private String str;//存储单个字符串值 |
| | | |
| | | |
| | | public Integer getStatus() { |
| | | return status; |
| | | } |
| | | |
| | | public String getMsg() { |
| | | return msg; |
| | |
| | | return data; |
| | | } |
| | | |
| | | public String getStr() { |
| | | return str; |
| | | } |
| | | |
| | | public Integer getCode() { |
| | | return code; |
| | | } |
| | | |
| | | private ResultUtil(Integer code, String msg) { |
| | | public ResultUtil(Integer status, Integer code, String msg) { |
| | | this.status = status; |
| | | this.code = code; |
| | | this.msg = msg; |
| | | } |
| | | |
| | | private ResultUtil(Integer code, String msg, T data) { |
| | | private ResultUtil(Integer status, Integer code, String msg, T data) { |
| | | this.status = status; |
| | | this.code = code; |
| | | this.msg = msg; |
| | | this.data = data; |
| | | } |
| | | |
| | | |
| | | public static <T> ResultUtil<T> getResult(Integer code, String msg){ |
| | | return new ResultUtil<>(code, msg); |
| | | public ResultUtil(Integer status, Integer code, String msg, T data, String str) { |
| | | this.status = status; |
| | | this.code = code; |
| | | this.msg = msg; |
| | | this.data = data; |
| | | this.str = str; |
| | | } |
| | | |
| | | public static <T> ResultUtil<T> getResult(Integer code, String msg, T data){ |
| | | return new ResultUtil<>(code, msg, data); |
| | | private ResultUtil(Integer status, Integer code, String msg, String str) { |
| | | this.status = status; |
| | | this.code = code; |
| | | this.msg = msg; |
| | | this.str = str; |
| | | } |
| | | |
| | | |
| | | public static <T> ResultUtil<T> getResult(Integer status, Integer code, String msg){ |
| | | return new ResultUtil<>(status, code, msg); |
| | | } |
| | | |
| | | public static <T> ResultUtil<T> getResult(Integer status, Integer code, String msg, T data){ |
| | | return new ResultUtil<>(status, code, msg, data); |
| | | } |
| | | |
| | | public static <T> ResultUtil<T> getResult(Integer status, Integer code, String msg, T data, String str){ |
| | | return new ResultUtil<>(status, code, msg, data, str); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | public static ResultUtil error(String mag){ |
| | | return ResultUtil.getResult(ResultUtil.ERROR, mag, new JSONObject()); |
| | | return ResultUtil.getResult(ResultUtil.ERROR, ResultUtil.ERROR, mag); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | public static <T> ResultUtil <T> error(String mag, T obj){ |
| | | return ResultUtil.getResult(ResultUtil.ERROR, mag, obj); |
| | | return ResultUtil.getResult(ResultUtil.ERROR, ResultUtil.ERROR, mag, obj); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | public static ResultUtil tokenErr(){ |
| | | return ResultUtil.getResult(ResultUtil.TOKEN_ERROR, ResultUtil.Token, new JSONObject()); |
| | | return ResultUtil.getResult(ResultUtil.ERROR, ResultUtil.ERROR, ResultUtil.Token); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | public static ResultUtil tokenErr(String msg){ |
| | | return ResultUtil.getResult(ResultUtil.TOKEN_ERROR, msg, new JSONObject()); |
| | | return ResultUtil.getResult(ResultUtil.ERROR, ResultUtil.ERROR, msg); |
| | | } |
| | | |
| | | /** |
| | | * 参数异常 |
| | | * @return |
| | | */ |
| | | public static ResultUtil paranErr(String ages){ |
| | | return ResultUtil.getResult(ResultUtil.PARAM_ERROR, "【" + ages + "】参数异常", new JSONObject()); |
| | | public static ResultUtil paranErr(){ |
| | | return ResultUtil.getResult(ResultUtil.PARAM_ERROR, ResultUtil.PARAM_ERROR, "参数异常"); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | public static <T> ResultUtil<T> paranErr(T data){ |
| | | return ResultUtil.getResult(ResultUtil.PARAM_ERROR, "PARAM_ERROR", data); |
| | | return ResultUtil.getResult(ResultUtil.PARAM_ERROR, ResultUtil.PARAM_ERROR, "参数异常", data); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 运行异常 |
| | | * @return |
| | | */ |
| | | public static ResultUtil runErr(){ |
| | | return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, "SYSTEM_RUN_ERROR", new JSONObject()); |
| | | return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, ResultUtil.RUNTIME_ERROR, "服务器运行异常"); |
| | | } |
| | | |
| | | |
| | |
| | | * @return |
| | | */ |
| | | public static <T>ResultUtil<T> runErr(T data){ |
| | | return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, "SYSTEM_RUN_ERROR", data); |
| | | } |
| | | |
| | | /** |
| | | * 运行异常 |
| | | * @return |
| | | */ |
| | | public static <T>ResultUtil<T> runErr(T data, String msg){ |
| | | return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, msg, data); |
| | | return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, ResultUtil.RUNTIME_ERROR, "服务器运行异常", data); |
| | | } |
| | | |
| | | |
| | |
| | | * @return |
| | | */ |
| | | public static ResultUtil success(){ |
| | | return ResultUtil.getResult(ResultUtil.SUCCESS, "SUCCESS", new JSONObject()); |
| | | return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, "成功"); |
| | | } |
| | | |
| | | |
| | |
| | | * @return |
| | | */ |
| | | public static <T> ResultUtil<T> success(T data){ |
| | | return ResultUtil.getResult(ResultUtil.SUCCESS, "SUCCESS", data); |
| | | return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, "成功", data); |
| | | } |
| | | |
| | | /** |
| | | * 返回成功 |
| | | * @param msg |
| | | * @param data |
| | | * @param str |
| | | * @param <T> |
| | | * @return |
| | | */ |
| | | public static <T> ResultUtil<T> success(String msg, T data){ |
| | | return ResultUtil.getResult(ResultUtil.SUCCESS, msg, data); |
| | | public static <T> ResultUtil<T> success(T data, String str){ |
| | | return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, "成功", data, str); |
| | | } |
| | | |
| | | public static <T> ResultUtil<T> success(String msg, T data){ |
| | | return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, msg, data); |
| | | } |
| | | |
| | | /** |
| | | * 签名无效 |
| | | * @param <T> |
| | | * @return |
| | | */ |
| | | public static <T> ResultUtil<T> sign(){ |
| | | return ResultUtil.getResult(ResultUtil.SIGN_ERROR, SIGN); |
| | | public static <T> ResultUtil<T> success(String msg, T data, String str){ |
| | | return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, msg, data, str); |
| | | } |
| | | |
| | | } |
| | |
| | | <?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.CoursePackageStudentMapper"> |
| | | |
| | | <update id="updateSignInOrNotById"> |
| | | update t_course_package_student set signInOrNot = 2 where id =#{id} |
| | | </update> |
| | | |
| | | |
| | | <select id="queryCoursePackageStudentList" resultType="map"> |
| | |
| | | SELECT |
| | | *, |
| | | pg.NAME AS className, |
| | | ty.`name` AS classType |
| | | pg.`type` AS classType |
| | | FROM |
| | | t_course_package_payment py |
| | | LEFT JOIN t_course_package pg ON py.coursePackageId = pg.id |
| | | LEFT JOIN t_course_package_type ty ON pg.type = ty.id |
| | | |
| | | |
| | | <where> |
| | | <if test="null != tStudentId"> |
| | |
| | | set useTime = #{date} |
| | | where id = #{id} |
| | | </update> |
| | | <update id="updateHoursById"> |
| | | update t_course_package_payment set totalClassHours =totalClassHours +#{i},classHours =classHours+#{i},laveClassHours =laveClassHours+#{i} where id =#{id} |
| | | </update> |
| | | |
| | | |
| | | <select id="queryCountNumber" resultType="int"> |
| | |
| | | SELECT appUserId |
| | | FROM t_course_package_payment |
| | | WHERE id = #{id} |
| | | ) AND id != #{id}; |
| | | ) AND id != #{id} and coursePackageId=( |
| | | SELECT coursePackageId |
| | | FROM t_course_package_payment |
| | | WHERE id = #{id} |
| | | ) |
| | | |
| | | |
| | | </select> |
| | |
| | | <version>2.3.1</version> |
| | | </dependency> |
| | | |
| | | |
| | | <!-- itext7html转pdf --> |
| | | <dependency> |
| | | <groupId>com.itextpdf</groupId> |
| | | <artifactId>html2pdf</artifactId> |
| | | <version>3.0.2</version> |
| | | </dependency> |
| | | <!-- 中文字体支持 --> |
| | | <dependency> |
| | | <groupId>com.itextpdf</groupId> |
| | | <artifactId>font-asian</artifactId> |
| | | <version>7.1.13</version> |
| | | </dependency> |
| | | </dependencies> |
| | | |
| | | <build> |
| | |
| | | <url>http://maven.magic-beans.cn/nexus/content/repositories/thirdparty/</url> |
| | | </repository> |
| | | |
| | | |
| | | |
| | | </repositories> |
| | | |
| | | |
| | |
| | | package com.dsh.course.dto; |
| | | |
| | | import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
| | | import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | public class ClassListDto { |
| | | private Integer id; |
| | | |
| | | @JsonSerialize(using = ToStringSerializer.class) |
| | | private Long id; |
| | | private String className; |
| | | |
| | | private String classType; |
| | | private Integer classType; |
| | | |
| | | private Date insertTime; |
| | | |
| | |
| | | import com.dsh.course.feignClient.account.model.QueryByNamePhone; |
| | | import com.dsh.course.feignClient.account.model.TAppUser; |
| | | import com.dsh.guns.modular.system.model.TStudent; |
| | | import com.dsh.guns.modular.system.model.dto.GiftSearchDto; |
| | | import com.dsh.guns.modular.system.model.dto.SelectDto; |
| | | import org.springframework.cloud.openfeign.FeignClient; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | |
| | | |
| | | @PostMapping("/student/getHisory") |
| | | List<GetHistoryDto> getHisory(); |
| | | @PostMapping("/student/giftSelect") |
| | | List<SelectDto> giftSelect(@RequestBody GiftSearchDto giftSearchDto); |
| | | } |
| | |
| | | private Integer state; |
| | | |
| | | private Page<Map<String, Object>> page; |
| | | private String cityCode; |
| | | private Integer storeId; |
| | | |
| | | } |
| | |
| | | */ |
| | | @PostMapping("/coursePackagePayment/editCoursePackagePayment") |
| | | void editCoursePackagePayment(TCoursePackagePayment coursePackagePayment); |
| | | |
| | | |
| | | @PostMapping("/coursePackagePayment/CountqueryByClassId") |
| | | Integer queryByClassId(Integer id); |
| | | } |
| | |
| | | |
| | | import com.dsh.course.dto.ClassListDto; |
| | | import com.dsh.course.dto.updateTimeDto; |
| | | import com.dsh.course.feignClient.course.model.TCoursePackagePayment; |
| | | import com.dsh.course.model.MoneyBack; |
| | | import com.dsh.course.model.dto.InsertBackDto; |
| | | import com.dsh.course.model.dto.StudentClassInfo; |
| | | import com.dsh.guns.modular.system.model.CourseCounsum; |
| | | import com.dsh.guns.modular.system.model.dto.ConsumeQuery; |
| | | import com.dsh.guns.modular.system.model.dto.SelectDto; |
| | | import com.dsh.guns.modular.system.model.dto.ToClassDto; |
| | | import com.dsh.guns.modular.system.model.dto.ToHoliDto; |
| | | import com.dsh.guns.modular.system.util.ResultUtil; |
| | | import io.swagger.models.auth.In; |
| | | import org.springframework.cloud.openfeign.FeignClient; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | |
| | | */ |
| | | @RequestMapping("/courdent/getSelect") |
| | | List<SelectDto> getSelect(@RequestParam("payId") Integer payId); |
| | | /** |
| | | * 转移课程 |
| | | * @param toClassDto |
| | | * @return |
| | | */ |
| | | @RequestMapping("/courdent/toClass") |
| | | void toClass(@RequestBody ToClassDto toClassDto); |
| | | |
| | | |
| | | //获取常规假期课下拉框 |
| | | @RequestMapping("/courdent/holiSelect") |
| | | List<SelectDto> getGiftSelect(@RequestParam("courseId") Integer paymentId); |
| | | |
| | | @RequestMapping("/courdent/transSelect") |
| | | List<SelectDto> getTransSelect(@RequestParam("courseId") Integer paymentId); |
| | | |
| | | @RequestMapping(value = "/courdent/toHoli",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8") |
| | | String toHoli(@RequestBody ToHoliDto toHoliDto); |
| | | @RequestMapping(value = "/courdent/toTrans",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8") |
| | | |
| | | String toTrans(@RequestBody ToHoliDto toHoliDto); |
| | | |
| | | |
| | | @RequestMapping("/courdent/queryByIds") |
| | | List<TCoursePackagePayment> queryByIds(@RequestParam("ids")String ids); |
| | | |
| | | |
| | | @RequestMapping("/courdent/queryCounsum") |
| | | List<CourseCounsum> queryCounsum( @RequestBody ConsumeQuery consumeQuery); |
| | | |
| | | |
| | | @RequestMapping("/courdent/getMoneyBack") |
| | | |
| | | List<MoneyBack> getMoneyBack(@RequestParam("tStudentId")Integer tStudentId); |
| | | |
| | | @PostMapping("/courdent/insertBack") |
| | | |
| | | void insertBack(@RequestBody InsertBackDto insertBackDto); |
| | | |
| | | @RequestMapping("/courdent/changeStatus") |
| | | void changeStatus(@RequestParam("id")Integer id); |
| | | @RequestMapping("/courdent/cancel") |
| | | void cancel(@RequestParam("ids")String ids); |
| | | @RequestMapping("/courdent/zeroClass") |
| | | void zeroClass(@RequestParam("id")Integer id); |
| | | } |
| | |
| | | * 玩湃币价格 |
| | | */ |
| | | private Integer playPaiCoin; |
| | | private String couponIds; |
| | | } |
| | |
| | | * 最多预约人数 |
| | | */ |
| | | private Integer maxSubscribeNumber; |
| | | |
| | | private Integer codeTime; |
| | | |
| | | /** |
| | | * 上课开始时间 |
| | | */ |
| | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date insertTime; |
| | | |
| | | //课包单价 |
| | | private BigDecimal onePrice; |
| | | |
| | | //已学课时 |
| | | |
| | | private Integer hasHours; |
| | | |
| | | private BigDecimal restPrice; |
| | | |
| | | private String name; |
| | | |
| | | } |
| | |
| | | import com.dsh.course.dto.CreateHistoryDto; |
| | | import com.dsh.course.dto.GetHistoryDto; |
| | | import com.dsh.guns.modular.system.model.Store; |
| | | import com.dsh.guns.modular.system.model.dto.GiftSearchDto; |
| | | import com.dsh.guns.modular.system.model.dto.SelectDto; |
| | | import org.springframework.cloud.openfeign.FeignClient; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | |
| | | |
| | | @PostMapping("/class/gethisotory") |
| | | List<GetHistoryDto> getHisory(@RequestBody Integer studentId); |
| | | |
| | | |
| | | } |
| | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date insertTime; |
| | | |
| | | @TableField("operatorId") |
| | | private Integer operatorId; |
| | | @TableField("typeName") |
| | | private String typeName; |
| | | @TableField("nextName") |
| | | private String nextName; |
| | | @TableField("ishalf") |
| | | private Integer ishalf; |
| | | @TableField("cashPriceOne") |
| | | private Double cashPriceOne; |
| | | @TableField("playPaiCoinOne") |
| | | private Double playPaiCoinOne; |
| | | @TableField("halfName") |
| | | private String halfName; |
| | | @TableField("introduce") |
| | | private String introduce; |
| | | @TableField("imgs") |
| | | private String imgs; |
| | | @TableField("ids") |
| | | private String ids; |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.course.mapper; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dsh.guns.modular.system.model.TOperatorCity; |
| | | |
| | | /** |
| | | * <p> |
| | | * 运营商 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | | * @since 2023-09-22 |
| | | */ |
| | | public interface TOperatorCityMapper extends BaseMapper<TOperatorCity> { |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.course.model; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.models.auth.In; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | public class MoneyBack { |
| | | |
| | | Integer id; |
| | | String ids; |
| | | Integer studentId; |
| | | Integer status; |
| | | @TableField("insertTime") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | Date insertTime; |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.course.model.dto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class InsertBackDto { |
| | | Integer id; |
| | | String ids; |
| | | } |
New file |
| | |
| | | package com.dsh.course.util; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | |
| | | public class ChineseMoneyUtils { |
| | | /** |
| | | * 中文数字 |
| | | */ |
| | | final static private String[] CHINESE_NUMBER = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; |
| | | /** |
| | | * 中文数字单位 |
| | | */ |
| | | final static private String[] CHINESE_NUMBER_UNIT = { "", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟" }; |
| | | /** |
| | | * 人民币单位 |
| | | */ |
| | | final static private String[] CHINESE_MONEY_UNIT = { "圆", "角", "分" }; |
| | | |
| | | public static void main(String[] args) { |
| | | String chineseMoney = toChineseMoney(new BigDecimal("320")); |
| | | System.out.println("chineseMoney = " + chineseMoney); |
| | | } |
| | | |
| | | /** |
| | | * @param sourceMoney 要转换的数值,最多支持到亿 |
| | | * @return 结果 |
| | | */ |
| | | public static String toChineseMoney(BigDecimal sourceMoney) { |
| | | if (new BigDecimal("1000000000000").compareTo(sourceMoney) <= 0 |
| | | && BigDecimal.ZERO.compareTo(sourceMoney) >= 0) { |
| | | throw new RuntimeException("支持转换的金额范围为0~1万亿"); |
| | | } |
| | | StringBuilder sb = new StringBuilder(); |
| | | // 整数部分 |
| | | BigDecimal intPart = sourceMoney.setScale(0, RoundingMode.DOWN); |
| | | // 小数部分 |
| | | BigDecimal decimalPart = sourceMoney.subtract(intPart).multiply(new BigDecimal(100)).setScale(0, |
| | | RoundingMode.DOWN); |
| | | |
| | | // 处理整数部分圆 |
| | | if (intPart.compareTo(BigDecimal.ZERO) > 0) { |
| | | String intPartNumberString = intPart.toPlainString(); |
| | | int length = intPartNumberString.length(); |
| | | // 统计末尾的零,末尾零不做处理 |
| | | int zeroCount = 0; |
| | | for (int i = length - 1; i >= 0; i--) { |
| | | int number = Integer.parseInt(String.valueOf(intPartNumberString.charAt(i))); |
| | | if (number == 0) { |
| | | zeroCount++; |
| | | } else { |
| | | break; |
| | | } |
| | | } |
| | | for (int i = 0; i < length; i++) { |
| | | // 如果转换到末尾0,则停止转换 |
| | | if (i + zeroCount == length) { |
| | | break; |
| | | } |
| | | int number = Integer.parseInt(String.valueOf(intPartNumberString.charAt(i))); |
| | | // 获取中文数字 |
| | | String chineseNumber = CHINESE_NUMBER[number]; |
| | | // 获取中文数字单位 |
| | | String chineseNumberUnit = CHINESE_NUMBER_UNIT[length - i - 1]; |
| | | sb.append(chineseNumber).append(chineseNumberUnit); |
| | | } |
| | | // 统计完后加上金额单位 |
| | | sb.append(CHINESE_MONEY_UNIT[0]); |
| | | } else { |
| | | sb.append(CHINESE_NUMBER[0]).append(CHINESE_MONEY_UNIT[0]); |
| | | } |
| | | |
| | | // 处理小数部分 |
| | | if (decimalPart.compareTo(new BigDecimal(10)) >= 0) { |
| | | // 角 |
| | | String jiao = decimalPart.toPlainString(); |
| | | int number = Integer.parseInt(String.valueOf(jiao.charAt(0))); |
| | | if (number != 0) { |
| | | String chineseNumber = CHINESE_NUMBER[number]; |
| | | sb.append(chineseNumber).append(CHINESE_MONEY_UNIT[1]); |
| | | } |
| | | |
| | | // 分 |
| | | String fen = decimalPart.toPlainString(); |
| | | number = Integer.parseInt(String.valueOf(fen.charAt(1))); |
| | | if (number != 0) { |
| | | String chineseNumber = CHINESE_NUMBER[number]; |
| | | sb.append(chineseNumber).append(CHINESE_MONEY_UNIT[2]); |
| | | } |
| | | } else if (decimalPart.compareTo(BigDecimal.ZERO) > 0) { |
| | | // 分 |
| | | String fen = decimalPart.toPlainString(); |
| | | int number = Integer.parseInt(String.valueOf(fen.charAt(0))); |
| | | if (number != 0) { |
| | | String chineseNumber = CHINESE_NUMBER[number]; |
| | | sb.append(chineseNumber).append(CHINESE_MONEY_UNIT[2]); |
| | | } |
| | | } else { |
| | | sb.append("整"); |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.course.util; |
| | | |
| | | import com.itextpdf.html2pdf.ConverterProperties; |
| | | import com.itextpdf.html2pdf.HtmlConverter; |
| | | import com.itextpdf.kernel.events.PdfDocumentEvent; |
| | | import com.itextpdf.kernel.font.PdfFont; |
| | | import com.itextpdf.kernel.font.PdfFontFactory; |
| | | import com.itextpdf.kernel.geom.PageSize; |
| | | import com.itextpdf.kernel.pdf.PdfDocument; |
| | | import com.itextpdf.kernel.pdf.PdfWriter; |
| | | import com.itextpdf.layout.font.FontProvider; |
| | | |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.io.OutputStream; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2023/8/14 11:13 |
| | | */ |
| | | public class HtmlToPdfUtils { |
| | | |
| | | public static void convertToPdf(InputStream inputStream, String waterMark, OutputStream outputStream) throws IOException { |
| | | |
| | | PdfWriter pdfWriter = new PdfWriter(outputStream); |
| | | PdfDocument pdfDocument = new PdfDocument(pdfWriter); |
| | | //设置为A4大小 |
| | | pdfDocument.setDefaultPageSize(PageSize.A4); |
| | | //添加水印 |
| | | // pdfDocument.addEventHandler(PdfDocumentEvent.END_PAGE, new WaterMarkEventHandler(waterMark)); |
| | | |
| | | //添加页码 |
| | | //pdfDocument.addEventHandler(PdfDocumentEvent.END_PAGE,new PageEventHandler()); |
| | | //添加中文字体支持 |
| | | ConverterProperties properties = new ConverterProperties(); |
| | | FontProvider fontProvider = new FontProvider(); |
| | | |
| | | PdfFont sysFont = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false); |
| | | fontProvider.addFont(sysFont.getFontProgram(), "UniGB-UCS2-H"); |
| | | |
| | | //添加自定义字体,例如微软雅黑 |
| | | /*if (StringUtils.isNotBlank(fontPath)){ |
| | | PdfFont microsoft = PdfFontFactory.createFont(fontPath, PdfEncodings.IDENTITY_H, false); |
| | | fontProvider.addFont(microsoft.getFontProgram(), PdfEncodings.IDENTITY_H); |
| | | }*/ |
| | | |
| | | properties.setFontProvider(fontProvider); |
| | | HtmlConverter.convertToPdf(inputStream, pdfDocument, properties); |
| | | |
| | | pdfWriter.close(); |
| | | pdfDocument.close(); |
| | | } |
| | | } |
| | |
| | | import com.dsh.guns.modular.system.service.IRegionService; |
| | | import com.dsh.guns.modular.system.service.IStoreService; |
| | | import com.dsh.guns.modular.system.util.OBSUploadUtil; |
| | | import com.dsh.guns.modular.system.util.OssUploadUtil; |
| | | import com.dsh.guns.modular.system.util.ResultUtil; |
| | | import org.apache.commons.beanutils.ConvertUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | ofSearch.setState(state); |
| | | return client.getCouponListOfSearch(ofSearch); |
| | | } |
| | | |
| | | /** |
| | | * 获取 优惠券管理 |
| | | */ |
| | | @RequestMapping(value = "/list1") |
| | | @ResponseBody |
| | | public Object listOfDatas1(String name, Integer type, Integer distributionMethod , Integer userPopulation, Integer status, Integer state,String cityCode,Integer storeId) { |
| | | Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage(); |
| | | CouponListOfSearch ofSearch = new CouponListOfSearch(); |
| | | ofSearch.setPage(page); |
| | | ofSearch.setName(name); |
| | | ofSearch.setType(type); |
| | | ofSearch.setDistributionMethod(distributionMethod); |
| | | ofSearch.setUserPopulation(userPopulation); |
| | | ofSearch.setStatus(status); |
| | | ofSearch.setState(state); |
| | | ofSearch.setCityCode(cityCode); |
| | | ofSearch.setStoreId(storeId); |
| | | return client.getCouponListOfSearch(ofSearch); |
| | | } |
| | | @RequestMapping(value = "/listRecord") |
| | | @ResponseBody |
| | | public Object listRecord(Integer id,String name, Integer type, String phone) { |
| | |
| | | if (imgFile != null){ |
| | | String originalFilename = imgFile.getOriginalFilename(); |
| | | String newName = originalFilename.substring(imgFile.getOriginalFilename().lastIndexOf(".")); |
| | | String url = OBSUploadUtil.inputStreamUpload(imgFile); |
| | | String url = OssUploadUtil.ossUpload("img/",imgFile); |
| | | Map<String, String> map = new HashMap<String, String>(); |
| | | //是否上传成功 |
| | | map.put("state", "SUCCESS"); |
| | |
| | | package com.dsh.guns.modular.system.controller.code; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.dsh.course.feignClient.account.CityManagerClient; |
| | | import com.dsh.course.feignClient.account.CoachClient; |
| | | import com.dsh.course.feignClient.account.model.CityManager; |
| | | import com.dsh.course.feignClient.account.model.Coach; |
| | | import com.dsh.course.feignClient.course.CoursePackageClient; |
| | | import com.dsh.course.feignClient.course.CoursePackageDiscountClient; |
| | | import com.dsh.course.feignClient.course.CoursePackagePaymentConfigClient; |
| | | import com.dsh.course.feignClient.course.CoursePackageTypeClient; |
| | | import com.dsh.course.feignClient.course.*; |
| | | import com.dsh.course.feignClient.course.model.*; |
| | | import com.dsh.guns.config.UserExt; |
| | | import com.dsh.guns.core.base.controller.BaseController; |
| | |
| | | import com.dsh.guns.modular.system.service.IStoreService; |
| | | import com.dsh.guns.modular.system.service.ITSiteService; |
| | | import com.dsh.guns.modular.system.util.ResultUtil; |
| | | import io.swagger.models.auth.In; |
| | | import org.aspectj.weaver.ast.Var; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | |
| | | * @return |
| | | */ |
| | | @GetMapping("/openAddCoursePackage") |
| | | public String openAddCoursePackage(Model model){ |
| | | public String openAddCoursePackage(Model model,Integer type){ |
| | | Integer objectType = UserExt.getUser().getObjectType(); |
| | | Integer objectId = UserExt.getUser().getObjectId(); |
| | | List<TCoursePackageType> tCoursePackageTypes = coursePackageTypeClient.queryAllCoursePackageType(); |
| | |
| | | model.addAttribute("site", list3); |
| | | List<Coach> coaches = coachClient.queryCoachByCity(code1); |
| | | model.addAttribute("coach", coaches); |
| | | |
| | | // System.out.println("========type========"+type); |
| | | // if (type ==1){ |
| | | // return PREFIX + "coursePackage_edit.html"; |
| | | // } |
| | | return PREFIX + "coursePackage_add.html"; |
| | | } |
| | | |
| | |
| | | List<Coach> coaches = coachClient.queryCoachByCity(cityCode); |
| | | model.addAttribute("coach", coaches); |
| | | List<CoursePackagePaymentConfig> list4 = coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(id); |
| | | System.out.println("========couponIds=========>"+list4.get(0).getCouponIds()); |
| | | model.addAttribute("couponIds", list4.get(0).getCouponIds()); |
| | | model.addAttribute("coursePackagePaymentConfig", list4.remove(0)); |
| | | model.addAttribute("coursePackagePaymentConfigs", list4); |
| | | CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0); |
| | | model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true); |
| | | model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true); |
| | | // if (list4.size()!=0) { |
| | | model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true); |
| | | model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true); |
| | | System.out.println("=========coursePackagePaymentConfig=============>" + coursePackagePaymentConfig); |
| | | // model.addAttribute("couponIds", "3,2"); |
| | | // } |
| | | return PREFIX + "coursePackage_edit.html"; |
| | | } |
| | | |
| | |
| | | CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0); |
| | | model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true); |
| | | model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true); |
| | | // model.addAttribute("couponIds", coursePackagePaymentConfig.getCouponIds()); |
| | | return PREFIX + "coursePackage_info.html"; |
| | | } |
| | | |
| | |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @GetMapping("/conpun/{id}") |
| | | public String conpun(@PathVariable Integer id,Model model){ |
| | | model.addAttribute("index",id); |
| | | return PREFIX + "TCoupon.html"; |
| | | } |
| | | |
| | | @GetMapping("/conpun1/{id}") |
| | | public String conpun1(Model model,@PathVariable Integer id,String conpunids){ |
| | | System.out.println("=====model=======conpunids======"+conpunids); |
| | | model.addAttribute("index",id); |
| | | |
| | | model.addAttribute("conpund",conpunids); |
| | | return PREFIX + "TCouponEdit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到优惠卷选择表页 |
| | | * @param model |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @GetMapping("/registrationRecord") |
| | | public String registrationRecord(Model model, Integer id){ |
| | | TCoursePackage tCoursePackage = coursePackageService.queryById(id); |
| | |
| | | return PREFIX + "registrationRecord.html"; |
| | | } |
| | | |
| | | |
| | | @Resource |
| | | @Autowired CoursePackagePaymentClient packagePaymentClient; |
| | | |
| | | /** |
| | | * 跳转到上课记录列表页 |
| | |
| | | @GetMapping("/openClassRecord") |
| | | public String openClassRecord(Model model, Integer id){ |
| | | TCoursePackage tCoursePackage = coursePackageClient.queryById(id); |
| | | String[] start = tCoursePackage.getClassStartTime().split(","); |
| | | String[] end = tCoursePackage.getClassEndTime().split(","); |
| | | Integer counts = packagePaymentClient.queryByClassId(id); |
| | | |
| | | |
| | | List<String> strings = new ArrayList<>(); |
| | | for (int i = 0; i <start.length ; i++) { |
| | | String outTime = start[i] +"-" +end[0]; |
| | | strings.add(outTime); |
| | | } |
| | | |
| | | TStore store = storeService.getById(tCoursePackage.getStoreId()); |
| | | Coach coach = coachClient.queryCoachById(tCoursePackage.getCoachId()); |
| | | model.addAttribute("item", tCoursePackage); |
| | | model.addAttribute("store", store); |
| | | model.addAttribute("coach", coach); |
| | | model.addAttribute("times", strings); |
| | | model.addAttribute("counts", counts); |
| | | |
| | | return PREFIX + "classRecord.html"; |
| | | } |
| | | |
| | |
| | | @PostMapping("/addCoursePackage") |
| | | public ResultUtil addCoursePackage(TCoursePackage coursePackage, String coursePackagePaymentConfig){ |
| | | String classStartTime = coursePackage.getClassStartTime(); |
| | | String classEndTime = coursePackage.getClassEndTime(); |
| | | classStartTime = classStartTime.substring(0, classStartTime.lastIndexOf(":")); |
| | | classEndTime = classEndTime.substring(0, classEndTime.lastIndexOf(":")); |
| | | coursePackage.setClassStartTime(classStartTime); |
| | | coursePackage.setClassEndTime(classEndTime); |
| | | // String classEndTime = coursePackage.getClassEndTime(); |
| | | |
| | | System.out.println("=======getClassStartTime============"+classStartTime); |
| | | String startTime = coursePackage.getClassStartTime(); |
| | | JSONArray jsonArray = JSON.parseArray(startTime); |
| | | System.out.println("=======jsonArray==========="+jsonArray); |
| | | |
| | | List<String> first = new ArrayList<>(); |
| | | List<String> second = new ArrayList<>(); |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | // JSONObject jsonObject = JSON.parseObject(jsonArray.getString(i)); |
| | | |
| | | String jsonString = jsonArray.getString(i); |
| | | String[] split = jsonString.split(" - "); |
| | | first.add(split[0]); |
| | | second.add(split[1]); |
| | | |
| | | } |
| | | String firstString = String.join(",",first); |
| | | String secondString = String.join(",",second); |
| | | System.out.println("=========firstString========>"+firstString); |
| | | |
| | | System.out.println("=========secondString========>"+secondString); |
| | | // classStartTime = classStartTime.substring(0, classStartTime.lastIndexOf(":")); |
| | | // classEndTime = classEndTime.substring(0, classEndTime.lastIndexOf(":")); |
| | | coursePackage.setClassStartTime(firstString); |
| | | coursePackage.setClassEndTime(secondString); |
| | | coursePackage.setAuditStatus(1); |
| | | coursePackage.setStatus(1); |
| | | coursePackage.setState(1); |
| | |
| | | @Autowired |
| | | private TStoreOtherService storeOtherService; |
| | | |
| | | |
| | | @Autowired |
| | | private TOperatorService tOperatorService; |
| | | |
| | | |
| | | /** |
| | |
| | | model.addAttribute("list",list); |
| | | String roleid = UserExt.getUser().getRoleid(); |
| | | model.addAttribute("role",roleid); |
| | | List<TOperator> list1 = tOperatorService.list(); |
| | | model.addAttribute("yysList",list1); |
| | | return PREFIX + "tShop_add.html"; |
| | | } |
| | | @RequestMapping("/tShop_add_one") |
| | |
| | | return PREFIX + "tShop_add_one.html"; |
| | | } |
| | | @RequestMapping("/tShop_add_two") |
| | | public String tCompetitionAddTwo(Model model) { |
| | | public String tCompetitionAddTwo(Integer id,Model model) { |
| | | List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); |
| | | model.addAttribute("list",list); |
| | | model.addAttribute("id",id); |
| | | String roleid = UserExt.getUser().getRoleid(); |
| | | return PREFIX + "tShop_add_two.html"; |
| | | return PREFIX + "TShop_edit_three.html"; |
| | | } |
| | | |
| | | |
| | |
| | | TStore byId = storeService.getById(id); |
| | | model.addAttribute("item",byId); |
| | | List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); |
| | | model.addAttribute("list",list); |
| | | TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getProvinceCode())); |
| | | List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId())); |
| | | |
| | | // TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getProvinceCode())); |
| | | TOperatorCity one = operatorCityService.getOne(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, byId.getOperatorId()).eq(TOperatorCity::getType, 1)); |
| | | List<TOperatorCity> ones = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, byId.getOperatorId()).eq(TOperatorCity::getType, 1)); |
| | | model.addAttribute("list",ones); |
| | | List<TOperatorCity> list3 = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, one.getId()).eq(TOperatorCity::getType, 2)); |
| | | if(list3.size()>0){ |
| | | model.addAttribute("list1",list3); |
| | | }else { |
| | | TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getProvinceCode())); |
| | | List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one1.getId())); |
| | | model.addAttribute("list1",list1); |
| | | } |
| | | CityListQuery cityListQuery = new CityListQuery(); |
| | | cityListQuery.setOffset(1); |
| | | cityListQuery.setLimit(10000); |
| | | cityListQuery.setCityCode(byId.getCityCode()); |
| | | Page<TCityManager> list2 = cityClient.list(cityListQuery); |
| | | model.addAttribute("list1",list1); |
| | | |
| | | List<TOperator> list1 = tOperatorService.list(); |
| | | model.addAttribute("yysList",list1); |
| | | |
| | | model.addAttribute("list2",list2.getRecords()); |
| | | String roleid = UserExt.getUser().getRoleid(); |
| | | model.addAttribute("role",roleid); |
| | | model.addAttribute("role",roleid); |
| | | model.addAttribute("time",byId.getStartTime()+" - "+byId.getEndTime()); |
| | | User byId1 = userMapper.selectById(byId.getStoreStaffId()); |
| | | model.addAttribute("city",byId1); |
| | | model.addAttribute("type",1); |
| | | return PREFIX + "tShop_edit.html"; |
| | | } |
| | | @RequestMapping("/tShop_update1/{id}") |
| | | public String tCityUpdate1(@PathVariable Integer id, Model model) { |
| | | TStoreOther byId = storeOtherService.getById(id); |
| | | model.addAttribute("item",byId); |
| | | return PREFIX + "tShop_edit_one.html"; |
| | | } |
| | | |
| | | |
| | |
| | | model.addAttribute("list1",list1); |
| | | |
| | | return PREFIX + "tShop_edit_two.html"; |
| | | } |
| | | @RequestMapping("/tShop_update_one1/{id}") |
| | | public String tCityUpdateOne1(@PathVariable Integer id, Model model) { |
| | | TStoreOtherConfigTrue byId = tStoreOtherConfigTrueService.getById(id); |
| | | TTurn one = tTurnService.getOne(new LambdaQueryWrapper<TTurn>().eq(TTurn::getName, byId.getName())); |
| | | // page list |
| | | List<TTurn> list = tTurnService.list(new LambdaQueryWrapper<TTurn>().eq(TTurn::getPid, one.getId())); |
| | | // type list |
| | | List<TTurn> list1 = tTurnService.list(new LambdaQueryWrapper<TTurn>().eq(TTurn::getPid, byId.getPageId())); |
| | | model.addAttribute("item",byId); |
| | | model.addAttribute("list",list); |
| | | model.addAttribute("list1",list1); |
| | | |
| | | return PREFIX + "tShop_add_three.html"; |
| | | } |
| | | |
| | | |
| | |
| | | page.setRecords(list); |
| | | return super.packForBT(page); |
| | | } |
| | | @RequestMapping(value = "/listTwo1") |
| | | @ResponseBody |
| | | public Object listTwo1(Integer id) { |
| | | Page<TStoreOtherConfigTrue> page = new PageFactory<TStoreOtherConfigTrue>().defaultPage(); |
| | | List<TStoreOtherConfigTrue> list = tStoreOtherConfigTrueService.page(page,new LambdaQueryWrapper<TStoreOtherConfigTrue>().eq(TStoreOtherConfigTrue::getPid, id).eq(TStoreOtherConfigTrue::getState,1)).getRecords(); |
| | | page.setRecords(list); |
| | | return super.packForBT(page); |
| | | } |
| | | |
| | | @RequestMapping(value = "/add") |
| | | @ResponseBody |
| | | public Object list(TStore tStore,String time,String userName,String userPhone,String ids,Integer type,Integer yyId,String lat,String lon) { |
| | | try { |
| | | if(ToolUtil.isNotEmpty(tStore.getProvinceCode())) { |
| | | TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tStore.getProvinceCode())); |
| | | TOperatorCity byId = operatorCityService.getById(tStore.getProvinceCode()); |
| | | TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getCode())); |
| | | tStore.setProvince(one.getName()); |
| | | TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tStore.getCityCode())); |
| | | tStore.setCity(one1.getName()); |
| | | tStore.setProvinceCode(one.getCode()); |
| | | List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, byId.getId()).eq(TOperatorCity::getType, 2)); |
| | | if(list.size()>0){ |
| | | TOperatorCity byId1 = operatorCityService.getById(tStore.getCityCode()); |
| | | TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode())); |
| | | tStore.setCity(one1.getName()); |
| | | tStore.setCityCode(one1.getCode()); |
| | | }else { |
| | | TCity byId1 = cityService.getById(tStore.getCityCode()); |
| | | TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode())); |
| | | tStore.setCity(one1.getName()); |
| | | tStore.setCityCode(one1.getCode()); |
| | | } |
| | | } |
| | | tStore.setStartTime(time.split(" - ")[0]); |
| | | tStore.setEndTime(time.split(" - ")[1]); |
| | |
| | | |
| | | @RequestMapping(value = "/update") |
| | | @ResponseBody |
| | | public Object update(TStore tStore,String time,String userName,String userPhone,String ids,Integer type,Integer yyId) { |
| | | public Object update(TStore tStore,String time,String userName,String userPhone,String ids,Integer type,Integer yyId,String lat,String lon) { |
| | | try { |
| | | TStore byId = storeService.getById(tStore.getId()); |
| | | |
| | | if(ToolUtil.isNotEmpty(tStore.getProvinceCode())) { |
| | | TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tStore.getProvinceCode())); |
| | | TOperatorCity tOperatorCity = operatorCityService.getById(tStore.getProvinceCode()); |
| | | TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tOperatorCity.getCode())); |
| | | tStore.setProvince(one.getName()); |
| | | TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tStore.getCityCode())); |
| | | tStore.setCity(one1.getName()); |
| | | tStore.setProvinceCode(one.getCode()); |
| | | List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, tOperatorCity.getId()).eq(TOperatorCity::getType, 2)); |
| | | if(list.size()>0){ |
| | | TOperatorCity byId1 = operatorCityService.getById(tStore.getCityCode()); |
| | | TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode())); |
| | | tStore.setCity(one1.getName()); |
| | | tStore.setCityCode(one1.getCode()); |
| | | }else { |
| | | TCity byId1 = cityService.getById(tStore.getCityCode()); |
| | | TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode())); |
| | | tStore.setCity(one1.getName()); |
| | | tStore.setCityCode(one1.getCode()); |
| | | } |
| | | } |
| | | tStore.setStartTime(time.split(" - ")[0]); |
| | | tStore.setEndTime(time.split(" - ")[1]); |
| | |
| | | user.setName(userName); |
| | | user.setPhone(userPhone); |
| | | userMapper.updateById(user); |
| | | tStore.setLon(lon); |
| | | tStore.setLat(lat); |
| | | storeService.updateById(tStore); |
| | | return new SuccessTip<>(); |
| | | }catch (Exception e){ |
| | |
| | | } |
| | | } |
| | | |
| | | @Autowired |
| | | private TOperatorCityService operatorCityService; |
| | | |
| | | @RequestMapping(value = "/onChange1") |
| | | @ResponseBody |
| | | public Object onChange1(Integer oneId) { |
| | | try { |
| | | List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 1)); |
| | | return list; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ERROR; |
| | | } |
| | | } |
| | | |
| | | @RequestMapping(value = "/onChange2") |
| | | @ResponseBody |
| | | public Object onChange2(Integer oneId) { |
| | | try { |
| | | List<TOperatorCity> list1 = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 1)); |
| | | List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, oneId).eq(TOperatorCity::getType, 2)); |
| | | if(list.size()==0){ |
| | | TOperatorCity tOperatorCity = list1.get(0); |
| | | Integer code = tOperatorCity.getCode(); |
| | | TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, code)); |
| | | List<TCity> list2 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, one.getId())); |
| | | return list2; |
| | | }else { |
| | | return list; |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ERROR; |
| | | } |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/cancel") |
| | | public Object cancel(Integer id) { |
| | |
| | | public Object delete1(Integer id) { |
| | | try { |
| | | storeService.delete1(id); |
| | | return SUCCESS_TIP; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ERROR; |
| | | } |
| | | } |
| | | @ResponseBody |
| | | @RequestMapping(value = "/deleteTwo") |
| | | public Object delete2(Integer id) { |
| | | try { |
| | | TStoreOtherConfigTrue byId = tStoreOtherConfigTrueService.getById(id); |
| | | |
| | | byId.setState(2); |
| | | tStoreOtherConfigTrueService.updateById(byId); |
| | | return SUCCESS_TIP; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ERROR; |
| | | } |
| | | } |
| | | @ResponseBody |
| | | @RequestMapping(value = "/del") |
| | | public Object del(Integer id) { |
| | | try { |
| | | storeOtherService.removeById(id); |
| | | tStoreOtherConfigTrueService.remove(new LambdaQueryWrapper<TStoreOtherConfigTrue>().eq(TStoreOtherConfigTrue::getPid,id)); |
| | | |
| | | return SUCCESS_TIP; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | |
| | | TStore byId = storeService.getById(id); |
| | | byId.setState(1); |
| | | storeService.updateById(byId); |
| | | return SUCCESS_TIP; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ERROR; |
| | | } |
| | | } |
| | | |
| | | @RequestMapping(value = "/unfreeze1") |
| | | @ResponseBody |
| | | public Object unfreeze1(Integer id,Integer type) { |
| | | try { |
| | | TStoreOther byId = storeOtherService.getById(id); |
| | | byId.setState(type); |
| | | storeOtherService.updateById(byId); |
| | | return SUCCESS_TIP; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | |
| | | * ajax.set("type",type); |
| | | * ajax.set("turnId",turnId); |
| | | * ajax.set("sort",sort); |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "/addConfigOne") |
| | |
| | | return ERROR; |
| | | } |
| | | } |
| | | @RequestMapping(value = "/addConfig1") |
| | | @ResponseBody |
| | | public Object addConfig1(String name,Integer id) { |
| | | try { |
| | | TStoreOther byId = storeOtherService.getById(id); |
| | | byId.setName( |
| | | name |
| | | ); |
| | | storeOtherService.updateById(byId); |
| | | |
| | | |
| | | return SUCCESS_TIP; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ERROR; |
| | | } |
| | | } |
| | | @RequestMapping(value = "/updateConfigOne") |
| | | @ResponseBody |
| | | public Object addConfigOne(String url,String name,Integer page,Integer type,String turnId,Integer sort,Integer id) { |
| | |
| | | return ERROR; |
| | | } |
| | | } |
| | | @RequestMapping(value = "/updateConfigOne3") |
| | | @ResponseBody |
| | | public Object addConfigOne3(String url,String name,Integer page,Integer type,String turnId,Integer sort,Integer id) { |
| | | try { |
| | | TStoreOtherConfigTrue byId = tStoreOtherConfigTrueService.getById(id); |
| | | if(ToolUtil.isNotEmpty(url)){ |
| | | byId.setUrl(url); |
| | | } |
| | | byId.setName(name); |
| | | TTurn byId1 = tTurnService.getById(page); |
| | | TTurn byId2 = tTurnService.getById(type); |
| | | byId.setPage(byId1.getName()); |
| | | byId.setType(byId2.getName()); |
| | | byId.setTurnId(turnId); |
| | | byId.setSort(sort); |
| | | byId.setPageId(page); |
| | | byId.setTypeId(type); |
| | | tStoreOtherConfigTrueService.updateById(byId); |
| | | return SUCCESS_TIP; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ERROR; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | } |
| | | Integer objectType = UserExt.getUser().getObjectType(); |
| | | Integer objectId = UserExt.getUser().getObjectId(); |
| | | |
| | | List<TOperator> list = tOperatorService.list(); |
| | | model.addAttribute("yysList",list); |
| | | |
| | | model.addAttribute("userType",objectType); |
| | | HashSet<String> set = new HashSet<String>(list1); |
| | | QueryWrapper<TSiteType> wrapper = new QueryWrapper<>(); |
| | |
| | | model.addAttribute("objectType",objectType); |
| | | model.addAttribute("objectId",objectId); |
| | | model.addAttribute("stores",stores); |
| | | |
| | | String nextName = site.getNextName(); |
| | | ArrayList<String> strings1 = new ArrayList<>(); |
| | | for (String s : nextName.split(",")) { |
| | | strings1.add(s); |
| | | } |
| | | model.addAttribute("nextNames",strings1); |
| | | |
| | | |
| | | String halfNames = site.getHalfName(); |
| | | ArrayList<String> strings2 = new ArrayList<>(); |
| | | String[] split = halfNames.split(","); |
| | | String halfName=null; |
| | | for (int i = 0; i < split.length; i++) { |
| | | if(i==0){ |
| | | halfName = split[0]; |
| | | }else { |
| | | strings2.add(split[i]); |
| | | } |
| | | } |
| | | model.addAttribute("halfNames",strings2); |
| | | model.addAttribute("halfName",halfName); |
| | | |
| | | return PREFIX + "TSite_edit.html"; |
| | | } |
| | | |
| | |
| | | list1.add(cityManager.getProvince()); |
| | | } |
| | | Integer objectType = UserExt.getUser().getObjectType(); |
| | | List<TOperator> list = tOperatorService.list(); |
| | | model.addAttribute("yysList",list); |
| | | Integer objectId = UserExt.getUser().getObjectId(); |
| | | model.addAttribute("userType",objectType); |
| | | HashSet<String> set = new HashSet<String>(list1); |
| | |
| | | } |
| | | } |
| | | |
| | | @RequestMapping(value = "/getChangeOne") |
| | | @ResponseBody |
| | | public Object getChangeOne(Integer oneId) { |
| | | try { |
| | | return storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getOperatorId,oneId).eq(TStore::getState,1)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ERROR; |
| | | } |
| | | } |
| | | |
| | | // 选择市后 获取对应账号 |
| | | @RequestMapping(value = "/accountChangeNext") |
| | | @ResponseBody |
| | |
| | | |
| | | import com.dsh.course.dto.*; |
| | | import com.dsh.course.feignClient.account.AppUserClient; |
| | | import com.dsh.course.feignClient.account.model.TAppUser; |
| | | import com.dsh.course.feignClient.course.CoursePackageClient; |
| | | import com.dsh.course.feignClient.course.CourseStuddentClient; |
| | | import com.dsh.course.feignClient.course.model.TCoursePackage; |
| | | import com.dsh.course.feignClient.course.model.TCoursePackagePayment; |
| | | import com.dsh.course.feignClient.other.HistoryClient; |
| | | import com.dsh.course.model.MoneyBack; |
| | | import com.dsh.course.model.dto.InsertBackDto; |
| | | import com.dsh.course.model.dto.StudentClassInfo; |
| | | import com.dsh.course.util.ChineseMoneyUtils; |
| | | import com.dsh.course.util.HtmlToPdfUtils; |
| | | import com.dsh.guns.config.UserExt; |
| | | import com.dsh.guns.core.base.controller.BaseController; |
| | | import com.dsh.guns.modular.system.model.CourseCounsum; |
| | | import com.dsh.guns.modular.system.model.TStudent; |
| | | import com.dsh.guns.modular.system.model.User; |
| | | import com.dsh.guns.modular.system.model.dto.SelectDto; |
| | | import com.dsh.guns.modular.system.model.dto.*; |
| | | import com.dsh.guns.modular.system.service.ITStudentService; |
| | | import com.dsh.guns.modular.system.util.BigDecimalToChineseAmountUtil; |
| | | import com.dsh.guns.modular.system.util.ResultUtil; |
| | | import io.swagger.models.auth.In; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.HttpRequest; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.io.OutputStream; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | |
| | | |
| | | |
| | | |
| | | @RequestMapping("download") |
| | | public void down(HttpServletRequest request, HttpServletResponse response) throws IOException { |
| | | // Get the InputStream from a file or any other source |
| | | InputStream inputStream = request.getInputStream(); // Obtain the InputStream |
| | | |
| | | // Set the content type of the response |
| | | response.setContentType("application/octet-stream"); |
| | | |
| | | // Set the headers for file download |
| | | response.setHeader("Content-Disposition", "attachment; filename=\"filename.extension\""); |
| | | |
| | | // Get the OutputStream from the response |
| | | OutputStream outputStream = response.getOutputStream(); |
| | | |
| | | // Copy the data from InputStream to OutputStream |
| | | byte[] buffer = new byte[1024]; |
| | | int bytesRead; |
| | | while ((bytesRead = inputStream.read(buffer)) != -1) { |
| | | outputStream.write(buffer, 0, bytesRead); |
| | | } |
| | | |
| | | HtmlToPdfUtils.convertToPdf(inputStream,null,outputStream); |
| | | |
| | | // Close the streams |
| | | inputStream.close(); |
| | | outputStream.close(); |
| | | } |
| | | |
| | | /** |
| | | * 获取变更列表 |
| | | */ |
| | | /** |
| | | * 获取有效期 |
| | | */ |
| | | @RequestMapping("/changelist/{payId}") |
| | | @ResponseBody |
| | | public ResultUtil changelist(@PathVariable("payId") Integer payId, ConsumeQuery consumeQuery) { |
| | | consumeQuery.setPayId(payId); |
| | | System.out.println("=======changelist==========="+consumeQuery); |
| | | List<CourseCounsum> courseCounsums = courseStuddentClient.queryCounsum(consumeQuery); |
| | | Map<String,List<CourseCounsum>> map = new HashMap<>(); |
| | | map.put("items",courseCounsums); |
| | | |
| | | return new ResultUtil<>(0,0,null,map,null); |
| | | } |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | |
| | | return PREFIX + "tStudent.html"; |
| | | } |
| | | |
| | | @RequestMapping("TTT") |
| | | public String index1() { |
| | | return PREFIX + "tStudentEditTTT.html"; |
| | | } |
| | | |
| | | @RequestMapping("openAddCoursePackage") |
| | | public String index3() { |
| | | return PREFIX + "classelct.html"; |
| | | } |
| | | |
| | | @RequestMapping("trans") |
| | | public String index2() { |
| | | return PREFIX + "trans.html"; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 跳转到添加 |
| | | */ |
| | |
| | | return PREFIX + "tStudent_add.html"; |
| | | } |
| | | |
| | | @Resource |
| | | private CoursePackageClient coursePackageClient; |
| | | |
| | | |
| | | /** |
| | | * 获取有效期 |
| | | */ |
| | | @RequestMapping("/getBackList/{tStudentId}") |
| | | @ResponseBody |
| | | public ResultUtil getBackList(@PathVariable("tStudentId") Integer tStudentId) { |
| | | |
| | | List<MoneyBack> moneyBacks = courseStuddentClient.getMoneyBack(tStudentId); |
| | | Map<String, List<MoneyBack>> map = new HashMap<>(); |
| | | map.put("items",moneyBacks); |
| | | |
| | | return new ResultUtil<>(0,0,null,map,null); |
| | | } |
| | | /** |
| | | * 跳转到退款 |
| | | */ |
| | | @RequestMapping("/backmoney") |
| | | public String backmoney(Integer id,String ids,Model model) { |
| | | |
| | | TStudentDto tStudentDto = appUserClient.queryOneWebUser(id); |
| | | model.addAttribute("id", id); |
| | | model.addAttribute("ids", ids); |
| | | |
| | | |
| | | TAppUser tAppUser = appUserClient.queryById(tStudentDto.getAppUserId()); |
| | | model.addAttribute("userName",tAppUser.getName()); |
| | | model.addAttribute("tStudentDto",tStudentDto); |
| | | |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); |
| | | String formattedDate = dateFormat.format(new Date()); |
| | | model.addAttribute("reDate", formattedDate); |
| | | |
| | | List<TCoursePackagePayment> coursePackagePayments = courseStuddentClient.queryByIds(ids); |
| | | |
| | | BigDecimal countAll = new BigDecimal(0); |
| | | |
| | | for (TCoursePackagePayment payment : coursePackagePayments){ |
| | | |
| | | //课包名称 |
| | | TCoursePackage tCoursePackage = coursePackageClient.queryById(payment.getCoursePackageId()); |
| | | payment.setName(tCoursePackage.getName()); |
| | | payment.setId(Long.valueOf(tCoursePackage.getId())); |
| | | |
| | | BigDecimal cashPayment = payment.getCashPayment(); |
| | | Integer totalClassHours = payment.getTotalClassHours(); |
| | | BigDecimal result = new BigDecimal(0); |
| | | if (totalClassHours!=0) { |
| | | result = cashPayment.divide(BigDecimal.valueOf(totalClassHours), 2, RoundingMode.HALF_UP); |
| | | } |
| | | |
| | | |
| | | |
| | | //单价 |
| | | payment.setOnePrice(result); |
| | | |
| | | int has = payment.getTotalClassHours() - payment.getLaveClassHours(); |
| | | //剩余课时 |
| | | payment.setHasHours(has); |
| | | |
| | | |
| | | BigDecimal onePrice = payment.getOnePrice(); |
| | | Integer laveClassHours = payment.getLaveClassHours(); |
| | | BigDecimal result1 = onePrice.multiply(BigDecimal.valueOf(laveClassHours)); |
| | | //总价 |
| | | payment.setRestPrice(result1); |
| | | System.out.println("======="+result1); |
| | | countAll = countAll.add(result1); |
| | | |
| | | } |
| | | //中文总价 |
| | | // String allprice = BigDecimalToChineseAmountUtil.convertToChineseAmount(countAll); |
| | | String allprice = ChineseMoneyUtils.toChineseMoney(countAll); |
| | | model.addAttribute("countAll", countAll); |
| | | model.addAttribute("allprice", allprice); |
| | | model.addAttribute("coursePackagePayments", coursePackagePayments); |
| | | |
| | | model.addAttribute("index",1); |
| | | |
| | | System.out.println("=====ids========"+ids); |
| | | return PREFIX + "banckmoney.html"; |
| | | } |
| | | /** |
| | | * 跳转到修改 |
| | | */ |
| | |
| | | model.addAttribute("pic2", pics[1]); |
| | | System.out.println("=====pic2==" + pics[1]); |
| | | } |
| | | if (pics.length > 3) { |
| | | if (pics.length > 2) { |
| | | model.addAttribute("pic3", pics[2]); |
| | | System.out.println("=====pic3==" + pics[2]); |
| | | } |
| | |
| | | model.addAttribute("pic2", pics[1]); |
| | | System.out.println("=====pic2==" + pics[1]); |
| | | } |
| | | if (pics.length > 3) { |
| | | if (pics.length > 2) { |
| | | model.addAttribute("pic3", pics[2]); |
| | | System.out.println("=====pic3==" + pics[2]); |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | |
| | | //保存退款记录 |
| | | @RequestMapping("/ttt") |
| | | @ResponseBody |
| | | public ResultUtil list1(StudentSearch search) { |
| | | public ResultUtil list1(Integer id, String ids) { |
| | | InsertBackDto insertBackDto= new InsertBackDto(); |
| | | insertBackDto.setId(id); |
| | | insertBackDto.setIds(ids); |
| | | System.out.println("=====insertBackDto========"+insertBackDto); |
| | | |
| | | courseStuddentClient.insertBack(insertBackDto); |
| | | |
| | | //取消排课 |
| | | courseStuddentClient.cancel(ids); |
| | | System.out.println("============学员查询接口========="); |
| | | return ResultUtil.success(); |
| | | } |
| | | |
| | | @RequestMapping("/changeStatus/{id}") |
| | | @ResponseBody |
| | | public ResultUtil changeStatus(@PathVariable Integer id) { |
| | | // InsertBackDto insertBackDto= new InsertBackDto(); |
| | | // insertBackDto.setId(id); |
| | | //// insertBackDto.setIds(ids); |
| | | // System.out.println("=====insertBackDto========"+insertBackDto); |
| | | |
| | | courseStuddentClient.changeStatus(id); |
| | | courseStuddentClient.zeroClass(id); |
| | | |
| | | System.out.println("============学员查询接口========="); |
| | | return new ResultUtil<>(0,0,"同意成功",null,null); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 学员修改 |
| | |
| | | @RequestMapping(value = "/update") |
| | | @ResponseBody |
| | | |
| | | public ResultUtil update(@RequestBody TStudent tStudent, String image1, String image2, String image3 ) { |
| | | String lateralSurface = image1+";"+image2+";"+image3; |
| | | public ResultUtil update(@RequestBody TStudent tStudent) { |
| | | String lateralSurface = tStudent.getImage1()+";"+tStudent.getImage2()+";"+tStudent.getImage3(); |
| | | |
| | | System.out.println("=======lateralSurface======>?"+lateralSurface); |
| | | tStudent.setLateralSurface(lateralSurface); |
| | | System.out.println("学员体测表的值"+lateralSurface); |
| | | itStudentService.update(tStudent); |
| | |
| | | map.put("options",selectDtos); |
| | | return new ResultUtil(0,0,"编辑成功",map,""); |
| | | } |
| | | |
| | | /** |
| | | * 学员转移课程 |
| | | */ |
| | | @RequestMapping(value = "/toClass") |
| | | @ResponseBody |
| | | public ResultUtil toClass( Integer id,Integer toStudentId) { |
| | | ToClassDto toClassDto = new ToClassDto(); |
| | | toClassDto.setToStudentId(toStudentId); |
| | | toClassDto.setId(id); |
| | | |
| | | courseStuddentClient.toClass(toClassDto); |
| | | |
| | | // Map<String,List<SelectDto>> map = new HashMap<>(); |
| | | // map.put("options",selectDtos); |
| | | return new ResultUtil(0,0,"编辑成功",1,""); |
| | | } |
| | | |
| | | /** |
| | | * 赠送课时下拉框 |
| | | */ |
| | | @RequestMapping(value = "/giftSelect") |
| | | @ResponseBody |
| | | public ResultUtil giftSelect(GiftSearchDto giftSearchDto) { |
| | | |
| | | List<SelectDto> selectDtos = appUserClient.giftSelect(giftSearchDto); |
| | | |
| | | Map<String,List<SelectDto>> map = new HashMap<>(); |
| | | map.put("options",selectDtos); |
| | | // Map<String,List<SelectDto>> map = new HashMap<>(); |
| | | // map.put("options",selectDtos); |
| | | return new ResultUtil(0,0,"编辑成功",map,""); |
| | | } |
| | | |
| | | |
| | | //获取可报名假期课程下拉框 |
| | | @RequestMapping(value = "/getholi/{id}") |
| | | @ResponseBody |
| | | public ResultUtil giftSelect(@PathVariable("id") Integer id) { |
| | | List<SelectDto> selectDtos = courseStuddentClient.getGiftSelect(id); |
| | | |
| | | Map<String,List<SelectDto>> map = new HashMap<>(); |
| | | map.put("options",selectDtos); |
| | | |
| | | return new ResultUtil(0,0,"编辑成功",map,""); |
| | | } |
| | | |
| | | //获取可转换常规课程下拉框 |
| | | @RequestMapping(value = "/gettrans/{id}") |
| | | @ResponseBody |
| | | public ResultUtil gettrans(@PathVariable("id") Integer id) { |
| | | List<SelectDto> selectDtos = courseStuddentClient.getTransSelect(id); |
| | | |
| | | Map<String,List<SelectDto>> map = new HashMap<>(); |
| | | map.put("options",selectDtos); |
| | | |
| | | return new ResultUtil(0,0,"编辑成功",map,""); |
| | | } |
| | | //消耗时长可报名假期课程 |
| | | @RequestMapping(value = "/Toholi") |
| | | @ResponseBody |
| | | public ResultUtil Toholi(Integer id,String ids,Integer holiId,Integer classNum) { |
| | | |
| | | String[] stringArray = ids.split(","); |
| | | |
| | | ToHoliDto toHoliDto = new ToHoliDto(); |
| | | toHoliDto.setId(id); |
| | | toHoliDto.setIds(stringArray); |
| | | toHoliDto.setClassNum(classNum); |
| | | toHoliDto.setClassId(holiId); |
| | | |
| | | |
| | | String resultUtil = courseStuddentClient.toHoli(toHoliDto); |
| | | System.out.println("========ToHoliDto========="+resultUtil); |
| | | |
| | | |
| | | if (resultUtil==""){ |
| | | return new ResultUtil<>(0,0,"报名成功"); |
| | | }else |
| | | return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil); |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/ToTrans") |
| | | @ResponseBody |
| | | public ResultUtil Totans(Integer id,String ids,Integer holiId,Integer classNum) { |
| | | |
| | | String[] stringArray = ids.split(","); |
| | | |
| | | ToHoliDto toHoliDto = new ToHoliDto(); |
| | | toHoliDto.setId(id); |
| | | toHoliDto.setIds(stringArray); |
| | | toHoliDto.setClassNum(classNum); |
| | | toHoliDto.setClassId(holiId); |
| | | |
| | | |
| | | String resultUtil = courseStuddentClient.toTrans(toHoliDto); |
| | | System.out.println("========ToHoliDto========="+resultUtil); |
| | | |
| | | |
| | | if (resultUtil==""){ |
| | | return new ResultUtil<>(0,0,"报名成功"); |
| | | }else |
| | | return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil); |
| | | } |
| | | |
| | | //赠课 |
| | | |
| | | @RequestMapping(value = "/giftTo") |
| | | @ResponseBody |
| | | public ResultUtil toClagiftToss( Integer id,Integer toStudentId) { |
| | | ToClassDto toClassDto = new ToClassDto(); |
| | | toClassDto.setToStudentId(toStudentId); |
| | | toClassDto.setId(id); |
| | | |
| | | courseStuddentClient.toClass(toClassDto); |
| | | |
| | | // Map<String,List<SelectDto>> map = new HashMap<>(); |
| | | // map.put("options",selectDtos); |
| | | return new ResultUtil(0,0,"编辑成功",1,""); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import io.swagger.models.auth.In; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | |
| | | @Data |
| | | public class CourseCounsum { |
| | | |
| | | Integer id; |
| | | Integer changeType; |
| | | Integer num; |
| | | String reason; |
| | | Long paymentId; |
| | | Date insertTime; |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.baomidou.mybatisplus.extension.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import java.io.Serializable; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.experimental.Accessors; |
| | | |
| | | /** |
| | | * <p> |
| | | * 运营商 |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | | * @since 2023-09-22 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @Accessors(chain = true) |
| | | @TableName("t_operator_city") |
| | | public class TOperatorCity extends Model<TOperatorCity> { |
| | | |
| | | private static final long serialVersionUID=1L; |
| | | |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | |
| | | /** |
| | | * 名称 |
| | | */ |
| | | private String name; |
| | | |
| | | /** |
| | | * code |
| | | */ |
| | | private Integer code; |
| | | |
| | | /** |
| | | * 1 省 2市 |
| | | */ |
| | | private Integer type; |
| | | |
| | | private Integer pid; |
| | | |
| | | @TableField("operatorId") |
| | | private Integer operatorId; |
| | | |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | } |
| | |
| | | @TableField("insertTime") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date insertTime; |
| | | |
| | | @TableField("operatorId") |
| | | private Integer operatorId; |
| | | @TableField("typeName") |
| | | private String typeName; |
| | | @TableField("nextName") |
| | | private String nextName; |
| | | @TableField("ishalf") |
| | | private Integer ishalf; |
| | | @TableField("cashPriceOne") |
| | | private Double cashPriceOne; |
| | | @TableField("playPaiCoinOne") |
| | | private Double playPaiCoinOne; |
| | | @TableField("halfName") |
| | | private String halfName; |
| | | @TableField("introduce") |
| | | private String introduce; |
| | | @TableField("imgs") |
| | | private String imgs; |
| | | @TableField("ids") |
| | | private String ids; |
| | | } |
| | |
| | | private Integer isDefault; |
| | | |
| | | |
| | | private String image1; |
| | | |
| | | private String image2; |
| | | private String image3; |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.model.dto; |
| | | |
| | | import io.swagger.models.auth.In; |
| | | import lombok.Data; |
| | | import org.apache.catalina.util.Introspection; |
| | | |
| | | import java.util.Date; |
| | | @Data |
| | | public class ConsumeQuery { |
| | | |
| | | |
| | | Date start; |
| | | Date end; |
| | | Integer changeType; |
| | | |
| | | String reason; |
| | | |
| | | Integer payId; |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.model.dto; |
| | | |
| | | import io.swagger.models.auth.In; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class GiftSearchDto { |
| | | String name; |
| | | String phone; |
| | | Integer id; |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.model.dto; |
| | | |
| | | public class HoliSelect { |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.model.dto; |
| | | |
| | | import io.swagger.models.auth.In; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class ToClassDto { |
| | | Integer id; |
| | | Integer toStudentId; |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.model.dto; |
| | | |
| | | import io.swagger.models.auth.In; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | @Data |
| | | public class ToHoliDto { |
| | | Integer id; |
| | | Integer classId; |
| | | Integer classNum; |
| | | String[] ids; |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.service; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.dsh.guns.modular.system.model.TOperatorCity; |
| | | |
| | | /** |
| | | * <p> |
| | | * 运营商 服务类 |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | | * @since 2023-09-22 |
| | | */ |
| | | public interface TOperatorCityService extends IService<TOperatorCity> { |
| | | |
| | | } |
| | |
| | | Integer classHours = jsonObject.getInteger("classHours"); |
| | | Double cashPayment = jsonObject.getDouble("cashPayment"); |
| | | Integer playPaiCoin = jsonObject.getInteger("playPaiCoin"); |
| | | String couponIds = jsonObject.getString("couponIds"); |
| | | CoursePackagePaymentConfig coursePackagePaymentConfig1 = new CoursePackagePaymentConfig(); |
| | | coursePackagePaymentConfig1.setCoursePackageId(integer); |
| | | coursePackagePaymentConfig1.setClassHours(classHours); |
| | | coursePackagePaymentConfig1.setCashPayment(cashPayment); |
| | | coursePackagePaymentConfig1.setPlayPaiCoin(playPaiCoin); |
| | | coursePackagePaymentConfig1.setCouponIds(couponIds); |
| | | coursePackagePaymentConfigClient.addCoursePackagePaymentConfig(coursePackagePaymentConfig1); |
| | | } |
| | | } |
| | |
| | | Integer classHours = jsonObject.getInteger("classHours"); |
| | | Double cashPayment = jsonObject.getDouble("cashPayment"); |
| | | Integer playPaiCoin = jsonObject.getInteger("playPaiCoin"); |
| | | String couponIds = jsonObject.getString("couponIds"); |
| | | CoursePackagePaymentConfig coursePackagePaymentConfig1 = new CoursePackagePaymentConfig(); |
| | | coursePackagePaymentConfig1.setCoursePackageId(coursePackage.getId()); |
| | | coursePackagePaymentConfig1.setClassHours(classHours); |
| | | coursePackagePaymentConfig1.setCashPayment(cashPayment); |
| | | coursePackagePaymentConfig1.setPlayPaiCoin(playPaiCoin); |
| | | coursePackagePaymentConfig1.setCouponIds(couponIds); |
| | | coursePackagePaymentConfigClient.addCoursePackagePaymentConfig(coursePackagePaymentConfig1); |
| | | } |
| | | } |
| | |
| | | } |
| | | TCoursePackagePayment tCoursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackageStudent.getCoursePackagePaymentId()); |
| | | tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours() - deductClassHour); |
| | | if(coursePackageStudent.getSignInOrNot() == 0){ |
| | | // if(coursePackageStudent.getSignInOrNot() == 0){ |
| | | tCoursePackagePayment.setAbsencesNumber(tCoursePackagePayment.getAbsencesNumber() + 1); |
| | | } |
| | | // } |
| | | coursePackagePaymentClient.editCoursePackagePayment(tCoursePackagePayment); |
| | | |
| | | CancelledClasses cancelledClasses = new CancelledClasses(); |
New file |
| | |
| | | package com.dsh.guns.modular.system.service.impl; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.dsh.course.mapper.TOperatorCityMapper; |
| | | import com.dsh.guns.modular.system.model.TOperatorCity; |
| | | import com.dsh.guns.modular.system.service.TOperatorCityService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * <p> |
| | | * 运营商 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author administrator0 |
| | | * @since 2023-09-22 |
| | | */ |
| | | @Service |
| | | public class TOperatorCityServiceImpl extends ServiceImpl<TOperatorCityMapper, TOperatorCity> implements TOperatorCityService { |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.util; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | public class BigDecimalToChineseAmountUtil { |
| | | private static final String[] CN_UPPER_NUMBER = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; |
| | | private static final String[] CN_UPPER_MONETRAY_UNIT = {"分", "角", "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "兆", "拾", "佰", "仟"}; |
| | | private static final String CN_FULL = "整"; |
| | | private static final String CN_NEGATIVE = "负"; |
| | | private static final int MONEY_PRECISION = 2; |
| | | |
| | | public static String convertToChineseAmount(BigDecimal number) { |
| | | StringBuilder builder = new StringBuilder(); |
| | | |
| | | if (number.compareTo(BigDecimal.ZERO) < 0) { |
| | | builder.append(CN_NEGATIVE); |
| | | number = number.abs(); |
| | | } |
| | | |
| | | long integralPart = number.longValue(); |
| | | BigDecimal decimalPart = number.subtract(BigDecimal.valueOf(integralPart)).multiply(BigDecimal.TEN.pow(MONEY_PRECISION)); |
| | | |
| | | if (decimalPart.compareTo(BigDecimal.ZERO) == 0) { |
| | | builder.append(CN_FULL); |
| | | } |
| | | |
| | | long integralPartTemp = integralPart; |
| | | int unit = 0; |
| | | boolean isZero = true; |
| | | boolean needZero = false; |
| | | |
| | | while (integralPartTemp > 0) { |
| | | long tempNumber = integralPartTemp % 10; |
| | | if (tempNumber > 0) { |
| | | if (needZero) { |
| | | builder.insert(0, CN_UPPER_NUMBER[0]); |
| | | } |
| | | builder.insert(0, CN_UPPER_MONETRAY_UNIT[unit]); |
| | | builder.insert(0, CN_UPPER_NUMBER[(int) tempNumber]); |
| | | isZero = false; |
| | | needZero = false; |
| | | } else { |
| | | if (!isZero) { |
| | | needZero = true; |
| | | } |
| | | if (unit == 2 || unit == 6 || unit == 10 || unit == 14) { |
| | | builder.insert(0, CN_UPPER_MONETRAY_UNIT[unit]); |
| | | isZero = true; |
| | | } |
| | | } |
| | | integralPartTemp = integralPartTemp / 10; |
| | | unit++; |
| | | } |
| | | |
| | | if (decimalPart.compareTo(BigDecimal.ZERO) > 0) { |
| | | builder.append(convertDecimalToChinese(decimalPart)); |
| | | } |
| | | |
| | | return builder.toString(); |
| | | } |
| | | |
| | | private static String convertDecimalToChinese(BigDecimal decimalPart) { |
| | | StringBuilder builder = new StringBuilder(); |
| | | |
| | | for (int i = 0; i < MONEY_PRECISION; i++) { |
| | | int num = decimalPart.intValue() % 10; |
| | | builder.insert(0, CN_UPPER_NUMBER[num]); |
| | | builder.append(CN_UPPER_MONETRAY_UNIT[i + 2]); |
| | | decimalPart = decimalPart.multiply(BigDecimal.TEN); |
| | | } |
| | | |
| | | return builder.toString(); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | BigDecimal number = new BigDecimal("12345.67"); |
| | | String chineseAmount = convertToChineseAmount(number); |
| | | System.out.println(chineseAmount); // Output: 壹万贰仟叁佰肆拾伍元陆角柒分 |
| | | } |
| | | } |
New file |
| | |
| | | <?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.TOperatorCityMapper"> |
| | | |
| | | |
| | | </mapper> |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>优惠券管理</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="name" name="优惠券名称" /> |
| | | <input type="hidden" id="index" value="${index}"> |
| | | </div> |
| | | <!-- <div class="col-sm-3">--> |
| | | <!-- <#SelectCon id="type" name="优惠券类型" >--> |
| | | <!-- <option value="">全部</option>--> |
| | | <!-- <option value="1">满减券</option>--> |
| | | <!-- <option value="2">折扣券</option>--> |
| | | <!-- <option value="3">体验券</option>--> |
| | | <!-- </#SelectCon>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="col-sm-3">--> |
| | | <!-- <#SelectCon id="distributionMethod" name="发放方式" >--> |
| | | <!-- <option value="">全部</option>--> |
| | | <!-- <option value="1">积分购买</option>--> |
| | | <!-- <option value="2">注册赠送</option>--> |
| | | <!-- <option value="3">自动发券</option>--> |
| | | <!-- </#SelectCon>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="col-sm-3">--> |
| | | <!-- <#SelectCon id="userPopulation" name="用户人群" >--> |
| | | <!-- <option value="">全部</option>--> |
| | | <!-- <option value="1">全部用户</option>--> |
| | | <!-- <option value="2">年度会员</option>--> |
| | | <!-- <option value="3">已有学员用户</option>--> |
| | | <!-- </#SelectCon>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="col-sm-3">--> |
| | | <!-- <#SelectCon id="status" name="活动状态" >--> |
| | | <!-- <option value="">全部</option>--> |
| | | <!-- <option value="1">未开始</option>--> |
| | | <!-- <option value="2">已开始</option>--> |
| | | <!-- <option value="3">已结束</option>--> |
| | | <!-- </#SelectCon>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="col-sm-3">--> |
| | | <!-- <#SelectCon id="state" name="可售状态" >--> |
| | | <!-- <option value="">全部</option>--> |
| | | <!-- <option value="1">已上架</option>--> |
| | | <!-- <option value="2">已下架</option>--> |
| | | <!-- </#SelectCon>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="col-sm-3">--> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCoupon.search()"/> |
| | | <!-- <#button name="重置" icon="fa-trash" clickFun="TCoupon.resetSearch()"/>--> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="hidden-xs" id="TCouponTableToolbar" role="group">--> |
| | | <!-- <#button name="添加" icon="fa-plus" clickFun="TCoupon.backids(${index})" />--> |
| | | <!-- <#button name="编辑" icon="fa-edit" clickFun="TCoupon.openChange()" space="true" hidden='hidden'/>--> |
| | | <!-- <#button name="上架" icon="fa-remove" clickFun="TCoupon.onShelf(1)" space="true" hidden='hidden'/>--> |
| | | <!-- <#button name="下架" icon="fa-remove" clickFun="TCoupon.onShelf(2)" space="true" hidden='hidden'/>--> |
| | | <!-- <#button name="查看详情" icon="fa-remove" clickFun="TCoupon.openDetail()" space="true" hidden='hidden'/>--> |
| | | <!-- <#button name="领取记录" icon="fa-remove" clickFun="TCoupon.openCollectionRecord()" space="true" hidden='hidden'/>--> |
| | | <!-- </div>--> |
| | | <#table id="TCouponTable"/> |
| | | <div style="display: flex"> <#button name="添加" icon="fa-plus" clickFun="TCoupon.backids(${index})"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/modular/system/coursePackage/TCoupon.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>优惠券管理</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="name" name="优惠券名称" /> |
| | | <input type="text" id="conpund" value="${conpund}"> |
| | | <input type="text" id="index" value="${index}"> |
| | | |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="type" name="优惠券类型" > |
| | | <option value="">全部</option> |
| | | <option value="1">满减券</option> |
| | | <option value="2">折扣券</option> |
| | | <option value="3">体验券</option> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="distributionMethod" name="发放方式" > |
| | | <option value="">全部</option> |
| | | <option value="1">积分购买</option> |
| | | <option value="2">注册赠送</option> |
| | | <option value="3">自动发券</option> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="userPopulation" name="用户人群" > |
| | | <option value="">全部</option> |
| | | <option value="1">全部用户</option> |
| | | <option value="2">年度会员</option> |
| | | <option value="3">已有学员用户</option> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="status" name="活动状态" > |
| | | <option value="">全部</option> |
| | | <option value="1">未开始</option> |
| | | <option value="2">已开始</option> |
| | | <option value="3">已结束</option> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="state" name="可售状态" > |
| | | <option value="">全部</option> |
| | | <option value="1">已上架</option> |
| | | <option value="2">已下架</option> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCoupon.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TCoupon.resetSearch()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TCouponTableToolbar" role="group"> |
| | | <#button name="添加" icon="fa-plus" clickFun="TCoupon.backids(${index})"/> |
| | | <#button name="编辑" icon="fa-edit" clickFun="TCoupon.openChange()" space="true"/> |
| | | <#button name="上架" icon="fa-remove" clickFun="TCoupon.onShelf(1)" space="true"/> |
| | | <#button name="下架" icon="fa-remove" clickFun="TCoupon.onShelf(2)" space="true"/> |
| | | <#button name="查看详情" icon="fa-remove" clickFun="TCoupon.openDetail()" space="true"/> |
| | | <#button name="领取记录" icon="fa-remove" clickFun="TCoupon.openCollectionRecord()" space="true"/> |
| | | </div> |
| | | <#table id="TCouponTable"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/modular/system/coursePackage/TCouponEdit.js"></script> |
| | | @} |
| | |
| | | <div class="row"> |
| | | <h3>课包信息</h3> |
| | | <input type="hidden" id="id" value="${item.id}"> |
| | | <input type="hidden" id="codeTime" value="${item.codeTime}"> |
| | | |
| | | <div class="form-group" style="height: 10px;"> |
| | | <label class="col-sm-1 control-label" style="text-align: right;">所属门店:</label> |
| | | <span class="col-sm-2" style="text-align: left;">${store.name}</span> |
| | |
| | | </div> |
| | | <div class="form-group" style="height: 10px;"> |
| | | <label class="col-sm-1 control-label" style="text-align: right;">授课教师:</label> |
| | | <span class="col-sm-2" style="text-align: left;">${coach.name}</span> |
| | | <span class="col-sm-2" style="text-align: left;">${coach.name!}</span> |
| | | </div> |
| | | <div class="form-group" style="height: 10px;"> |
| | | <label class="col-sm-1 control-label" style="text-align: right;">已报名学员:</label> |
| | | <span class="col-sm-2" style="text-align: left;">${counts}</span> |
| | | </div> |
| | | <div class="form-group" style="height: 10px;"> |
| | | <label class="col-sm-1 control-label" style="text-align: right;">上课时间:</label> |
| | | <span class="col-sm-2" style="text-align: left;">${item.classWeeks}</span> |
| | | </div> |
| | | |
| | | @for(time in times){ |
| | | <div class="form-group" style="height: 10px;"> |
| | | <label class="col-sm-1 control-label" style="text-align: right;"></label> |
| | | <span class="col-sm-2" style="text-align: left;">${item.classStartTime + ' - ' + item.classEndTime}</span> |
| | | <span class="col-sm-2" style="text-align: left;">${time}</span> |
| | | </div> |
| | | @} |
| | | |
| | | </div> |
| | | <div class="hidden-xs" id="managerTableToolbar" role="group"> |
| | | <#button name="查看学员" icon="fa-plus" clickFun="ClassRecord.classRecord()"/> |
| | | <#button name="取消本次" icon="fa-edit" clickFun="ClassRecord.cancelClassSchedule()" space="true"/> |
| | | <#button name="发布课后练习" icon="fa-refresh" clickFun="ClassRecord.afterClassExercises()" space="true"/> |
| | | <#button name="上传消课记录" icon="fa-refresh" clickFun="ClassRecord.cancellationRecord()" space="true"/> |
| | | <#button name="上传消课记录" icon="fa-refresh" clickFun="ClassRecord.cancellationRecord(${item.codeTime})" space="true"/> |
| | | <#button name="查看消课记录" icon="fa-refresh" clickFun="ClassRecord.lookCancellationRecord()" space="true"/> |
| | | <#button name="手动预约" icon="fa-refresh" clickFun="ClassRecord.manualReservation()" space="true"/> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="managerTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/coursePackage/addCoursePackage")){ |
| | | <#button name="测试添加" icon="fa-plus" clickFun="CoursePackage.addCoursePackage1()"/> |
| | | |
| | | <#button name="添加" icon="fa-plus" clickFun="CoursePackage.addCoursePackage()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/coursePackage/editCoursePackage")){ |
| | | <#button name="编辑" icon="fa-edit" clickFun="CoursePackage.editCoursePackage()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/coursePackage/upCoursePackage")){ |
| | | <#button name="上架" icon="fa-refresh" clickFun="CoursePackage.editCoursePackageState(1)" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/coursePackage/downCoursePackage")){ |
| | | <#button name="下架" icon="fa-warning" clickFun="CoursePackage.editCoursePackageState(2)" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/coursePackage/coursePackageDiscount")){ |
| | | <#button name="折扣管理" icon="fa-check-circle" clickFun="CoursePackage.coursePackageDiscount()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/coursePackage/detailsCoursePackage")){ |
| | | <#button name="详情" icon="fa-check-circle" clickFun="CoursePackage.detailsCoursePackage()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/coursePackage/registrationRecord")){ |
| | | <#button name="报名信息" icon="fa-check-circle" clickFun="CoursePackage.registrationRecord()" space="true"/> |
| | | @} |
| | | |
| | | </div> |
| | | <#table id="managerTable"/> |
| | | </div> |
| | |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <input type="hidden" id="id" value="${id}"> |
| | | |
| | | <div class="row"> |
| | | <div class="col-lg-10 col-sm-9"> |
| | | <div class="row"> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="managerTableToolbar" role="group"> |
| | | <#button name="取消预约" icon="fa-plus" clickFun="CoursePackageStudent.cancelReservation()"/> |
| | | <#button name="未到" icon="fa-edit" clickFun="CoursePackageStudent.absence()" space="true"/> |
| | | <#button name="请假" icon="fa-plus" clickFun="CoursePackageStudent.cancelReservation()"/> |
| | | <#button name="旷课" icon="fa-edit" clickFun="CoursePackageStudent.absence()" space="true"/> |
| | | </div> |
| | | <#table id="managerTable"/> |
| | | </div> |
| | |
| | | <input class="form-control" id="maxSubscribeNumber" name="maxSubscribeNumber" type="number" min="0" placeholder="请输入最多预约人数"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*上课时间:</label> |
| | | <div class="col-sm-4"> |
| | | <input class="form-control" id="classStartTime" name="classStartTime" placeholder="请选择"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label"></label> |
| | | <div class="col-sm-8"> |
| | | <input type="checkbox" name="classWeeks" value="周一"> 周一 |
| | | <input type="checkbox" name="classWeeks" value="周二"> 周二 |
| | | <input type="checkbox" name="classWeeks" value="周三"> 周三 |
| | |
| | | <input type="checkbox" name="classWeeks" value="周五"> 周五 |
| | | <input type="checkbox" name="classWeeks" value="周六"> 周六 |
| | | <input type="checkbox" name="classWeeks" value="周日"> 周日 |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label"></label> |
| | | |
| | | <div class="form-group" style="display: flex; align-items: center;" id = "dayTime" > |
| | | <div style="display:flex"> |
| | | <input class="form-control" id="classStartTime" name="classStartTime" placeholder="请选择" style="width: 200px;"> |
| | | |
| | | |
| | | <i class="fa fa-plus-circle" style="font-size: 24px; margin-left: 10px;" onclick="addTime()"></i> |
| | | </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="codeTime" name="codeTime" type="number" min="0" placeholder="请输入每节课扣除课时数"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | |
| | | <span class="classNumber_span"><input class="classNumber" type="number" min="0" placeholder="请输入" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> </span> |
| | | <span class="cash_span"></span> |
| | | <span class="paiCoin_span"></span> |
| | | <#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()"></i> |
| | | <input type="text" id = "counpons1" class="counpons" > |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <input type="text" id = "counpons">--> |
| | | </div> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | |
| | | 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-plus-circle" style="font-size: 24px; margin-left: 10px;" onclick="addTime()"></i>\n' + |
| | | ' </div>' |
| | | $('#dayTime').append(htmlStr); |
| | | console.log("========="+i) |
| | | laydate.render({ |
| | | elem: '#classStartTime'+i, |
| | | type: 'time', |
| | | range: true |
| | | }); |
| | | } |
| | | </script> |
| | | @} |
| | |
| | | @} |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*扣除课时数:</label> |
| | | <div class="col-sm-4"> |
| | | <input class="form-control" id="codeTime" name="codeTime" value="${item.codeTime}" type="number" min="0" placeholder="请输入每节课扣除课时数"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*课包封面:</label> |
| | | <div class="col-sm-4"> |
| | |
| | | 玩湃币支付:<input class="paiCoin" type="number" value="${coursePackagePaymentConfig.playPaiCoin}" 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> |
| | | <input type="text" id="counpons1" value="${couponIds}" class="counpons"> |
| | | <#button btnCss="info" name="优惠卷" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.openDia1(1)"/> |
| | | <i class="fa fa-plus-circle" style="font-size:24px" onclick="addPrice()"></i> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <script src="${ctxPath}/modular/system/coursePackage/coursePackage_info.js"></script> |
| | | <script type="text/javascript"> |
| | | |
| | | console.log("============>"+`${couponIds}`) |
| | | laydate.render({ |
| | | elem: '#classStartTime' |
| | | ,type: 'time' |
| | |
| | | <#button name="上课记录" icon="fa-plus" clickFun="RegistrationRecord.classRecord()"/> |
| | | <#button name="退课" icon="fa-edit" clickFun="RegistrationRecord.dropClass()" space="true"/> |
| | | <#button name="补课" icon="fa-refresh" clickFun="RegistrationRecord.makeUpMissedLessons()" space="true"/> |
| | | <#button name="更换假期班" icon="fa-refresh" clickFun="RegistrationRecord.holiClass()" space="true"/> |
| | | <#button name="换课" icon="fa-refresh" clickFun="RegistrationRecord.transClass()" space="true"/> |
| | | |
| | | </div> |
| | | <#table id="managerTable"/> |
| | | </div> |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-6 b-r"> |
| | | <#input id="id" name="主键" underline="true"/> |
| | | <#input id="name" name="优惠券名称" underline="true"/> |
| | | <#input id="type" name="优惠券类型(1=满减券,2=代金券,3=体验券)" underline="true"/> |
| | | <#input id="content" name="优惠券规则JSON |
| | | 格式: |
| | | { |
| | | "conditionalAmount": 5, |
| | | "deductionAmount": 6.8, |
| | | "experienceName": "" |
| | | }" underline="true"/> |
| | | <#input id="illustrate" name="优惠券说明" underline="true"/> |
| | | <#input id="distributionMethod" name="发放方式(1=积分购买,2=注册赠送,3=自动发券)" underline="true"/> |
| | | <#input id="redemptionMethod" name="兑换方式(1=积分,2=积分+现金)" underline="true"/> |
| | | <#input id="cash" name="所需现金" underline="true"/> |
| | | <#input id="integral" name="所属积分" underline="true"/> |
| | | <#input id="userPopulation" name="用户人群(1=全部用户,2=年度会员,3=已有学员用户)" underline="true"/> |
| | | <#input id="quantityIssued" name="发放数量" underline="true"/> |
| | | <#input id="pickUpQuantity" name="限领数量" underline="true"/> |
| | | <#input id="startTime" name="开始时间"/> |
| | | </div> |
| | | |
| | | <div class="col-sm-6"> |
| | | <#input id="endTime" name="结束时间" underline="true"/> |
| | | <#input id="useScope" name="使用范围(1=全国,2=指定城市,3=指定门店)" underline="true"/> |
| | | <#input id="auditStatus" name="审核状态(1=待审核,2=已通过,3=已拒绝)" underline="true"/> |
| | | <#input id="auditUserId" name="审核人id" underline="true"/> |
| | | <#input id="auditRemark" name="审核备注" underline="true"/> |
| | | <#input id="status" name="状态(1=未开始,2=已开始,3=已结束,4=已取消)" underline="true"/> |
| | | <#input id="state" name="状态(1=正常,2=冻结,3=删除)" underline="true"/> |
| | | <#input id="insertTime" name="添加时间" underline="true"/> |
| | | <#input id="cover" name="封面图" underline="true"/> |
| | | <#input id="productImages" name="图片" underline="true"/> |
| | | <#input id="publisherType" name="发布人类型 1=城市管理者 2=平台管理者3=门店" underline="true"/> |
| | | <#input id="cityManagerId" name="城市管理者id" underline="true"/> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCouponInfoDlg.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCouponInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tCoupon/tCoupon_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-6 b-r"> |
| | | <#input id="id" name="主键" value="${item.id}" underline="true"/> |
| | | <#input id="name" name="优惠券名称" value="${item.name}" underline="true"/> |
| | | <#input id="type" name="优惠券类型(1=满减券,2=代金券,3=体验券)" value="${item.type}" underline="true"/> |
| | | <#input id="content" name="优惠券规则JSON |
| | | 格式: |
| | | { |
| | | "conditionalAmount": 5, |
| | | "deductionAmount": 6.8, |
| | | "experienceName": "" |
| | | }" value="${item.content}" underline="true"/> |
| | | <#input id="illustrate" name="优惠券说明" value="${item.illustrate}" underline="true"/> |
| | | <#input id="distributionMethod" name="发放方式(1=积分购买,2=注册赠送,3=自动发券)" value="${item.distributionMethod}" underline="true"/> |
| | | <#input id="redemptionMethod" name="兑换方式(1=积分,2=积分+现金)" value="${item.redemptionMethod}" underline="true"/> |
| | | <#input id="cash" name="所需现金" value="${item.cash}" underline="true"/> |
| | | <#input id="integral" name="所属积分" value="${item.integral}" underline="true"/> |
| | | <#input id="userPopulation" name="用户人群(1=全部用户,2=年度会员,3=已有学员用户)" value="${item.userPopulation}" underline="true"/> |
| | | <#input id="quantityIssued" name="发放数量" value="${item.quantityIssued}" underline="true"/> |
| | | <#input id="pickUpQuantity" name="限领数量" value="${item.pickUpQuantity}" underline="true"/> |
| | | <#input id="startTime" name="开始时间" value="${item.startTime}" /> |
| | | </div> |
| | | |
| | | <div class="col-sm-6"> |
| | | <#input id="endTime" name="结束时间" value="${item.endTime}" underline="true"/> |
| | | <#input id="useScope" name="使用范围(1=全国,2=指定城市,3=指定门店)" value="${item.useScope}" underline="true"/> |
| | | <#input id="auditStatus" name="审核状态(1=待审核,2=已通过,3=已拒绝)" value="${item.auditStatus}" underline="true"/> |
| | | <#input id="auditUserId" name="审核人id" value="${item.auditUserId}" underline="true"/> |
| | | <#input id="auditRemark" name="审核备注" value="${item.auditRemark}" underline="true"/> |
| | | <#input id="status" name="状态(1=未开始,2=已开始,3=已结束,4=已取消)" value="${item.status}" underline="true"/> |
| | | <#input id="state" name="状态(1=正常,2=冻结,3=删除)" value="${item.state}" underline="true"/> |
| | | <#input id="insertTime" name="添加时间" value="${item.insertTime}" underline="true"/> |
| | | <#input id="cover" name="封面图" value="${item.cover}" underline="true"/> |
| | | <#input id="productImages" name="图片" value="${item.productImages}" underline="true"/> |
| | | <#input id="publisherType" name="发布人类型 1=城市管理者 2=平台管理者3=门店" value="${item.publisherType}" underline="true"/> |
| | | <#input id="cityManagerId" name="城市管理者id" value="${item.cityManagerId}" /> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCouponInfoDlg.editSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCouponInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tCoupon/tCoupon_info.js"></script> |
| | | @} |
| | |
| | | <div class="col-sm-9"> |
| | | <select class="form-control" id="account" name="account" onchange="TCarInfoDlg.oneChange1(this)"> |
| | | <option value="">选择运营商</option> |
| | | @for(i in yysList){ |
| | | <option value="${i.id}">${i.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" id="provinceCode"> |
| | | <label class="col-sm-3 control-label">所在省:</label> |
| | | <div class="col-sm-9"> |
| | | <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)"> |
| | | <option value="">选择省</option> |
| | | @for(obj in list){ |
| | | <option value="${obj.code}">${obj.name}</option> |
| | | @} |
| | | <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange2(this)"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="form-group" style="margin-left:-410px"> |
| | | <label class="col-sm-3 control-label">内容设置:</label> |
| | | <#button name="添加" icon="fa-plus" clickFun="TCompetition.openAdd()"/> |
| | | <#button name="添加" icon="fa-plus" clickFun="TCompetition.openAdd(1)"/> |
| | | </div> |
| | | <#table id="TCompetitionOtherTable"/> |
| | | |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal" id="carInfoForm"> |
| | | <input id="id" value="${item.id}" hidden> |
| | | <input id="name1" value="${item.name}" hidden> |
| | | |
| | | |
| | | <#avatar id="url" name="图片(推荐像素宽度316px)" avatarImg="${item.url}"/> |
| | | |
| | | <div class="input-group" style="margin-left: 342px;"> |
| | | <div class="input-group-btn"> |
| | | <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button"> |
| | | 跳转模块 |
| | | </button> |
| | | </div> |
| | | <select class="form-control" id="name" style="width: 400px;" onclick="updateType(this)"> |
| | | <option value="不跳转">不跳转</option> |
| | | <option value="加入玩湃">加入玩湃</option> |
| | | <option value="开始课程">开始课程</option> |
| | | <option value="使用福利">使用福利</option> |
| | | <option value="探索玩湃">探索玩湃</option> |
| | | </select> |
| | | </div> |
| | | |
| | | <div class="input-group" style="margin-left: 342px;" id="t1" hidden > |
| | | <div class="input-group-btn"> |
| | | <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button"> |
| | | 跳转页面 |
| | | </button> |
| | | </div> |
| | | <select class="form-control" id="page" style="width: 400px;" onchange="updateOne(this)"> |
| | | @for(obj in list){ |
| | | <option value="${obj.id}" ${obj.id == item.pageId ? 'selected=selected' : ''}>${obj.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | |
| | | <div class="input-group" style="margin-left: 342px;" id="t2" > |
| | | <div class="input-group-btn"> |
| | | <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button"> |
| | | 跳转类型 |
| | | </button> |
| | | </div> |
| | | <select class="form-control" id="type" style="width: 400px;" > |
| | | @for(obj in list1){ |
| | | <option value="${obj.id}" ${obj.id == item.typeId ? 'selected=selected' : ''}>${obj.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | |
| | | <div class="form-group" id="t3" > |
| | | <label class="col-sm-3 control-label">跳转ID:</label> |
| | | <div class="col-sm-9"> |
| | | <input class="form-control" id="turnId" name="turnId" type="text" style="width: 400px;" value="${item.turnId}"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group" id="t4" > |
| | | <label class="col-sm-3 control-label">排序:</label> |
| | | <div class="col-sm-9"> |
| | | <input class="form-control" id="sort" name="sort" type="text" style="width: 400px;" value="${item.sort}"> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10 col-sm-offset-5"> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCompetition.close()"/> |
| | | <#button btnCss="info" name="确认" id="ensure" icon="fa-check" clickFun="TCompetition.addSubmit3()"/> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/modular/system/tShop/tShopOtherTwo.js"></script> |
| | | <script> |
| | | laydate.render({ |
| | | elem: '#time', |
| | | range:true |
| | | }); |
| | | |
| | | function updateType(e) { |
| | | let name = $("#name").val() |
| | | console.log(name |
| | | ) |
| | | if(name =='不跳转'){ |
| | | $("#t1").hide() |
| | | $("#t2").hide() |
| | | $("#t3").hide() |
| | | }else { |
| | | $("#t1").show() |
| | | $("#t2").show() |
| | | $("#t3").show() |
| | | |
| | | var oneId=$(e).val(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/typeChange", function(data){ |
| | | if(data!=null){ |
| | | var content; |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.id+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#page").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("name",oneId); |
| | | ajax.start(); |
| | | } |
| | | } |
| | | |
| | | |
| | | function updateOne(e) { |
| | | var oneId=$(e).val(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/typeChangeOne", function(data){ |
| | | if(data!=null){ |
| | | var content1; |
| | | $.each(data, function(k,v) { |
| | | content1 += "<option value='"+v.id+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#type").empty().append(content1); |
| | | } |
| | | }); |
| | | ajax.set("id",oneId); |
| | | ajax.start(); |
| | | } |
| | | |
| | | window.onload = function() { |
| | | $("#name").val($("#name1").val()); |
| | | } |
| | | </script> |
| | | @} |
| | |
| | | <label class="col-sm-3 control-label">所属运营商:</label> |
| | | <div class="col-sm-9"> |
| | | <select class="form-control" id="account" name="account" onchange="TCarInfoDlg.oneChange1(this)"> |
| | | <option value="">选择运营商</option> |
| | | @for(obj in yysList){ |
| | | <option value="${obj.id}" ${obj.id == item.operatorId ? 'selected=selected' : ''}>${obj.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" id="provinceCode"> |
| | | <label class="col-sm-3 control-label">所在省:</label> |
| | | <div class="col-sm-9"> |
| | | <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)"> |
| | | <option value="">选择省</option> |
| | | <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange2(this)"> |
| | | @for(obj in list){ |
| | | <option value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option> |
| | | <option value="${obj.id}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | |
| | | <div class="form-group" id="cityCode"> |
| | | <label class="col-sm-3 control-label">所在市:</label> |
| | | <div class="col-sm-9"> |
| | | <select class="form-control" id="cCode" name="cCode" onchange="TCarInfoDlg.oneChangeNext(this)"> |
| | | <select class="form-control" id="cCode" name="cCode" > |
| | | <option value="">选择市</option> |
| | | @for(obj in list1){ |
| | | <option value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option> |
| | | <option value="${obj.id}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | |
| | | @} |
| | | <#input id="name" name="门店名称" type="text" value="${item.name}"/> |
| | | <#input id="phone" name="联系电话" type="text" value="${item.phone}"/> |
| | | <div hidden id="longitude" value="${item.lon}"></div> |
| | | <div hidden id="latitude" value="${item.lat}"></div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">门店地址:</label> |
| | | <div class="col-sm-9"> |
| | |
| | | range:true |
| | | }); |
| | | |
| | | window.onload = function(){ |
| | | var OBJradio=document.getElementsByName("type") |
| | | for(i=0;i<OBJradio.length;i++){//循环查找这个radio |
| | | if($("#type").val()==OBJradio[i].value){//判断是否与radio的值相同 |
| | | OBJradio[i].checked=true//修改选中状态 |
| | | } |
| | | } |
| | | } |
| | | let id = "https://evmoto.obs.ap-southeast-4.myhuaweicloud.com:443/b1d6f9e362414d1b895d916657776573.png,https://evmoto.obs.ap-southeast-4.myhuaweicloud.com:443/b1d6f9e362414d1b895d916657776573.png" |
| | | let id = "${item.realPicture}" |
| | | let obj = [] |
| | | |
| | | |
| | |
| | | }, |
| | | methods: { |
| | | handleAvatarSuccess(res, file) { |
| | | file.url =file.response |
| | | TCarInfoDlg.goodsPicArray.push(file); |
| | | console.log(TCarInfoDlg.goodsPicArray) |
| | | }, |
| | | changeImg(){ |
| | | var i = id.split(",") |
| | |
| | | let obj={ |
| | | fileName:i[j], |
| | | uuid:i[j], |
| | | url:i[j] |
| | | url:i[j], |
| | | response:i[j], |
| | | } |
| | | this.imageUrl2.push(obj) |
| | | |
| | |
| | | TCarInfoDlg.goodsPicArray = TCarInfoDlg.goodsPicArray.filter(item => { |
| | | return item.uid != file.uid; |
| | | }); |
| | | |
| | | }, |
| | | }, |
| | | created() { |
| | | this.changeImg() |
| | | TCarInfoDlg.goodsPicArray = this.imageUrl2 |
| | | }, |
| | | }); |
| | | |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | window.onload = function(){ |
| | | console.log("${item.operatorId}") |
| | | var OBJradio=document.getElementsByName("type") |
| | | if("${item.operatorId}"==0){ |
| | | OBJradio[0].checked=true |
| | | }else { |
| | | OBJradio[1].checked=true |
| | | $("#yys").show() |
| | | } |
| | | |
| | | |
| | | var OBJradio=document.getElementsByName("ishalf") |
| | | if($("#type_").val()==1){ |
| | | $("#halfCode").show() |
| | | } |
| | | for(i=0;i<OBJradio.length;i++){//循环查找这个radio |
| | | if($("#type_").val()==OBJradio[i].value){//判断是否与radio的值相同 |
| | | OBJradio[i].checked=true//修改选中状态 |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | </script> |
| | | <script type="application/javascript"> |
| | | |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal" id="carInfoForm"> |
| | | <input id="id" value="${id}" hidden> |
| | | <div class="form-group" style="margin-left:-410px"> |
| | | <label class="col-sm-3 control-label">板块名称:</label> |
| | | <div class="col-sm-9"> |
| | | <input class="form-control" id="name" name="name" type="text" style="width: 400px;" value="${item.name}"> |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="form-group" style="margin-left:-410px"> |
| | | <label class="col-sm-3 control-label">内容设置:</label> |
| | | <#button name="添加" icon="fa-plus" clickFun="TCompetition.openAdd(2)"/> |
| | | </div> |
| | | <#table id="TCompetitionOtherTable"/> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10 col-sm-offset-5"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCompetition.addSubmit4()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCompetition.close()"/> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/modular/system/tShop/tShopOtherTwo.js"></script> |
| | | <script> |
| | | laydate.render({ |
| | | elem: '#time', |
| | | range:true |
| | | }); |
| | | |
| | | |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal" id="carInfoForm"> |
| | | |
| | | <input id="id" value="${id}" hidden> |
| | | <#avatar id="url" name="图片(推荐像素宽度316px)"/> |
| | | |
| | | <div class="input-group" style="margin-left: 342px;"> |
| | | <div class="input-group-btn"> |
| | | <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button"> |
| | | 跳转模块 |
| | | </button> |
| | | </div> |
| | | <select class="form-control" id="name" style="width: 400px;" onclick="updateType(this)"> |
| | | <option value="" selected disabled>选择跳转模块</option> |
| | | <option value="不跳转">不跳转</option> |
| | | <option value="加入玩湃">加入玩湃</option> |
| | | <option value="开始课程">开始课程</option> |
| | | <option value="使用福利">使用福利</option> |
| | | <option value="探索玩湃">探索玩湃</option> |
| | | </select> |
| | | </div> |
| | | |
| | | <div class="input-group" style="margin-left: 342px;" id="t1" hidden > |
| | | <div class="input-group-btn"> |
| | | <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button"> |
| | | 跳转页面 |
| | | </button> |
| | | </div> |
| | | <select class="form-control" id="page" style="width: 400px;" onchange="updateOne(this)"> |
| | | |
| | | </select> |
| | | </div> |
| | | |
| | | <div class="input-group" style="margin-left: 342px;" id="t2" > |
| | | <div class="input-group-btn"> |
| | | <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button"> |
| | | 跳转类型 |
| | | </button> |
| | | </div> |
| | | <select class="form-control" id="type" style="width: 400px;" > |
| | | |
| | | </select> |
| | | </div> |
| | | |
| | | <div class="form-group" id="t3" > |
| | | <label class="col-sm-3 control-label">跳转ID:</label> |
| | | <div class="col-sm-9"> |
| | | <input class="form-control" id="turnId" name="turnId" type="text" style="width: 400px;"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group" id="t4" > |
| | | <label class="col-sm-3 control-label">排序:</label> |
| | | <div class="col-sm-9"> |
| | | <input class="form-control" id="sort" name="sort" type="text" style="width: 400px;"> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10 col-sm-offset-5"> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCompetition.close()"/> |
| | | <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TCompetition.addSubmit3()"/> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | </div> |
| | | <script src="${ctxPath}/modular/system/tShop/tShopOtherTwo.js"></script> |
| | | <script> |
| | | laydate.render({ |
| | | elem: '#time', |
| | | range:true |
| | | }); |
| | | |
| | | function updateType(e) { |
| | | let name = $("#name").val() |
| | | console.log(name |
| | | ) |
| | | if(name =='不跳转'){ |
| | | $("#t1").hide() |
| | | $("#t2").hide() |
| | | $("#t3").hide() |
| | | }else { |
| | | $("#t1").show() |
| | | $("#t2").show() |
| | | $("#t3").show() |
| | | |
| | | var oneId=$(e).val(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/typeChange", function(data){ |
| | | if(data!=null){ |
| | | var content; |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.id+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#page").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("name",oneId); |
| | | ajax.start(); |
| | | } |
| | | } |
| | | |
| | | |
| | | function updateOne(e) { |
| | | var oneId=$(e).val(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/typeChangeOne", function(data){ |
| | | if(data!=null){ |
| | | var content1; |
| | | $.each(data, function(k,v) { |
| | | content1 += "<option value='"+v.id+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#type").empty().append(content1); |
| | | } |
| | | }); |
| | | ajax.set("id",oneId); |
| | | ajax.start(); |
| | | } |
| | | </script> |
| | | @} |
| | |
| | | </div> |
| | | |
| | | |
| | | <div>首页其他板块设置</div> |
| | | <div style="font-size: x-large;">首页其他板块设置</div> |
| | | <#button name="添加" icon="fa-plus" clickFun="TCompetition.openAddTCompetition(id)"/> |
| | | <#button name="编辑" icon="fa-edit" clickFun="TCompetition.openTCompetitionDetail()" space="true"/> |
| | | <#button name="删除" icon="fa-remove" clickFun="TCompetition.freeze()" space="true"/> |
| | | <#button name="开启" icon="fa-remove" clickFun="TCompetition.unfreeze()" space="true"/> |
| | | <#button name="关闭" icon="fa-remove" clickFun="TCompetition.info()" space="true"/> |
| | | <#button name="编辑" icon="fa-edit" clickFun="TCompetition.openTCompetitionDetail1()" space="true"/> |
| | | <#button name="删除" icon="fa-remove" clickFun="TCompetition.del()" space="true"/> |
| | | <#button name="开启" icon="fa-remove" clickFun="TCompetition.unfreeze1(1)" space="true"/> |
| | | <#button name="关闭" icon="fa-remove" clickFun="TCompetition.unfreeze1(2)" space="true"/> |
| | | <#table id="TCompetitionOtherTable"/> |
| | | |
| | | |
| | |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*所属运营商:</label> |
| | | <div class="col-sm-8"> |
| | | <select style="width: 300px" class="form-control" id="yys" name="yys" onchange="TSite.oneChangeYys(2)"> |
| | | <select style="width: 300px" class="form-control" id="yys" name="yys" onchange="TSite.oneChangeYys(this)"> |
| | | <option style="width: 300px" value="">选择运营商</option> |
| | | @for(obj in yysList){ |
| | | <option style="width: 300px" value="${obj.id}">${obj.name}</option> |
| | | @} |
| | | </select> |
| | | <input type="checkbox" value="0" name="pt">平台</input> |
| | | <input type="checkbox" value="0" name="pt" onchange="TSite.oneChangeYys(this)">平台</input> |
| | | </div> |
| | | </div> |
| | | @} |
| | |
| | | <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="siteTypeOne" name = "typeId"> |
| | | <select style="width: 300px" class="form-control" id="siteTypeOne" name = "typeId" onchange="updateTime1()"> |
| | | <option value="普通场地">普通场地</option> |
| | | <option value="智慧场地">智慧场地</option> |
| | | </select> |
| | |
| | | <label class="col-sm-3 control-label">*可预约时间段:</label> |
| | | <!-- <input style="width: 300px" class="form-control" type="time">--> |
| | | <div class="col-sm-9" style="display: flex"> |
| | | <input style="width: 136px;" value="开始时间" id="start-time" class="form-control" type="time"> |
| | | <input style="width: 136px;" value="开始时间" id="start-time" class="form-control" type="time" onchange="updateTime(1)"> |
| | | <span style="margin-top: 7px"> 至 </span> |
| | | <input style="width: 136px;" value="结束时间" id="end-time" class="form-control" type="time"> |
| | | <input style="width: 136px;" value="结束时间" id="end-time" class="form-control" type="time" onchange="updateTime(2)"> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | </div> |
| | | @} |
| | | @if(objectType==1){ |
| | | <#input style="width: 300px" id="name" name="*添加闸机:" placeholder="请输入闸机ID" type="text"/> |
| | | <#input style="width: 300px" id="ids" name="*添加闸机:" placeholder="请输入闸机ID" type="text"/> |
| | | @} |
| | | <div class="form-group" style=" margin-left: 17%;" > |
| | | <label class="col-sm-1 control-label">场地说明:</label> |
| | |
| | | <script src="${ctxPath}/js/elementui/index.js"></script> |
| | | <link rel="stylesheet" href="${ctxPath}/js/elementui/index.css"> |
| | | <script> |
| | | var vue2 = new Vue({ |
| | | el: '#app1', |
| | | props: { |
| | | // 数量限制 |
| | | limit: { |
| | | type: Number, |
| | | default: 2 |
| | | }, |
| | | }, |
| | | data: { |
| | | autoUpload: true,//自动上传 |
| | | imageUrl1: '',//模型数据,用于上传图片完成后图片预览 |
| | | dialogVisible: false |
| | | }, |
| | | methods: { |
| | | handleAvatarSuccess(res, file) { |
| | | TSite.goodsPicArray.push(file); |
| | | }, |
| | | beforeAvatarUpload(file) { |
| | | const isLt2M = file.size / 1024 / 1024 < 10; |
| | | if (!isLt2M) { |
| | | this.$message.error('上传图片大小不能超过 10MB!'); |
| | | } |
| | | return isLt2M; |
| | | }, |
| | | handleRemove(file, fileList) { |
| | | TSite.goodsPicArray = TSite.goodsPicArray.filter(item => { |
| | | return item.uid != file.uid; |
| | | }); |
| | | }, |
| | | }, |
| | | created() { |
| | | }, |
| | | }); |
| | | laydate.render({ |
| | | elem: '#start-time', type: "time", format: "HH:mm", ready: formatminutes |
| | | }); |
| | | laydate.render({ |
| | | elem: '#end-time' |
| | | , type: "time", format: "HH:mm", ready: formatminutes |
| | | }); |
| | | |
| | | function addBox() { |
| | | var a=" <div class=\"col-sm-8 control-label\" id=\"far\">\n" + |
| | |
| | | endTime.disabled = true; |
| | | } |
| | | }); |
| | | function updateTime1() { |
| | | $("#end-time").val(''); |
| | | $("#start-time").val(''); |
| | | } |
| | | |
| | | function updateTime(e) { |
| | | let one = $("#siteTypeOne").val() |
| | | var timeInputs = document.querySelectorAll('input[type="time"]'); |
| | | console.log(timeInputs) |
| | | var selectedTime=''; |
| | | if(e==1){ |
| | | var selectedTime = $("#start-time").val(); |
| | | }else { |
| | | var selectedTime = $("#end-time").val(); |
| | | } |
| | | |
| | | |
| | | var hour = selectedTime.split(':')[0]; |
| | | var minute = selectedTime.split(':')[1]; |
| | | if(one=="普通场地"){ |
| | | console.log( |
| | | one |
| | | ) |
| | | if (minute < 30 &&minute>0) { |
| | | minute = '30'; |
| | | } else if (minute >30) { |
| | | hour++; |
| | | minute = '00'; |
| | | if (hour<10){ |
| | | hour = '0'+hour; |
| | | } |
| | | } |
| | | }else { |
| | | console.log( |
| | | one,minute |
| | | ) |
| | | if (minute <= 15 && minute>0) { |
| | | console.log(1) |
| | | minute = '15'; |
| | | }else if(minute<=30){ |
| | | console.log(2) |
| | | minute = '30'; |
| | | }else if(minute<=45){ |
| | | console.log(3) |
| | | minute = '45'; |
| | | }else if (minute >45) { |
| | | console.log(4) |
| | | hour++; |
| | | minute = '00'; |
| | | if (hour<10){ |
| | | hour = '0'+hour; |
| | | } |
| | | } |
| | | } |
| | | if(e==1){ |
| | | $("#start-time").val(hour + ':' + minute) |
| | | }else { |
| | | $("#end-time").val(hour + ':' + minute) |
| | | } |
| | | } |
| | | </script> |
| | | @} |
| | |
| | | @layout("/common/_container.html"){ |
| | | <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script> |
| | | <style> |
| | | .avatar-uploader .el-upload { |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 6px; |
| | | cursor: pointer; |
| | | position: relative; |
| | | height: 100px; |
| | | width: 100px; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .avatar-uploader .el-upload:hover { |
| | | border-color: #409EFF; |
| | | } |
| | | .avatar-uploader-icon { |
| | | font-size: 28px; |
| | | color: #8c939d; |
| | | width: 100px; |
| | | height: 100px; |
| | | line-height: 100px; |
| | | margin-top: 32px; |
| | | text-align: center; |
| | | } |
| | | .avatar { |
| | | width: 100px; |
| | | height: 100px; |
| | | display: block; |
| | | } |
| | | |
| | | .col-sm-12 { |
| | | margin-top: 20px; |
| | | } |
| | | |
| | | .col-sm-12 select { |
| | | height: 33px; |
| | | } |
| | | #app1{ |
| | | margin-left: 255px; |
| | | } |
| | | |
| | | |
| | | </style> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal" id="carInfoForm"> |
| | | |
| | | <input id="type_" value="${list.ishalf}" hidden> |
| | | |
| | | @if(objectType == 1){ |
| | | <div class="form-group" id="provinceCode"> |
| | | <label class="col-sm-3 control-label">*所在省:</label> |
| | | <div class="col-sm-9"> |
| | | <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TSiteInfo.oneChange(this)"> |
| | | <!-- <option style="width: 300px" value="${list.province}">${list.province}</option>--> |
| | | @for(obj in province){ |
| | | <option value="${obj}" ${obj == list.province ? 'selected=selected' : ''}>${obj}</option> |
| | | <!-- <option style="width: 300px" value="${obj}">${obj}</option>--> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" id="cityCode"> |
| | | <label class="col-sm-3 control-label">*所在市:</label> |
| | | <div class="col-sm-9"> |
| | | <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TSiteInfo.oneChangeNext(this)"> |
| | | @for(obj in city1){ |
| | | <option value="${obj.city}" ${obj.city == list.city ? 'selected=selected' : ''}>${obj.city}</option> |
| | | <!-- <option style="width: 300px" value="${obj.city}">${obj.city}</option>--> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <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="account" name="account"> |
| | | @for(obj in accounts){ |
| | | <option style="width: 300px" value="${obj.id}">${obj.name}</option> |
| | | <label class="col-sm-3 control-label">*所属运营商:</label> |
| | | <div class="col-sm-8"> |
| | | <select style="width: 300px" class="form-control" id="yys" name="yys" onchange="TSiteInfo.oneChangeYys(this)"> |
| | | <option style="width: 300px" value="">选择运营商</option> |
| | | @for(obj in yysList){ |
| | | <option value="${obj.id}" ${obj.id == list.operatorId ? 'selected=selected' : ''}>${obj.name}</option> |
| | | @} |
| | | </select> |
| | | <input type="checkbox" value="0" name="pt" id="pt" onchange="TSiteInfo.oneChangeYys(this)">平台</input> |
| | | </div> |
| | | </div> |
| | | @} |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group" id="siteMore" style=" margin-left: 255px;"> |
| | | <div class="form-group">多场地配置:<i class="fa fa-plus" onclick="addBox()"></i></div> |
| | | @for(n in nextNames){ |
| | | <div class="col-sm-8 control-label" id="far"> |
| | | <label class="col-sm-2 control-label">*单个场地名</label> |
| | | <div class="col-sm-3"> |
| | | <input type="text" name="name1" class="form-control newWidth" value="${n}"/> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <i class="col-sm-1 fa fa-remove" onclick="delBox(this)" style="margin-top:10px"></i> |
| | | </div> |
| | | </div> |
| | | @} |
| | | </div> |
| | | |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">是否可预定半场:</label> |
| | | <div class="col-sm-9"> |
| | | <input type="radio" name="ishalf" value="2" checked onclick="updateHalf(1)"> 否 |
| | | <input type="radio" name="ishalf" value="1" onclick="updateHalf(2)"> 是 |
| | | </div> |
| | | </div> |
| | | <div id="halfCode" hidden> |
| | | <div class="form-group" style="margin-left: 100px;" > |
| | | <label class="col-sm-3 control-label">*现金价格:</label> |
| | | <div class="col-sm-9" style="display: flex;"> |
| | | <input style="width: 300px" class="form-control" id="cashPriceOne" name="playPaiCoin" placeholder="请输入价格" type="text" value="${list.cashPriceOne}"> |
| | | <span style="margin-left: 5px;margin-top: 5px">元/半小时</span> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group" style="margin-left: 100px;"> |
| | | <label class="col-sm-3 control-label">*玩湃币价格:</label> |
| | | <div class="col-sm-9" style="display: flex;"> |
| | | <input style="width: 300px" class="form-control" id="playPaiCoinOne" name="playPaiCoin" placeholder="请输入价格" type="text" value="${list.playPaiCoinOne}"> |
| | | <span style="margin-left: 5px;margin-top: 5px">币/半小时</span> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div class="form-group" id="halfName" > |
| | | <label class="col-sm-3 control-label">*半场名称:</label> |
| | | <div class="col-sm-8" style="display: flex;"> |
| | | <input style="width: 240px" class="form-control" name="name2" type="text" value="${halfName}"><i class="fa fa-plus" onclick="addBox1()" style="margin-left: 32px;margin-top: 10px;"></i> |
| | | </div> |
| | | </div> |
| | | @for(h in halfNames){ |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*半场名称:</label> |
| | | <div class="col-sm-8" style="display: flex;"> |
| | | <input style="width: 240px" class="form-control" name="name2" type="text" value="${h}"> <i class="col-sm-1 fa fa-remove" onclick="delBox(this)" style="margin-top:10px"></i> |
| | | </div> |
| | | </div> |
| | | @} |
| | | </div> |
| | | |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*场地责任险有效期:</label> |
| | | <div class="col-sm-9"> |
| | |
| | | action="/tCouponManage/uploadPic" |
| | | list-type="picture-card" |
| | | accept="." |
| | | :file-list="imageUrl2" |
| | | :on-success="handleAvatarSuccess" |
| | | :on-remove="handleRemove"> |
| | | <i class="el-icon-plus"></i> |
| | | </el-upload> |
| | | <el-dialog :visible.sync="dialogVisible"> |
| | | <img width="100%" :src="imageUrl1" alt=""> |
| | | <img width="100%" :src="imageUrl2" alt=""> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | |
| | | @} |
| | | </div> |
| | | @if(objectType==1){ |
| | | <#input style="width: 300px" id="name" name="*添加闸机:" placeholder="请输入闸机ID" type="text"/> |
| | | <div class="form-group" style="margin-left: 205px;"> |
| | | <label class="col-sm-1 control-label">*添加闸机:</label> |
| | | <div class="col-sm-9"> |
| | | <input class="form-control" id="ids" name="ids" value="${list.ids}" type="text" style="width: 300px" placeholder="请输入闸机ID"> |
| | | </div> |
| | | </div> |
| | | @} |
| | | <div class="form-group" style="margin-left: 13%;display: inline-flex;margin-top: 16px;" > |
| | | <label class="col-sm-2 control-label">场地说明:</label> |
| | | <div class="col-sm-5" style="margin-left: -35px;"> |
| | | <textarea type="text/plain" id="editor" style="height: 300px;width: 800px;">${list.introduce}</textarea> |
| | | </div> |
| | | </div> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10 col-sm-offset-5" > |
| | | @if(type==1){ |
| | |
| | | <script src="${ctxPath}/js/elementui/index.js"></script> |
| | | <link rel="stylesheet" href="${ctxPath}/js/elementui/index.css"> |
| | | <script> |
| | | let id = "${list.imgs}" |
| | | let obj = [] |
| | | |
| | | var vue2 = new Vue({ |
| | | el: '#app1', |
| | | props: { |
| | |
| | | data: { |
| | | autoUpload: true,//自动上传 |
| | | imageUrl1: '',//模型数据,用于上传图片完成后图片预览 |
| | | imageUrl2: [], |
| | | dialogVisible: false |
| | | }, |
| | | methods: { |
| | | handleAvatarSuccess(res, file) { |
| | | TCarInfoDlg.goodsPicArray.push(file); |
| | | file.url =file.response |
| | | TSiteInfo.goodsPicArray.push(file); |
| | | }, |
| | | changeImg(){ |
| | | var i = id.split(",") |
| | | for (let j = 0; j <i.length; j++) { |
| | | let obj={ |
| | | fileName:i[j], |
| | | uuid:i[j], |
| | | url:i[j], |
| | | response:i[j], |
| | | } |
| | | this.imageUrl2.push(obj) |
| | | |
| | | } |
| | | }, |
| | | beforeAvatarUpload(file) { |
| | | const isLt2M = file.size / 1024 / 1024 < 10; |
| | |
| | | return isLt2M; |
| | | }, |
| | | handleRemove(file, fileList) { |
| | | TCarInfoDlg.goodsPicArray = TCarInfoDlg.goodsPicArray.filter(item => { |
| | | TSiteInfo.goodsPicArray = TSiteInfo.goodsPicArray.filter(item => { |
| | | return item.uid != file.uid; |
| | | }); |
| | | }, |
| | | }, |
| | | created() { |
| | | this.changeImg() |
| | | TSiteInfo.goodsPicArray = this.imageUrl2 |
| | | }, |
| | | }); |
| | | |
| | | var selectElement = document.getElementById('store'); |
| | | var startTime = document.getElementById('start-time'); |
| | | var endTime = document.getElementById('end-time'); |
| | |
| | | endTime.disabled = true; |
| | | } |
| | | }); |
| | | |
| | | |
| | | window.onload = function(){ |
| | | console.log("${list.operatorId}") |
| | | if("${list.operatorId}"==0){ |
| | | console.log(233232) |
| | | $("#pt").attr('checked', true) |
| | | } |
| | | |
| | | |
| | | var OBJradio=document.getElementsByName("ishalf") |
| | | if($("#type_").val()==1){ |
| | | $("#halfCode").show() |
| | | } |
| | | for(i=0;i<OBJradio.length;i++){//循环查找这个radio |
| | | if($("#type_").val()==OBJradio[i].value){//判断是否与radio的值相同 |
| | | OBJradio[i].checked=true//修改选中状态 |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | function addBox1() { |
| | | var a=" <div class=\"col-sm-8 control-label\" id=\"far\" style=\"margin-left: 210px;\">\n" + |
| | | " <label class=\"col-sm-2 control-label\">*半场名称:</label>\n" + |
| | | " <div class=\"col-sm-3\">\n" + |
| | | " <input type=\"text\" name=\"name2\" class=\"form-control newWidth\" style=\"margin-left: 8px;width: 240px;\"/> \n" + |
| | | " </div> \n" + |
| | | " <div class=\"col-sm-1\">\n" + |
| | | " <i class=\"col-sm-1 fa fa-remove\" onclick=\"delBox(this)\" style=\"margin-top:10px\"></i>\n" + |
| | | " </div> \n" + |
| | | " </div> " |
| | | |
| | | |
| | | $("#halfName").append($(a)) |
| | | } |
| | | function addBox() { |
| | | var a=" <div class=\"col-sm-8 control-label\" id=\"far\">\n" + |
| | | " <label class=\"col-sm-2 control-label\">*单个场地名</label>\n" + |
| | | " <div class=\"col-sm-3\">\n" + |
| | | " <input type=\"text\" name=\"name1\" class=\"form-control newWidth\" /> \n" + |
| | | " </div> \n" + |
| | | " <div class=\"col-sm-1\">\n" + |
| | | " <i class=\"col-sm-1 fa fa-remove\" onclick=\"delBox(this)\" style=\"margin-top:10px\"></i>\n" + |
| | | " </div> \n" + |
| | | " </div> " |
| | | |
| | | |
| | | $("#siteMore").append($(a)) |
| | | } |
| | | |
| | | function delBox(o) { |
| | | $(o).parent("div").parent("div").remove() |
| | | } |
| | | </script> |
| | | @} |
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; |
| | | } |
| | | th { |
| | | background-color: white; |
| | | } |
| | | </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", |
| | | "title": "表单", |
| | | "body": [ |
| | | { |
| | | "label": "文本", |
| | | "type": "input-text", |
| | | "name": "id", |
| | | "id": "u:99d3d8869d55" |
| | | }, |
| | | { |
| | | "label": "文本", |
| | | "type": "input-text", |
| | | "name": "ids", |
| | | "id": "u:5b12dc7c90" |
| | | } |
| | | ], |
| | | "api": { |
| | | "url": "ttt", |
| | | "method": "post", |
| | | "requestAdaptor": "", |
| | | "adaptor": "", |
| | | "messages": {}, |
| | | "dataType": "form" |
| | | }, |
| | | "id": "u:285d560cf7ab" |
| | | }, |
| | | { |
| | | "type": "property", |
| | | "id": "u:844144d9d3d8", |
| | | "title": "学员课包退费申请表", |
| | | "items": [ |
| | | { |
| | | "label": "用户姓名", |
| | | "content": `${userName}`, |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "学员姓名", |
| | | "content": `${tStudentDto.name}`, |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "性别", |
| | | "content": `${tStudentDto.sex == 1 ? '男':'女'}`, |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "申请时间", |
| | | "content": `${reDate}`, |
| | | "span": 3 |
| | | }, |
| | | { |
| | | "label": "联系电话", |
| | | "content": `${tStudentDto.phone}`, |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "收款户名", |
| | | "content": "", |
| | | "span": 2 |
| | | }, |
| | | { |
| | | "label": "收款账号", |
| | | "content": "", |
| | | "span": 3 |
| | | }, |
| | | { |
| | | "label": "银行开户行", |
| | | "content": "", |
| | | "span": 8 |
| | | }, |
| | | { |
| | | "label": "申请推费原因", |
| | | "content": "", |
| | | "span": 8 |
| | | }, |
| | | { |
| | | "label": "课包项目明细", |
| | | "content": "", |
| | | "span": 8 |
| | | } |
| | | @for(pay in coursePackagePayments){ |
| | | , |
| | | { |
| | | "label": "", |
| | | "span": 1, |
| | | "content": '课包明细'+`${index++}` |
| | | }, |
| | | { |
| | | "label": "课包编号", |
| | | "content": `${pay.id}`, |
| | | "span": 2 |
| | | }, |
| | | { |
| | | "label": "课包名称", |
| | | "content": `${pay.name}`, |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "物品赠送", |
| | | "content": "", |
| | | "span": 2 |
| | | }, |
| | | { |
| | | "label": "", |
| | | "content": "", |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "课包总课时", |
| | | "content": `${pay.totalClassHours}`, |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "课包单价", |
| | | "content": `${pay.onePrice}`, |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "课包总金额", |
| | | "content": `${pay.cashPayment}`, |
| | | "span": 3 |
| | | }, |
| | | { |
| | | "label": "", |
| | | "content": "", |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "已学课时", |
| | | "content": `${pay.hasHours}`, |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "剩余课时", |
| | | "content": `${pay.laveClassHours}`, |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "剩余课时金额", |
| | | "content": `${pay.restPrice}`, |
| | | "span": 3 |
| | | }, |
| | | { |
| | | "label": "", |
| | | "content": "", |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "合计", |
| | | "content": `${countAll}`, |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "大写", |
| | | "content": `${allprice}`, |
| | | "span": 4 |
| | | } |
| | | |
| | | @} |
| | | , |
| | | { |
| | | "label": "", |
| | | "content": "申请退费", |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "申请退费金额", |
| | | "content": "${countAll}", |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "物品赠送", |
| | | "content": "", |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "手续费", |
| | | "content": "", |
| | | "span": 3 |
| | | }, |
| | | { |
| | | "label": "", |
| | | "content": "", |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "实际退费", |
| | | "content": "", |
| | | "span": 1 |
| | | }, |
| | | { |
| | | "label": "大写", |
| | | "content": "", |
| | | "span": 4 |
| | | }, |
| | | { |
| | | "label": "申请人签字", |
| | | "content": "", |
| | | "span": 2 |
| | | }, |
| | | { |
| | | "label": "店长意见及签字", |
| | | "content": { |
| | | "type": "tpl", |
| | | "tpl": "<br/><br/></pre>", |
| | | "id": "u:c14b6d167a7c" |
| | | }, |
| | | "span": 4 |
| | | }, |
| | | { |
| | | "label": "退费记录", |
| | | "content": { |
| | | "type": "tpl", |
| | | "tpl": "<br/><br/></pre>", |
| | | "id": "u:c14b6d167a7c" |
| | | }, |
| | | "span": 6 |
| | | }, |
| | | { |
| | | "label": "备注", |
| | | "content": { |
| | | "type": "tpl", |
| | | "tpl": "<br/><br/></pre>", |
| | | "id": "u:c14b6d167a7c" |
| | | }, |
| | | "span": 1 |
| | | } |
| | | ], |
| | | "column": 6, |
| | | "mode": "table", |
| | | |
| | | "className": "font-bold" |
| | | }, |
| | | { |
| | | "type": "flex", |
| | | "className": "p-1", |
| | | "items": [ |
| | | { |
| | | "type": "button", |
| | | "id": "u:6c0b8f917bf7", |
| | | "label": "关闭", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [{ |
| | | "actionType": "custom", |
| | | "args": {}, |
| | | "script": "window.close()" |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "id": "u:6c0b8f917bf7", |
| | | "label": "导出", |
| | | "level":"info", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "script": "\r\nwindow.print()", |
| | | "actionType": "custom" |
| | | }, |
| | | { |
| | | "componentId": "u:285d560cf7ab", |
| | | "actionType": "submit" |
| | | }, |
| | | { |
| | | "actionType": "custom", |
| | | "args": {}, |
| | | "script": "window.close()" |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | "style": { |
| | | "position": "relative" |
| | | }, |
| | | "id": "u:8254704349a2" |
| | | } |
| | | ], |
| | | "id": "u:fea3d370178c" |
| | | }; |
| | | let amisScoped = amis.embed('#root', amisJSON); |
| | | |
| | | |
| | | })(); |
| | | |
| | | function test(){ |
| | | console.log("测试成功") |
| | | } |
| | | |
| | | var myButton = document.getElementById("ttt"); |
| | | myButton.addEventListener("click",test); |
| | | </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", |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "type": "tpl", |
| | | "tpl": "                                            ", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "id": "u:5b414d7db416" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:5b414d7db416", |
| | | "inline": true, |
| | | "tpl": "                                            ", |
| | | "wrapperComponent": "" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:5b414d7db416", |
| | | "tpl": "                                                                          ", |
| | | "inline": true, |
| | | "wrapperComponent": "" |
| | | }, |
| | | { |
| | | "type": "flex", |
| | | "items": [ |
| | | { |
| | | "type": "tpl", |
| | | "tpl": "课包种类", |
| | | "id": "u:55654c208e7a", |
| | | "inline": true, |
| | | "wrapperComponent": "h2" |
| | | } |
| | | ], |
| | | "id": "u:0623e832135d", |
| | | "style": { |
| | | "position": "static", |
| | | "flexWrap": "nowrap", |
| | | "flexDirection": "row", |
| | | "justifyContent": "center", |
| | | "overflowY": "auto" |
| | | }, |
| | | "isFixedHeight": false, |
| | | "isFixedWidth": false |
| | | }, |
| | | { |
| | | "type": "flex", |
| | | "items": [ |
| | | { |
| | | "type": "radios", |
| | | "id": "u:afa09262555b", |
| | | "inline": true, |
| | | "label": " 请选择:", |
| | | "name": "radios", |
| | | "options": [ |
| | | { |
| | | "label": "常规课程", |
| | | "value": "1" |
| | | }, |
| | | { |
| | | "label": "假期课程", |
| | | "value": "2" |
| | | }, |
| | | { |
| | | "label": "体验课程", |
| | | "value": "3" |
| | | } |
| | | ], |
| | | "mode": "inline", |
| | | "value": "A", |
| | | "horizontal": { |
| | | "left": 1, |
| | | "right": 11 |
| | | } |
| | | } |
| | | ], |
| | | "id": "u:f7852087ea18", |
| | | "style": { |
| | | "position": "static", |
| | | "flexWrap": "nowrap", |
| | | "flexDirection": "row", |
| | | "justifyContent": "center", |
| | | "overflowY": "auto" |
| | | }, |
| | | "isFixedHeight": false, |
| | | "isFixedWidth": false |
| | | }, |
| | | { |
| | | "type": "flex", |
| | | "items": [ |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:5035e51732f1", |
| | | "inline": true, |
| | | "tpl": "1.常规课程:设置课时扣课的常规课程包。", |
| | | "wrapperComponent": "h3" |
| | | } |
| | | ], |
| | | "id": "u:ba0c4f9a5fc3", |
| | | "style": { |
| | | "position": "static", |
| | | "flexWrap": "nowrap", |
| | | "flexDirection": "row", |
| | | "justifyContent": "space-around", |
| | | "overflowY": "auto" |
| | | }, |
| | | "isFixedHeight": false, |
| | | "isFixedWidth": false |
| | | }, |
| | | { |
| | | "type": "flex", |
| | | "items": [ |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:fc5edd1fd19a", |
| | | "inline": true, |
| | | "tpl": "                  2.假期课程:预设时间段上课,时间到期课程既结束。", |
| | | "wrapperComponent": "h3" |
| | | } |
| | | ], |
| | | "id": "u:d23c02e12b83", |
| | | "style": { |
| | | "position": "static", |
| | | "flexWrap": "nowrap", |
| | | "flexDirection": "row", |
| | | "justifyContent": "space-around", |
| | | "overflowY": "auto" |
| | | }, |
| | | "isFixedHeight": false, |
| | | "isFixedWidth": false |
| | | }, |
| | | { |
| | | "type": "flex", |
| | | "items": [ |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:c519152df166", |
| | | "inline": true, |
| | | "tpl": "3.体验课程:单次购买的课程。                  ", |
| | | "wrapperComponent": "h3" |
| | | } |
| | | ], |
| | | "id": "u:c720cb31edf8", |
| | | "style": { |
| | | "position": "static", |
| | | "flexWrap": "nowrap", |
| | | "flexDirection": "row", |
| | | "justifyContent": "space-around", |
| | | "overflowY": "auto" |
| | | }, |
| | | "isFixedHeight": false, |
| | | "isFixedWidth": false |
| | | }, |
| | | { |
| | | "type": "flex", |
| | | "items": [ |
| | | { |
| | | "type": "button", |
| | | "id": "u:5b4f1fa2ae10", |
| | | "label": "确认", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "actionType": "url", |
| | | "args": { |
| | | "url": "/coursePackage/openAddCoursePackage?type=$radios", |
| | | "blank": false |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | "id": "u:43e7d3d6e5f7", |
| | | "style": { |
| | | "position": "static", |
| | | "flexWrap": "nowrap", |
| | | "flexDirection": "row", |
| | | "justifyContent": "space-around", |
| | | "overflowY": "auto" |
| | | }, |
| | | "isFixedHeight": false, |
| | | "isFixedWidth": false |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:5b414d7db416", |
| | | "tpl": "                                                                                                  ", |
| | | "inline": true, |
| | | "wrapperComponent": "" |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "label": "确认", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "actionType": "url", |
| | | "args": { |
| | | "url": "/coursePackage/openAddCoursePackage?type=$radios", |
| | | "blank": false |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "id": "u:5b4f1fa2ae10" |
| | | } |
| | | ], |
| | | "id": "u:339c517e4f3c", |
| | | "api": { |
| | | "url": "/coursePackage/openAddCoursePackage?$radios", |
| | | "method": "get", |
| | | "requestAdaptor": "", |
| | | "adaptor": "", |
| | | "messages": { |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | "id": "u:039339c3720d" |
| | | }; |
| | | let amisScoped = amis.embed('#root', amisJSON); |
| | | |
| | | |
| | | })(); |
| | | |
| | | function test(){ |
| | | console.log("测试成功") |
| | | } |
| | | |
| | | var myButton = document.getElementById("ttt"); |
| | | myButton.addEventListener("click",test); |
| | | </script> |
| | | |
| | | </body> |
| | | </html> |
| | |
| | | "size": "md", |
| | | "mode": "horizontal", |
| | | "hidden": true, |
| | | "value":`${item.id!}` |
| | | "value":`${item.id!}`, |
| | | |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | |
| | | "name": "id", |
| | | "size": "md", |
| | | "mode": "horizontal", |
| | | "hidden": false |
| | | "hidden": true |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | |
| | | "size": "md", |
| | | "mode": "horizontal", |
| | | "required": true, |
| | | "disabled": true |
| | | "disabled": true, |
| | | "value":`${item.userName!}` |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "       姓名", |
| | | "id": "u:0b2463bbffe8", |
| | | "name": "name", |
| | | "name": "name1", |
| | | "size": "md", |
| | | "mode": "horizontal", |
| | | "required": true |
| | | "required": true, |
| | | "value":`${item.name!}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "input-date", |
| | |
| | | "embed": false, |
| | | "format": "YYYY-MM-DD hh:mm:ss", |
| | | "inputFormat": "YYYY-MM-DD", |
| | | "required": true |
| | | "required": true, |
| | | "value":`${item.birthday!}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "select", |
| | |
| | | } |
| | | ], |
| | | "multiple": false, |
| | | "required": true |
| | | "required": true, |
| | | "value":`${item.sex!}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "联系电话", |
| | | "name": "phone", |
| | | "name": "phone1", |
| | | "id": "u:e7cf50e4f755", |
| | | "size": "md", |
| | | "mode": "horizontal", |
| | |
| | | "validateOnChange": true, |
| | | "validations": { |
| | | "isPhoneNumber": true |
| | | } |
| | | }, |
| | | "value":`${item.phone!}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | |
| | | "addOn": { |
| | | "label": "cm", |
| | | "type": "text" |
| | | } |
| | | }, |
| | | "value":`${item.height!}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | |
| | | "validations": { |
| | | "maximum": 250, |
| | | "isNumeric": true |
| | | } |
| | | }, |
| | | "value":`${item.weight!}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | |
| | | "validateOnChange": true, |
| | | "validations": { |
| | | "isId": true |
| | | } |
| | | }, |
| | | "value":`${item.idCard!}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | |
| | | "multiple": false, |
| | | "hideUploadButton": false, |
| | | "fixedSize": false, |
| | | "mode": "inline" |
| | | "mode": "inline", |
| | | "value":`${pic1!}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "input-image", |
| | |
| | | "multiple": false, |
| | | "hideUploadButton": false, |
| | | "fixedSize": false, |
| | | "mode": "inline" |
| | | "mode": "inline", |
| | | "value":`${pic2!}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "input-image", |
| | |
| | | "multiple": false, |
| | | "hideUploadButton": false, |
| | | "fixedSize": false, |
| | | "mode": "inline" |
| | | }, |
| | | { |
| | | "type": "container", |
| | | "body": [ |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:8224ab367da8", |
| | | "tpl": "                                                                          ", |
| | | "inline": true, |
| | | "wrapperComponent": "" |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "id": "u:783ce71739db", |
| | | "label": "保存", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "componentId": "u:7c5f75a3b7b5", |
| | | "args": { |
| | | }, |
| | | "outputVar": "responseResult", |
| | | "actionType": "submit" |
| | | }, |
| | | { |
| | | "args": { |
| | | }, |
| | | "script": "parent.layer.close(window.parent.TStudent.layerIndex);\n\n window.parent.TStudent.table.refresh();", |
| | | "actionType": "custom" |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "level": "info" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:8224ab367da8", |
| | | "tpl": "   ", |
| | | "inline": true, |
| | | "wrapperComponent": "" |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "id": "u:008bc32396cc", |
| | | "label": "取消", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "args": { |
| | | }, |
| | | "script": "parent.layer.close(window.parent.TStudent.layerIndex);\nconsole.log(\"===关闭\")", |
| | | "actionType": "custom" |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "block": false |
| | | } |
| | | ], |
| | | "style": { |
| | | "position": "static", |
| | | "display": "block" |
| | | }, |
| | | "id": "u:59d68a32f7fd" |
| | | "mode": "inline", |
| | | "value":`${pic3!}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "divider", |
| | |
| | | "embed": false, |
| | | "mode": "inline", |
| | | "size": "md", |
| | | "value":`${studentClassInfo.inDate}` |
| | | "value":`${studentClassInfo.inDate}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | |
| | | "multiple": false, |
| | | "hideUploadButton": false, |
| | | "receiver": { |
| | | "url": "/mgr/uploadImg", |
| | | "url": "/mgr/uploadImgAmis", |
| | | "method": "post" |
| | | }, |
| | | "value": "https://we-park-life.oss-cn-beijing.aliyuncs.com/img/99325878956443d68bb835145a8dca49.png" |
| | | } |
| | | }, |
| | | { |
| | | "type": "input-image", |
| | |
| | | "multiple": false, |
| | | "hideUploadButton": false, |
| | | "receiver": { |
| | | "url": "/mgr/uploadImg", |
| | | "url": "/mgr/uploadImgAmis", |
| | | "method": "post" |
| | | }, |
| | | "value": "https://we-park-life.oss-cn-beijing.aliyuncs.com/img/99325878956443d68bb835145a8dca49.png" |
| | | } |
| | | }, |
| | | { |
| | | "type": "container", |
| | |
| | | "method": "post", |
| | | "requestAdaptor": "", |
| | | "adaptor": "", |
| | | "messages": { |
| | | }, |
| | | "messages": {}, |
| | | "dataType": "form-data" |
| | | } |
| | | }, |
| | | "actions": [] |
| | | } |
| | | ], |
| | | "showCloseButton": true, |
| | |
| | | "showLoading": true, |
| | | "className": "app-popover", |
| | | "id": "u:044fac037276", |
| | | "closeOnEsc": false |
| | | "closeOnEsc": false, |
| | | "actions": [] |
| | | } |
| | | }, |
| | | { |
| | | "componentId": "u:59d68a32f7fd", |
| | | "actionType": "reload", |
| | | "data": null |
| | | } |
| | | ] |
| | | } |
| | |
| | | "actionType": "dialog", |
| | | "dialog": { |
| | | "type": "form", |
| | | "title": "弹框标题", |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "type": "input-text", |
| | | "label": "id", |
| | | "name": "id", |
| | | "id": "u:0a5bc6f58ee8" |
| | | "id": "u:0a5bc6f58ee8", |
| | | "hidden": true |
| | | }, |
| | | { |
| | | "type": "crud", |
| | |
| | | }, |
| | | "columns": [ |
| | | { |
| | | "name": "insertTime", |
| | | "name": "date", |
| | | "label": "操作时间", |
| | | "type": "date", |
| | | "id": "u:b652786dc9df" |
| | | "id": "u:b652786dc9df", |
| | | "valueFormat": "YYYY-MM-DD HH:mm:ss", |
| | | "format": "YYYY-MM-DD HH:mm", |
| | | "placeholder": "-" |
| | | }, |
| | | { |
| | | "type": "text", |
| | |
| | | { |
| | | "type": "image", |
| | | "label": "申请凭证", |
| | | "name": "picPlease", |
| | | "name": "pleasePic", |
| | | "id": "u:b22cfb737009" |
| | | }, |
| | | { |
| | | "type": "image", |
| | | "label": "同意凭证", |
| | | "name": "picPass", |
| | | "name": "passPic", |
| | | "id": "u:2a9071d0bda1" |
| | | } |
| | | ], |
| | |
| | | "showErrorMsg": true, |
| | | "showLoading": true, |
| | | "className": "app-popover", |
| | | "id": "u:c4e97065bccb" |
| | | "id": "u:c4e97065bccb", |
| | | "actions": [ |
| | | { |
| | | "type": "flex", |
| | | "className": "p-1", |
| | | "items": [ |
| | | { |
| | | "type": "container", |
| | | "body": [ |
| | | { |
| | | "type": "flex", |
| | | "className": "p-1", |
| | | "items": [ |
| | | { |
| | | "type": "button", |
| | | "id": "u:98fc618e3ec6", |
| | | "label": "关闭", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "actionType": "closeDialog" |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "block": false |
| | | } |
| | | ], |
| | | "style": { |
| | | "position": "relative" |
| | | }, |
| | | "id": "u:4a1662323b46" |
| | | } |
| | | ], |
| | | "size": "xs", |
| | | "style": { |
| | | "position": "relative", |
| | | "display": "inline-block", |
| | | "flex": "1 1 auto", |
| | | "flexGrow": 1, |
| | | "flexBasis": "auto", |
| | | "inset": "auto" |
| | | }, |
| | | "wrapperBody": false, |
| | | "isFixedHeight": false, |
| | | "isFixedWidth": false, |
| | | "id": "u:ffdcf3def663" |
| | | } |
| | | ], |
| | | "style": { |
| | | "position": "relative" |
| | | }, |
| | | "id": "u:ad4c2c8f0190" |
| | | } |
| | | ], |
| | | "size": "md" |
| | | } |
| | | } |
| | | ] |
| | |
| | | } |
| | | }, |
| | | "labelClassName": "labelClassName-49dd1bda82f4", |
| | | "value":`${studentClassInfo.totalHours}` |
| | | "value":`${studentClassInfo.totalHours}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | |
| | | "name": "idCard1", |
| | | "mode": "horizontal", |
| | | "size": "md", |
| | | "value":`${studentClassInfo.hasHours}` |
| | | "value":`${studentClassInfo.hasHours}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | |
| | | "name": "idCard2", |
| | | "mode": "horizontal", |
| | | "size": "md", |
| | | "value":`${studentClassInfo.restHours}` |
| | | "value":`${studentClassInfo.restHours}`, |
| | | "disabled": true, |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | |
| | | "name": "idCard3", |
| | | "mode": "horizontal", |
| | | "size": "md", |
| | | "value":`${studentClassInfo.giftHours}` |
| | | "value":`${studentClassInfo.giftHours}`, |
| | | "disabled": true, |
| | | }, { |
| | | "type": "tpl", |
| | | "id": "u:8224ab367da8", |
| | | "tpl": "          ", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "paddingBottom": "100", |
| | | "marginBottom": "100" |
| | | } |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:e6a3e106fac0", |
| | | "tpl": "退费申请:", |
| | | "inline": true, |
| | | "wrapperComponent": "", |
| | | "style": { |
| | | "paddingBottom": "100", |
| | | "marginBottom": "100" |
| | | } |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "id": "u:4b1f37ea569c", |
| | | "label": "退费列表", |
| | | "level": "info", |
| | | "onEvent": { |
| | | "click": { |
| | | "weight": 0, |
| | | "actions": [ |
| | | { |
| | | "actionType": "dialog", |
| | | "dialog": { |
| | | "type": "dialog", |
| | | "title": "弹框标题", |
| | | "body": [ |
| | | |
| | | { |
| | | "type": "input-text", |
| | | "id": "u:895313026d71", |
| | | "label": "id", |
| | | "name": "id", |
| | | "hidden": true |
| | | }, |
| | | { |
| | | "type": "crud", |
| | | "syncLocation": false, |
| | | "name":"crud", |
| | | "api": { |
| | | "method": "get", |
| | | "url": "/tStudent/getBackList/$id" |
| | | }, |
| | | "columns": [ |
| | | { |
| | | "type": "date", |
| | | "name": "insertTime", |
| | | "label": "申请时间", |
| | | "id": "u:6948dfe01afd", |
| | | "valueFormat": "YYYY-MM-DD HH:mm:ss", |
| | | "format": "YYYY-MM-DD HH:mm" |
| | | }, |
| | | { |
| | | "name": "status", |
| | | "label": "审核状态", |
| | | "type": "mapping", |
| | | "id": "u:1f2a09737a98", |
| | | "map": { |
| | | "0": "待审核", |
| | | "1": "同意", |
| | | "2": "拒绝" |
| | | } |
| | | }, |
| | | { |
| | | "type": "operation", |
| | | "id": "u:b0e34eccd864", |
| | | "buttons": [ |
| | | { |
| | | "type": "button", |
| | | "label": "查看详情", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "actionType": "url", |
| | | "args": { |
| | | "url": "/tStudent/backmoney", |
| | | "params": { |
| | | "ids": "$ids", |
| | | "id": "$id" |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | "weight": 0 |
| | | } |
| | | }, |
| | | "id": "u:38a6f5402e72", |
| | | "level": "link", |
| | | "actionType": "ajax" |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "label": "同意", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | ], |
| | | "weight": 0 |
| | | } |
| | | }, |
| | | "id": "u:4450de076e9f", |
| | | "level": "link", |
| | | "actionType": "ajax", |
| | | "hiddenOn": "this.status === 1 || this.status === 2", |
| | | "api": { |
| | | "method": "post", |
| | | "url": "/tStudent/changeStatus/$id" |
| | | }, |
| | | "reload": "pay" |
| | | } |
| | | ], |
| | | "placeholder": "-", |
| | | "label": "操作" |
| | | } |
| | | ], |
| | | "bulkActions": [], |
| | | "itemActions": [], |
| | | "features": [ |
| | | "view", |
| | | "delete" |
| | | ], |
| | | "id": "u:a4ce7e3ae181" |
| | | } |
| | | ], |
| | | "showCloseButton": true, |
| | | "showErrorMsg": true, |
| | | "showLoading": true, |
| | | "className": "app-popover", |
| | | "id": "u:b91085026056" |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "size": "xs" |
| | | }, |
| | | { |
| | | "type": "crud", |
| | | "name":"pay", |
| | | "syncLocation": false, |
| | | "api": { |
| | | "method": "get", |
| | |
| | | "name": "classType", |
| | | "id": "u:2f1091a380a8", |
| | | "map": { |
| | | "*": "通配值" |
| | | "1": "常规课", |
| | | "2": "假期课", |
| | | "3": "体验课" |
| | | } |
| | | }, |
| | | { |
| | | "type": "date", |
| | | "label": "报名时间", |
| | | "name": "reportDate", |
| | | "id": "u:36ab5e408a48" |
| | | "name": "insertTime", |
| | | "id": "u:36ab5e408a48", |
| | | "valueFormat": "x" |
| | | }, |
| | | { |
| | | "type": "text", |
| | | "label": "总课时数", |
| | | "name": "totalTime", |
| | | "name": "totalClassHours", |
| | | "id": "u:fba93556fb2e" |
| | | }, |
| | | { |
| | | "type": "text", |
| | | "label": "已上课时数", |
| | | "name": "haveTime", |
| | | "id": "u:b55a5ac7f49d" |
| | | "name": "hasClassHours", |
| | | "id": "u:b55a5ac7f49d", |
| | | "value": "$totalClassHours-$totalClassHours" |
| | | }, |
| | | { |
| | | "type": "text", |
| | | "label": "剩余课时数", |
| | | "name": "restTime", |
| | | "id": "u:abb78021df40" |
| | | "name": "laveClassHours", |
| | | "id": "u:abb78021df40", |
| | | "placeholder": "-" |
| | | }, |
| | | { |
| | | "type": "operation", |
| | |
| | | "title": "弹框标题", |
| | | "body": [ |
| | | { |
| | | "type": "select", |
| | | "label": "请选择被转移学员", |
| | | "name": "select", |
| | | "id": "u:80a2266885a3", |
| | | "multiple": false, |
| | | "mode": "horizontal", |
| | | "size": "lg", |
| | | "horizontal": { |
| | | "leftFixed": "lg" |
| | | }, |
| | | "source": { |
| | | "url": "/tStudent/getUserSlect/$id", |
| | | "method": "get" |
| | | }, |
| | | "labelField": "value", |
| | | "valueField": "id" |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "id", |
| | | "name": "id", |
| | | "id": "u:1e2c394fa299" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "tpl": "对,你刚刚点击了", |
| | | "wrapperComponent": "", |
| | | "inline": false, |
| | | "id": "u:7c4a5a6b60d0" |
| | | "type": "form", |
| | | "id": "u:db6a651c2979", |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "label": "请选择被转移学员", |
| | | "type": "select", |
| | | "name": "toStudentId", |
| | | "id": "u:80a2266885a3", |
| | | "multiple": false, |
| | | "mode": "horizontal", |
| | | "size": "lg", |
| | | "horizontal": { |
| | | "leftFixed": "lg" |
| | | }, |
| | | "source": { |
| | | "url": "/tStudent/getUserSlect/$id", |
| | | "method": "get" |
| | | }, |
| | | "labelField": "value", |
| | | "valueField": "id" |
| | | }, |
| | | { |
| | | "label": "id", |
| | | "type": "input-text", |
| | | "name": "id", |
| | | "id": "u:1e2c394fa299", |
| | | "hidden": true |
| | | }, |
| | | { |
| | | "type": "container", |
| | | "id": "u:59d68a32f7fd", |
| | | "body": [ |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:8224ab367da8", |
| | | "tpl": "                                                 ", |
| | | "inline": true, |
| | | "wrapperComponent": "" |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "id": "u:783ce71739db", |
| | | "label": "保存", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "componentId": "u:db6a651c2979", |
| | | "actionType": "submit" |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "level": "info" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:8224ab367da8", |
| | | "tpl": "   ", |
| | | "inline": true, |
| | | "wrapperComponent": "" |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "id": "u:008bc32396cc", |
| | | "label": "取消", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "actionType": "closeDialog" |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "block": false |
| | | } |
| | | ], |
| | | "style": { |
| | | "position": "static", |
| | | "display": "block" |
| | | } |
| | | } |
| | | ], |
| | | "api": { |
| | | "url": "/tStudent/toClass", |
| | | "method": "post", |
| | | "requestAdaptor": "", |
| | | "adaptor": "", |
| | | "messages": { |
| | | }, |
| | | "dataType": "form-data" |
| | | } |
| | | } |
| | | ], |
| | | "showCloseButton": true, |
| | | "showErrorMsg": true, |
| | | "showLoading": true, |
| | | "className": "app-popover", |
| | | "id": "u:a612413d932d" |
| | | "id": "u:a612413d932d", |
| | | "api": { |
| | | "url": "/tStudent/toClass", |
| | | "method": "post", |
| | | "messages": { |
| | | } |
| | | }, |
| | | "actions": [ |
| | | ] |
| | | } |
| | | } |
| | | ] |
| | |
| | | "title": "弹框标题", |
| | | "body": [ |
| | | { |
| | | "type": "input-text", |
| | | "label": "用户姓名:", |
| | | "name": "text", |
| | | "id": "u:c260d6dbc161", |
| | | "mode": "horizontal" |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "用户电话", |
| | | "name": "phone", |
| | | "id": "u:c00d1204430d", |
| | | "mode": "horizontal" |
| | | }, |
| | | { |
| | | "type": "service", |
| | | "id": "u:f6ab941852f1", |
| | | "type": "form", |
| | | "id": "u:57ea84073397", |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "type": "select", |
| | | "id": "u:a7766815916b", |
| | | "label": "选择学员", |
| | | "name": "select", |
| | | "multiple": false, |
| | | "mode": "horizontal", |
| | | "size": "lg", |
| | | "value": "" |
| | | "type": "service", |
| | | "id": "u:f6ab941852f1", |
| | | "body": [ |
| | | { |
| | | "type": "input-text", |
| | | "id": "u:c00d1204430d", |
| | | "label": "用户电话", |
| | | "name": "phone", |
| | | "mode": "horizontal", |
| | | "size": "md" |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "id": "u:9a9f18e09fb9", |
| | | "label": "        用户姓名:", |
| | | "name": "name", |
| | | "mode": "inline", |
| | | "size": "md" |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "label": "搜索", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "componentId": "u:f6ab941852f1", |
| | | "actionType": "reload", |
| | | "dataMergeMode": "merge" |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "id": "u:5fcf1222f6ea", |
| | | "level": "info" |
| | | }, |
| | | { |
| | | "type": "select", |
| | | "id": "u:a7766815916b", |
| | | "label": "选择学员", |
| | | "name": "toStudentId", |
| | | "multiple": false, |
| | | "mode": "horizontal", |
| | | "size": "md", |
| | | "value": "", |
| | | "source": "$options", |
| | | "labelField": "value", |
| | | "valueField": "id" |
| | | } |
| | | ], |
| | | "messages": {}, |
| | | "loadingConfig": { |
| | | "show": true |
| | | }, |
| | | "api": { |
| | | "url": "/tStudent/giftSelect", |
| | | "method": "post", |
| | | "messages": {}, |
| | | "requestAdaptor": "", |
| | | "adaptor": "", |
| | | "dataType": "form-data", |
| | | "data": { |
| | | "name": "$name", |
| | | "phone": "$phone", |
| | | "id": "$id" |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "id": "u:fe0979ee23df", |
| | | "label": "id", |
| | | "name": "id", |
| | | "hidden": true |
| | | }, |
| | | { |
| | | "type": "container", |
| | | "id": "u:59d68a32f7fd", |
| | | "body": [ |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:8224ab367da8", |
| | | "tpl": "                                                 ", |
| | | "inline": true, |
| | | "wrapperComponent": "" |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "id": "u:783ce71739db", |
| | | "label": "保存", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "componentId": "u:57ea84073397", |
| | | "actionType": "submit" |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "level": "info" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:8224ab367da8", |
| | | "tpl": "   ", |
| | | "inline": true, |
| | | "wrapperComponent": "" |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "id": "u:008bc32396cc", |
| | | "label": "取消", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "actionType": "closeDialog" |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "block": false |
| | | } |
| | | ], |
| | | "style": { |
| | | "position": "static", |
| | | "display": "block" |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "label": "按钮", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | ] |
| | | } |
| | | ], |
| | | "api": { |
| | | "url": "/tStudent/giftTo", |
| | | "method": "post", |
| | | "requestAdaptor": "", |
| | | "adaptor": "", |
| | | "messages": {}, |
| | | "dataType": "form-data" |
| | | }, |
| | | "id": "u:5fcf1222f6ea" |
| | | "actions": [] |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "id", |
| | | "name": "id", |
| | | "id": "u:fe0979ee23df" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "tpl": "对,你刚刚点击了", |
| | | "wrapperComponent": "", |
| | | "inline": false, |
| | | "id": "u:5fe4b4c9e423" |
| | | "id": "u:59d68a32f7fd", |
| | | "type": "container", |
| | | "body": [], |
| | | "style": { |
| | | "position": "static", |
| | | "display": "block" |
| | | } |
| | | } |
| | | ], |
| | | "showCloseButton": true, |
| | | "showErrorMsg": true, |
| | | "showLoading": true, |
| | | "className": "app-popover", |
| | | "id": "u:552bd1b3464d" |
| | | "id": "u:552bd1b3464d", |
| | | "actions": [], |
| | | "canAccessSuperData": false |
| | | } |
| | | } |
| | | ] |
| | |
| | | }, |
| | | "id": "u:ae1e6e73beb9", |
| | | "level": "link" |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "label": "变更记录", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "actionType": "dialog", |
| | | "dialog": { |
| | | "type": "dialog", |
| | | "title": "弹框标题", |
| | | "body": [ |
| | | { |
| | | "type": "form", |
| | | "id": "u:4468428b5d24", |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "type": "crud", |
| | | "id": "u:8072454d25d8", |
| | | "api": { |
| | | "url": "/tStudent/changelist/$id", |
| | | "method": "post", |
| | | "messages": { |
| | | }, |
| | | "requestAdaptor": "", |
| | | "adaptor": "", |
| | | "dataType": "form" |
| | | }, |
| | | "syncLocation": false, |
| | | "columns": [ |
| | | { |
| | | "name": "insertTime", |
| | | "label": "时间", |
| | | "type": "date", |
| | | "id": "u:e13821cad6ba", |
| | | "valueFormat": "x" |
| | | }, |
| | | { |
| | | "name": "changeType", |
| | | "label": "变更类型", |
| | | "type": "mapping", |
| | | "id": "u:e2b292dd63d0" |
| | | }, |
| | | { |
| | | "type": "text", |
| | | "label": "课时数", |
| | | "name": "num", |
| | | "id": "u:24b1375ff173" |
| | | }, |
| | | { |
| | | "type": "text", |
| | | "label": "变更原因", |
| | | "name": "reason", |
| | | "id": "u:8ba95bfd5e56" |
| | | } |
| | | ], |
| | | "bulkActions": [ |
| | | ], |
| | | "itemActions": [ |
| | | ], |
| | | "features": [ |
| | | "filter" |
| | | ], |
| | | "filterColumnCount": 3, |
| | | "filter": { |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "type": "input-date-range", |
| | | "name": "start", |
| | | "label": "上传时间", |
| | | "id": "u:b2fb064aa9ac", |
| | | "inputFormat": "YYYY-MM-DD HH:mm", |
| | | "format": "YYYY-MM-DD HH:mm", |
| | | "embed": false, |
| | | "extraName": "end" |
| | | }, |
| | | { |
| | | "type": "select", |
| | | "label": "是否启用", |
| | | "name": "changeType", |
| | | "options": [ |
| | | { |
| | | "label": "全部" |
| | | }, |
| | | { |
| | | "label": "增加", |
| | | "value": 1 |
| | | }, |
| | | { |
| | | "label": "减少", |
| | | "value": 0 |
| | | } |
| | | ], |
| | | "id": "u:6dbebedca3b9", |
| | | "multiple": false, |
| | | "clearable": true, |
| | | "size": "md", |
| | | "value": "" |
| | | }, |
| | | { |
| | | "type": "select", |
| | | "label": "变更原因", |
| | | "name": "reason", |
| | | "options": [ |
| | | { |
| | | "label": "全部" |
| | | }, |
| | | { |
| | | "label": "购课", |
| | | "value": "购课" |
| | | }, |
| | | { |
| | | "label": "消课", |
| | | "value": 0 |
| | | }, |
| | | { |
| | | "label": "体验购课", |
| | | "value": "体验购课" |
| | | }, |
| | | { |
| | | "label": "报名赛事", |
| | | "value": "报名赛事" |
| | | }, |
| | | { |
| | | "label": "报名假期班", |
| | | "value": "报名假期班" |
| | | }, |
| | | { |
| | | "label": "续课", |
| | | "value": 1 |
| | | }, |
| | | { |
| | | "label": "课时转移", |
| | | "value": "课时转移" |
| | | }, |
| | | { |
| | | "label": "赠课", |
| | | "value": "赠课" |
| | | }, |
| | | { |
| | | "label": "退费", |
| | | "value": "退费" |
| | | }, |
| | | { |
| | | "label": "介绍有礼", |
| | | "value": "介绍有礼" |
| | | }, |
| | | { |
| | | "label": "换课", |
| | | "value": "换课" |
| | | } |
| | | ], |
| | | "id": "u:a3db438ccfdd", |
| | | "multiple": false, |
| | | "clearable": true, |
| | | "size": "md", |
| | | "value": "" |
| | | } |
| | | ], |
| | | "id": "u:5c936e95b286" |
| | | }, |
| | | "perPageAvailable": [ |
| | | 10 |
| | | ], |
| | | "messages": { |
| | | }, |
| | | "perPageField": "size" |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "id": "u:5f73d0cbffee", |
| | | "label": "id", |
| | | "name": "id", |
| | | "hidden": true |
| | | }, |
| | | { |
| | | "type": "container", |
| | | "id": "u:0576f915b9e3", |
| | | "body": [ |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:9c56f7ef3419", |
| | | "tpl": "                                                                                                             ", |
| | | "inline": true, |
| | | "wrapperComponent": "" |
| | | }, |
| | | { |
| | | "type": "tpl", |
| | | "id": "u:a2cba9bb8751", |
| | | "tpl": "   ", |
| | | "inline": true, |
| | | "wrapperComponent": "" |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "id": "u:98fc618e3ec6", |
| | | "label": "关闭", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "actionType": "closeDialog" |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "block": false |
| | | } |
| | | ], |
| | | "style": { |
| | | "position": "static", |
| | | "display": "block" |
| | | } |
| | | } |
| | | ], |
| | | "api": { |
| | | "url": "/tStudent/changelist/$id", |
| | | "method": "post", |
| | | "requestAdaptor": "", |
| | | "adaptor": "", |
| | | "messages": { |
| | | }, |
| | | "dataType": "form-data" |
| | | }, |
| | | "actions": [ |
| | | ] |
| | | } |
| | | ], |
| | | "showCloseButton": true, |
| | | "showErrorMsg": true, |
| | | "showLoading": true, |
| | | "className": "", |
| | | "id": "u:f66fa4de8251", |
| | | "actions": [ |
| | | ], |
| | | "canAccessSuperData": false, |
| | | "wrapWithPanel": false, |
| | | "size": "xl", |
| | | "closeOnEsc": false |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "id": "u:dd3110deaf9d", |
| | | "level": "link" |
| | | } |
| | | |
| | | ] |
| | | } |
| | | ], |
| | |
| | | "wrapperComponent": "" |
| | | }, |
| | | { |
| | | "label": "ajax请求", |
| | | "type": "button", |
| | | "label": "退费", |
| | | "actionType": "ajax", |
| | | "api": { |
| | | "method": "get", |
| | | "url": "/ttt", |
| | | "data": { |
| | | "item": "$items" |
| | | }, |
| | | "id": "u:f706584d4a0c" |
| | | }, |
| | | "id": "u:38a6f5402e72" |
| | | "id": "u:38a6f5402e72", |
| | | "onEvent": { |
| | | "click": { |
| | | "weight": 0, |
| | | "actions": [ |
| | | { |
| | | "actionType": "url", |
| | | "args": { |
| | | "url": "/tStudent/backmoney", |
| | | "params": { |
| | | "ids": "$ids", |
| | | "id": "$id" |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | "label": "退费", |
| | | "type": "button", |
| | | "id": "u:4b1f37ea569c" |
| | | "label": "退费申请", |
| | | "id": "u:4b1f37ea569c", |
| | | "level": "info", |
| | | "onEvent": { |
| | | "click": { |
| | | "weight": 0, |
| | | "actions": [ |
| | | { |
| | | "actionType": "dialog", |
| | | "dialog": { |
| | | "type": "dialog", |
| | | "title": "弹框标题", |
| | | "body": [ |
| | | { |
| | | "type": "tpl", |
| | | "tpl": "对,你刚刚点击了", |
| | | "wrapperComponent": "", |
| | | "inline": false, |
| | | "id": "u:d72b44ae6de4" |
| | | }, |
| | | { |
| | | "type": "crud", |
| | | "syncLocation": false, |
| | | "api": { |
| | | "method": "get", |
| | | "url": "/tStudent/getBackList/$id" |
| | | }, |
| | | "columns": [ |
| | | { |
| | | "name": "inserTtime", |
| | | "label": "申请时间", |
| | | "type": "date", |
| | | "id": "u:6948dfe01afd" |
| | | }, |
| | | { |
| | | "name": "status", |
| | | "label": "审核状态", |
| | | "type": "mapping", |
| | | "id": "u:1f2a09737a98" |
| | | }, |
| | | { |
| | | "type": "operation", |
| | | "id": "u:b0e34eccd864", |
| | | "buttons": [ |
| | | { |
| | | "type": "button", |
| | | "label": "退费", |
| | | "onEvent": { |
| | | "click": { |
| | | "actions": [ |
| | | { |
| | | "actionType": "url", |
| | | "args": { |
| | | "url": "/tStudent/backmoney", |
| | | "params": { |
| | | "ids": "$ids", |
| | | "id": "$id" |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | "weight": 0 |
| | | } |
| | | }, |
| | | "id": "u:38a6f5402e72", |
| | | "actionType": "ajax", |
| | | "level": "info" |
| | | } |
| | | ] |
| | | } |
| | | ], |
| | | "bulkActions": [], |
| | | "itemActions": [], |
| | | "features": [ |
| | | "view", |
| | | "delete" |
| | | ], |
| | | "id": "u:a4ce7e3ae181" |
| | | } |
| | | ], |
| | | "showCloseButton": true, |
| | | "showErrorMsg": true, |
| | | "showLoading": true, |
| | | "className": "app-popover", |
| | | "id": "u:b91085026056" |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | "label": "退费", |
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", |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "type": "form", |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "type": "tpl", |
| | | "tpl": "                    报名假期班", |
| | | "inline": true, |
| | | "wrapperComponent": "h2", |
| | | "id": "u:194f160daab4" |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "id", |
| | | "name": "id", |
| | | "id": "u:d038053014ca", |
| | | "mode": "horizontal", |
| | | "size": "md" |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "ids", |
| | | "name": "ids", |
| | | "id": "u:223b7f2a1a5b", |
| | | "mode": "horizontal", |
| | | "size": "md" |
| | | }, |
| | | { |
| | | "label": "换课课程:", |
| | | "type": "select", |
| | | "name": "holiId", |
| | | "id": "u:e205156867e3", |
| | | "multiple": false, |
| | | "mode": "horizontal", |
| | | "source": { |
| | | "url": "/tStudent/getholi/$id", |
| | | "method": "get", |
| | | "requestAdaptor": "", |
| | | "adaptor": "", |
| | | "messages": { |
| | | } |
| | | }, |
| | | "value": "", |
| | | "labelField": "value", |
| | | "valueField": "id", |
| | | "size": "md", |
| | | "searchable": true |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "扣除课时数:", |
| | | "name": "classNum", |
| | | "id": "u:0333b5c5d05c", |
| | | "mode": "horizontal", |
| | | "size": "md" |
| | | } |
| | | ], |
| | | "api": { |
| | | "url": "/tStudent/Toholi", |
| | | "method": "post", |
| | | "requestAdaptor": "", |
| | | "adaptor": "", |
| | | "messages": { |
| | | }, |
| | | "dataType": "form-data" |
| | | }, |
| | | "id": "u:8860df492a12" |
| | | } |
| | | ], |
| | | "id": "u:710cbc62ec24", |
| | | "actions": [ |
| | | ] |
| | | } |
| | | ], |
| | | "id": "u:42603b55fcf2" |
| | | }; |
| | | let amisScoped = amis.embed('#root', amisJSON); |
| | | |
| | | |
| | | })(); |
| | | |
| | | function test(){ |
| | | console.log("测试成功") |
| | | } |
| | | |
| | | var myButton = document.getElementById("ttt"); |
| | | myButton.addEventListener("click",test); |
| | | </script> |
| | | |
| | | </body> |
| | | </html> |
| | |
| | | "uploadType": "fileReceptor", |
| | | "imageClassName": "r w-full", |
| | | "receiver": { |
| | | "url": "/mgr/uploadImg", |
| | | "url": "/mgr/uploadImgAmis", |
| | | "method": "post" |
| | | }, |
| | | "accept": ".jpeg, .jpg, .png, .gif", |
| | |
| | | "uploadType": "fileReceptor", |
| | | "imageClassName": "r w-full", |
| | | "receiver": { |
| | | "url": "/mgr/uploadImg", |
| | | "url": "/mgr/uploadImgAmis", |
| | | "method": "post" |
| | | }, |
| | | "accept": ".jpeg, .jpg, .png, .gif", |
| | |
| | | "uploadType": "fileReceptor", |
| | | "imageClassName": "r w-full", |
| | | "receiver": { |
| | | "url": "/mgr/uploadImg", |
| | | "url": "/mgr/uploadImgAmis", |
| | | "method": "post" |
| | | }, |
| | | "accept": ".jpeg, .jpg, .png, .gif", |
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:710cbc62ec24", |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "type": "form", |
| | | "title": "", |
| | | "body": [ |
| | | { |
| | | "type": "tpl", |
| | | "tpl": "                    换课", |
| | | "inline": true, |
| | | "wrapperComponent": "h2", |
| | | "id": "u:194f160daab4" |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "id", |
| | | "name": "id", |
| | | "id": "u:d038053014ca", |
| | | "mode": "horizontal", |
| | | "size": "md" |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "ids", |
| | | "name": "ids", |
| | | "id": "u:223b7f2a1a5b", |
| | | "mode": "horizontal", |
| | | "size": "md" |
| | | }, |
| | | { |
| | | "label": "换课课程:", |
| | | "type": "select", |
| | | "name": "holiId", |
| | | "id": "u:e205156867e3", |
| | | "multiple": false, |
| | | "mode": "horizontal", |
| | | "source": { |
| | | "url": "/tStudent/gettrans/$id", |
| | | "method": "get", |
| | | "requestAdaptor": "", |
| | | "adaptor": "", |
| | | "messages": { |
| | | } |
| | | }, |
| | | "value": "", |
| | | "labelField": "value", |
| | | "valueField": "id", |
| | | "size": "md", |
| | | "searchable": true |
| | | } |
| | | ], |
| | | "api": { |
| | | "url": "/tStudent/ToTrans", |
| | | "method": "post", |
| | | "requestAdaptor": "", |
| | | "adaptor": "", |
| | | "messages": { |
| | | }, |
| | | "dataType": "form-data" |
| | | }, |
| | | "id": "u:8860df492a12" |
| | | } |
| | | ], |
| | | "actions": [ |
| | | ] |
| | | } |
| | | ], |
| | | "id": "u:42603b55fcf2" |
| | | }; |
| | | let amisScoped = amis.embed('#root', amisJSON); |
| | | |
| | | |
| | | })(); |
| | | |
| | | function test(){ |
| | | console.log("测试成功") |
| | | } |
| | | |
| | | var myButton = document.getElementById("ttt"); |
| | | myButton.addEventListener("click",test); |
| | | </script> |
| | | |
| | | </body> |
| | | </html> |
New file |
| | |
| | | /** |
| | | * 管理初始化 |
| | | */ |
| | | var TCoupon = { |
| | | id: "TCouponTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | |
| | | // console.log("父级页面"+window.parent.getElementById("counpons"+$("#index").val())); |
| | | console.log("父级页面" + window.parent.document.getElementById("counpons" + $("#index").val()).value); |
| | | console.log( $("#index").val()); |
| | | |
| | | var ids = window.parent.document.getElementById("counpons" + $("#index").val()).value; |
| | | |
| | | // console.log("==========radio=="+ids) |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TCoupon.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', checkbox: true, formatter: function (value,row) { |
| | | if(ids.indexOf(row.id)!= -1){ |
| | | return {checked:true}; |
| | | }}}, |
| | | {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券名称', field: 'name', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '适用范围', field: 'useScope', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "全国", 2: "指定城市", 3: "指定门店"}[value] |
| | | } |
| | | }, |
| | | {title: '优惠券类型', field: 'type', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "满减券", 2: "代金券", 3: "体验券"}[value] |
| | | }}, |
| | | {title: '发放方式', field: 'distributionMethod', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "积分购买", 2: "注册赠送", 3: "自动发券"}[value] |
| | | }}, |
| | | {title: '有效期', field: 'timeValue', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '用户人群', field: 'userPopulation', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "全部用户", 2: "年度会员", 3: "已有学员用户"}[value] |
| | | }}, |
| | | {title: '发放数量', field: 'quantityIssued', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '限领数量', field: 'pickUpQuantity', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '已领数量', field: 'hasPickQty', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '活动状态', field: 'status', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "未开始", 2: "已开始", 3: "已结束"}[value] |
| | | }}, |
| | | {title: '可售状态', field: 'state', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "上架", 2: "下架"}[value] |
| | | }}, |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TCoupon.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TCoupon.seItem = selected[0]; |
| | | TCoupon.seItem1 = selected; |
| | | |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 点击添加 |
| | | */ |
| | | TCoupon.openAdd = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCouponManage/coupon_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | |
| | | |
| | | TCoupon.backids = function (i) { |
| | | console.log("aaaaaa"+i) |
| | | if (this.check()) { |
| | | |
| | | var ids = TCoupon.seItem1.map(function(item) { |
| | | return item.id; |
| | | }).join(","); |
| | | // console.log("aaaaaa"+TCoupon.seItem1.map(function(item) { |
| | | // return item.id; |
| | | // }).join(",")) |
| | | |
| | | |
| | | // if (window.parent.document.getElementById("counpons"+i).value==null||window.parent.document.getElementById("counpons"+i).value==""){ |
| | | window.parent.document.getElementById("counpons"+i).value = ids; |
| | | // }else { |
| | | // window.parent.document.getElementById("counpons"+i).value = window.parent.document.getElementById("counpons"+i).value + ','+TCoupon.seItem.id; |
| | | // |
| | | // } |
| | | window.parent.layer.closeAll(); |
| | | } |
| | | |
| | | }; |
| | | |
| | | /** |
| | | * 点击编辑 |
| | | */ |
| | | TCoupon.openChange = function () { |
| | | if (this.check()){ |
| | | let id = TCoupon.seItem.id |
| | | let name = TCoupon.seItem.name |
| | | let quantityIssued = TCoupon.seItem.quantityIssued |
| | | let pickUpQuantity = TCoupon.seItem.pickUpQuantity |
| | | let illustrate = TCoupon.seItem.illustrate |
| | | let hasPickQty = TCoupon.seItem.hasPickQty |
| | | 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' + |
| | | ' <label class="form-control" id="name" >'+name+'</label> '+ |
| | | ' </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" id="num" value="'+quantityIssued+'" > '+ |
| | | ' </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" id="num1" value="'+pickUpQuantity+'" > '+ |
| | | ' </div>\n' + |
| | | ' </div>\n' + |
| | | ' <div class="form-group">\n' + |
| | | ' <label class="col-sm-3 control-label">优惠券说明:</label>\n' + |
| | | ' <div class="col-sm-9">\n' + |
| | | ' <textarea class="form-control" id="text" >'+illustrate+'</textarea> '+ |
| | | ' </div>\n' + |
| | | ' </div>\n' + |
| | | ' </div>' + |
| | | ' </div>' + |
| | | '</div>' |
| | | , btn: ['关闭', '保存'] |
| | | , btnAlign: 'c' //按钮居中 |
| | | , shade: 0.5 //不显示遮罩 |
| | | ,load:1 |
| | | , yes: function () { |
| | | layer.closeAll(); |
| | | }, |
| | | btn2:function () { |
| | | let num = $("#num").val() |
| | | if(num==''){ |
| | | Feng.info("请输入发放数量") |
| | | return false; |
| | | } |
| | | let num1 = $("#num1").val() |
| | | if(num1==''){ |
| | | Feng.info("请输入限领数量") |
| | | return false; |
| | | } |
| | | let text = $("#text").val() |
| | | if(text==''){ |
| | | Feng.info("请输入优惠券说明") |
| | | return false; |
| | | } |
| | | |
| | | if(num<hasPickQty){ |
| | | Feng.info("发放数量不能小于已领取数量") |
| | | return false; |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/tCouponManage/update", function (data) { |
| | | if (data.code == 200) { |
| | | Feng.success("操作成功!"); |
| | | window.location.reload(); |
| | | window.parent.layer.closeAll(); |
| | | } else if(data=="repeat"){ |
| | | window.location.reload(); |
| | | window.parent.layer.closeAll(); |
| | | Feng.error("请勿重复操作"); |
| | | }else { |
| | | return Feng.error(data.msg); |
| | | } |
| | | }, function (data) { |
| | | Feng.error("操作失败!") |
| | | window.location.reload(); |
| | | window.parent.layer.closeAll(); |
| | | return Feng.error("操作失败!"); |
| | | }); |
| | | ajax.set("id", id); |
| | | ajax.set("num", num); |
| | | ajax.set("num1", num1); |
| | | ajax.set("text", text); |
| | | ajax.start(); |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 上架 |
| | | */ |
| | | |
| | | |
| | | /** |
| | | * 下架 |
| | | */ |
| | | TCoupon.offShelf = function () { |
| | | |
| | | |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TCoupon.openDetail = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCouponManage/coupon_detail/' + TCoupon.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 打开领取记录 |
| | | */ |
| | | TCoupon.openCollectionRecord = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCouponManage/coupon_record/' + TCoupon.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | TCoupon.onShelf = function (e) { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tCouponManage/onShelf", function(data){ |
| | | if(data.code==200){ |
| | | Feng.success("操作成功!") |
| | | TCoupon.table.refresh(); |
| | | } |
| | | },function(data){ |
| | | Feng.error("操作失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("id",TCoupon.seItem.id) |
| | | ajax.set("type",e) |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TCoupon.search = function () { |
| | | var queryData = {}; |
| | | queryData['name'] = $("#name").val(); |
| | | queryData['type'] = $("#type").val(); |
| | | queryData['distributionMethod'] = $("#distributionMethod").val(); |
| | | queryData['userPopulation'] = $("#userPopulation").val(); |
| | | queryData['status'] = $("#status").val(); |
| | | queryData['state'] = $("#state").val(); |
| | | TCoupon.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 重置搜索 |
| | | */ |
| | | TCoupon.resetSearch = function () { |
| | | $("#name").val(''); |
| | | $("#type").val(''); |
| | | $("#distributionMethod").val(''); |
| | | $("#userPopulation").val(''); |
| | | $("#status").val(''); |
| | | $("#state").val(''); |
| | | TCoupon.search(); |
| | | }; |
| | | |
| | | $(function () { |
| | | // console.log("父级"+window.parent.document.getElementById("cityCode").val()) |
| | | console.log("父级" + window.parent.document.getElementById("cityCode").value); |
| | | var defaultColunms = TCoupon.initColumn(); |
| | | var table = new BSTable(TCoupon.id, "/tCouponManage/list1", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | // table.queryParams = function (params) { |
| | | // // 在这里添加您的自定义参数 |
| | | // params.cityCode = window.parent.document.getElementById("cityCode").value; |
| | | // params.customParam2 = window.parent.document.getElementById("cityCode").value; |
| | | // return params; |
| | | // }; |
| | | |
| | | table.queryParams = {'cityCode': window.parent.document.getElementById("cityCode").value,'storeId': window.parent.document.getElementById("storeId").value} |
| | | table.height=400 |
| | | TCoupon.table = table.init(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * 管理初始化 |
| | | */ |
| | | var TCoupon = { |
| | | id: "TCouponTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | |
| | | var ids = $("#conpund").val(); |
| | | |
| | | console.log("==========radio=="+ids) |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TCoupon.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', checkbox: true, formatter: function (value,row) { |
| | | if(ids.indexOf(row.id)!= -1){ |
| | | return {checked:true}; |
| | | }}}, |
| | | {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券名称', field: 'name', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '适用范围', field: 'useScope', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "全国", 2: "指定城市", 3: "指定门店"}[value] |
| | | } |
| | | }, |
| | | {title: '优惠券类型', field: 'type', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "满减券", 2: "代金券", 3: "体验券"}[value] |
| | | }}, |
| | | {title: '发放方式', field: 'distributionMethod', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "积分购买", 2: "注册赠送", 3: "自动发券"}[value] |
| | | }}, |
| | | {title: '有效期', field: 'timeValue', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '用户人群', field: 'userPopulation', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "全部用户", 2: "年度会员", 3: "已有学员用户"}[value] |
| | | }}, |
| | | {title: '发放数量', field: 'quantityIssued', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '限领数量', field: 'pickUpQuantity', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '已领数量', field: 'hasPickQty', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '活动状态', field: 'status', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "未开始", 2: "已开始", 3: "已结束"}[value] |
| | | }}, |
| | | {title: '可售状态', field: 'state', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "上架", 2: "下架"}[value] |
| | | }}, |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TCoupon.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TCoupon.seItem = selected[0]; |
| | | TCoupon.seItem1 = selected; |
| | | |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 点击添加 |
| | | */ |
| | | TCoupon.openAdd = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCouponManage/coupon_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | |
| | | |
| | | TCoupon.backids = function (i) { |
| | | console.log("aaaaaa"+i) |
| | | if (this.check()) { |
| | | |
| | | var ids = TCoupon.seItem1.map(function(item) { |
| | | return item.id; |
| | | }).join(","); |
| | | |
| | | window.parent.document.getElementById("counpons"+i).value = ids; |
| | | |
| | | window.parent.layer.closeAll(); |
| | | } |
| | | |
| | | }; |
| | | |
| | | /** |
| | | * 点击编辑 |
| | | */ |
| | | TCoupon.openChange = function () { |
| | | if (this.check()){ |
| | | let id = TCoupon.seItem.id |
| | | let name = TCoupon.seItem.name |
| | | let quantityIssued = TCoupon.seItem.quantityIssued |
| | | let pickUpQuantity = TCoupon.seItem.pickUpQuantity |
| | | let illustrate = TCoupon.seItem.illustrate |
| | | let hasPickQty = TCoupon.seItem.hasPickQty |
| | | 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' + |
| | | ' <label class="form-control" id="name" >'+name+'</label> '+ |
| | | ' </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" id="num" value="'+quantityIssued+'" > '+ |
| | | ' </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" id="num1" value="'+pickUpQuantity+'" > '+ |
| | | ' </div>\n' + |
| | | ' </div>\n' + |
| | | ' <div class="form-group">\n' + |
| | | ' <label class="col-sm-3 control-label">优惠券说明:</label>\n' + |
| | | ' <div class="col-sm-9">\n' + |
| | | ' <textarea class="form-control" id="text" >'+illustrate+'</textarea> '+ |
| | | ' </div>\n' + |
| | | ' </div>\n' + |
| | | ' </div>' + |
| | | ' </div>' + |
| | | '</div>' |
| | | , btn: ['关闭', '保存'] |
| | | , btnAlign: 'c' //按钮居中 |
| | | , shade: 0.5 //不显示遮罩 |
| | | ,load:1 |
| | | , yes: function () { |
| | | layer.closeAll(); |
| | | }, |
| | | btn2:function () { |
| | | let num = $("#num").val() |
| | | if(num==''){ |
| | | Feng.info("请输入发放数量") |
| | | return false; |
| | | } |
| | | let num1 = $("#num1").val() |
| | | if(num1==''){ |
| | | Feng.info("请输入限领数量") |
| | | return false; |
| | | } |
| | | let text = $("#text").val() |
| | | if(text==''){ |
| | | Feng.info("请输入优惠券说明") |
| | | return false; |
| | | } |
| | | |
| | | if(num<hasPickQty){ |
| | | Feng.info("发放数量不能小于已领取数量") |
| | | return false; |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/tCouponManage/update", function (data) { |
| | | if (data.code == 200) { |
| | | Feng.success("操作成功!"); |
| | | window.location.reload(); |
| | | window.parent.layer.closeAll(); |
| | | } else if(data=="repeat"){ |
| | | window.location.reload(); |
| | | window.parent.layer.closeAll(); |
| | | Feng.error("请勿重复操作"); |
| | | }else { |
| | | return Feng.error(data.msg); |
| | | } |
| | | }, function (data) { |
| | | Feng.error("操作失败!") |
| | | window.location.reload(); |
| | | window.parent.layer.closeAll(); |
| | | return Feng.error("操作失败!"); |
| | | }); |
| | | ajax.set("id", id); |
| | | ajax.set("num", num); |
| | | ajax.set("num1", num1); |
| | | ajax.set("text", text); |
| | | ajax.start(); |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 上架 |
| | | */ |
| | | |
| | | |
| | | /** |
| | | * 下架 |
| | | */ |
| | | TCoupon.offShelf = function () { |
| | | |
| | | |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TCoupon.openDetail = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCouponManage/coupon_detail/' + TCoupon.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 打开领取记录 |
| | | */ |
| | | TCoupon.openCollectionRecord = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCouponManage/coupon_record/' + TCoupon.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | TCoupon.onShelf = function (e) { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tCouponManage/onShelf", function(data){ |
| | | if(data.code==200){ |
| | | Feng.success("操作成功!") |
| | | TCoupon.table.refresh(); |
| | | } |
| | | },function(data){ |
| | | Feng.error("操作失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("id",TCoupon.seItem.id) |
| | | ajax.set("type",e) |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TCoupon.search = function () { |
| | | var queryData = {}; |
| | | queryData['name'] = $("#name").val(); |
| | | queryData['type'] = $("#type").val(); |
| | | queryData['distributionMethod'] = $("#distributionMethod").val(); |
| | | queryData['userPopulation'] = $("#userPopulation").val(); |
| | | queryData['status'] = $("#status").val(); |
| | | queryData['state'] = $("#state").val(); |
| | | TCoupon.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 重置搜索 |
| | | */ |
| | | TCoupon.resetSearch = function () { |
| | | $("#name").val(''); |
| | | $("#type").val(''); |
| | | $("#distributionMethod").val(''); |
| | | $("#userPopulation").val(''); |
| | | $("#status").val(''); |
| | | $("#state").val(''); |
| | | TCoupon.search(); |
| | | }; |
| | | |
| | | $(function () { |
| | | var defaultColunms = TCoupon.initColumn(); |
| | | var table = new BSTable(TCoupon.id, "/tCouponManage/list", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TCoupon.table = table.init(); |
| | | }); |
| | |
| | | {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '日期', field: 'classDate', align: 'center', valign: 'middle'}, |
| | | {title: '报名学员', field: 'registered', align: 'center', valign: 'middle'}, |
| | | {title: '实到学员', field: 'actualArrival', align: 'center', valign: 'middle'}, |
| | | {title: '未到学员', field: 'nonArrival', align: 'center', valign: 'middle'}, |
| | | {title: '实到学员', field: 'actualArrival', align: 'center', valign: 'middle', |
| | | formatter: function (v, row) { |
| | | if (row.absencesNumber === undefined) { |
| | | return 0; |
| | | } else { |
| | | return v; |
| | | } |
| | | } |
| | | }, |
| | | {title: '未到学员', field: 'nonArrival', align: 'center', valign: 'middle', |
| | | formatter: function (v, row) { |
| | | if (row.absencesNumber === undefined) { |
| | | return 0; |
| | | } else { |
| | | return v; |
| | | } |
| | | } |
| | | }, |
| | | {title: '课后练习', field: 'courseId', align: 'center', valign: 'middle', |
| | | formatter: function (v) { |
| | | if(typeof v == "undefined"){ |
| | | if (typeof v === "undefined") { |
| | | return '未布置'; |
| | | }else{ |
| | | } else { |
| | | return '已布置'; |
| | | } |
| | | } |
| | |
| | | {title: '扣除课时', field: 'deductClassHour', align: 'center', valign: 'middle'}, |
| | | {title: '取消记录', field: 'absencesNumber', align: 'center', valign: 'middle', |
| | | formatter: function (v) { |
| | | if(typeof v == "undefined"){ |
| | | if (typeof v === "undefined") { |
| | | return '未上传'; |
| | | }else{ |
| | | } else { |
| | | return '已上传'; |
| | | } |
| | | } |
| | |
| | | }; |
| | | |
| | | |
| | | ClassRecord.cancellationRecord = function(){ |
| | | ClassRecord.cancellationRecord = function(i){ |
| | | if(this.check()){ |
| | | let htmlStr = |
| | | '<div class="form-horizontal">' + |
| | | |
| | | '<div class="form-horizontal">' + |
| | | ' <div class="col-sm-11" style="padding: 20px;">' + |
| | | ' <div class="form-group">\n' + |
| | | ' <label class="col-sm-2"></label>'+ |
| | |
| | | ' <div class="form-group">\n' + |
| | | ' <label class="col-sm-2"></label>'+ |
| | | ' <label class="control-label" style="text-align: left;">扣除课时数:</label>\n' + |
| | | ' <input id="deductClassHour" type="number" min="0" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;">' + |
| | | ' <input id="deductClassHour" value="'+i+'" type="number" min="0" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;">' + |
| | | ' </div>' + |
| | | ' </div>' + |
| | | '</div>'; |
| | |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | |
| | | |
| | | CoursePackage.addCoursePackage1 = function () { |
| | | let index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tStudent/openAddCoursePackage' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 点击修改按钮时 |
| | | * @param userId 管理员id |
| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | CoursePackage.resetSearch = function () { |
| | | $("#provinceCode").val(""); |
| | | $("#cityCode").val(""); |
| | |
| | | {title: '年龄', field: 'age', align: 'center', valign: 'middle'}, |
| | | {title: '性别', field: 'sex', align: 'center', valign: 'middle', |
| | | formatter: function (v) { |
| | | if(v == 1){ |
| | | if (v == 1) { |
| | | return '男'; |
| | | }else{ |
| | | } else { |
| | | return '女'; |
| | | } |
| | | } |
| | | }, |
| | | {title: '到课状态', field: 'signInOrNot', align: 'center', valign: 'middle', |
| | | formatter: function (v) { |
| | | switch (v) { |
| | | case 0: |
| | | return '未到'; |
| | | case 1: |
| | | return '已到'; |
| | | formatter: function (v, row) { |
| | | if (row.reservationStatus === 0) { |
| | | return '请假'; |
| | | } else { |
| | | switch (v) { |
| | | case 0: |
| | | return '旷课'; |
| | | case 1: |
| | | return '已到'; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | {title: '预定状态', field: 'reservationStatus', align: 'center', valign: 'middle', |
| | | {title: '预定状态', field: 'reservationStatus', align: 'center', valign: 'middle',hidden:true, |
| | | formatter: function (v) { |
| | | if(v == 0){ |
| | | if (v == 0) { |
| | | return '已取消'; |
| | | }else{ |
| | | } else { |
| | | return '正常'; |
| | | } |
| | | } |
| | |
| | | }; |
| | | |
| | | |
| | | CoursePackageInfo.openDia = function (i) { |
| | | |
| | | let index = layer.open({ |
| | | type: 2, |
| | | title: '编辑', |
| | | area: ['80%', '80%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/coursePackage/conpun/'+i |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | CoursePackageInfo.openDia1 = function (i) { |
| | | var ids = $("#counpons"+i).val() |
| | | |
| | | console.log($("#counpons"+i).val()) |
| | | let index = layer.open({ |
| | | type: 2, |
| | | title: '编辑', |
| | | area: ['80%', '80%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/coursePackage/conpun1'+'/'+i+'?conpunids='+ids |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | /** |
| | | * 提交添加用户 |
| | | */ |
| | |
| | | let siteId = $('#siteId').val(); |
| | | let coachId = $('#coachId').val(); |
| | | let maxSubscribeNumber = $('#maxSubscribeNumber').val(); |
| | | let classStartTime = $('#classStartTime').val(); |
| | | let codeTime = $('#codeTime').val(); |
| | | |
| | | // let classStartTime = JSON.stringify($('#classStartTime').val()); |
| | | |
| | | |
| | | var inputElements = document.querySelectorAll('input[name="classStartTime"]'); |
| | | let classStartTime = JSON.stringify(Array.from(inputElements).map(function(element) { |
| | | return element.value; |
| | | })) |
| | | |
| | | let classWeeks = ''; |
| | | $('input[name="classWeeks"]:checked').each(function (index, e) { |
| | | classWeeks += $(e).val() + ";"; |
| | |
| | | let sort = $('#sort').val(); |
| | | let validDays = $('#validDays').val(); |
| | | let price = []; |
| | | $('#price>.form-group').each(function (i, e) { |
| | | $('#price > .form-group').each(function (i, e) { |
| | | let classHours = $($(e).find(".classNumber_span input[class='classNumber']")[0]).val(); |
| | | let cash = $($(e).find(".cash_span input[class='cash']")[0]).val(); |
| | | let paiCoin = $($(e).find(".paiCoin_span input[class='paiCoin']")[0]).val(); |
| | | let counpons = $($(e).find(".counpons")).val(); |
| | | price.push({ |
| | | classHours: classHours, |
| | | cashPayment: typeof cash == "undefined" ? 0 : cash, |
| | | playPaiCoin: typeof paiCoin == "undefined" ? 0 : paiCoin |
| | | }) |
| | | playPaiCoin: typeof paiCoin == "undefined" ? 0 : paiCoin, |
| | | couponIds: typeof counpons == "undefined" ? 0 : counpons |
| | | }); |
| | | }); |
| | | if(null == provinceCode || '' == provinceCode){ |
| | | Feng.error("所在省不能为空"); |
| | |
| | | return |
| | | } |
| | | if(null == maxSubscribeNumber || '' == maxSubscribeNumber){ |
| | | Feng.error("最多预约人数不能为空"); |
| | | return |
| | | } |
| | | if(null == codeTime || '' == codeTime){ |
| | | Feng.error("最多预约人数不能为空"); |
| | | return |
| | | } |
| | |
| | | siteId: siteId, |
| | | coachId: coachId, |
| | | maxSubscribeNumber: maxSubscribeNumber, |
| | | classStartTime: classStartTime.split(" - ")[0], |
| | | classEndTime: classStartTime.split(" - ")[1], |
| | | classStartTime: classStartTime, |
| | | codeTime:codeTime, |
| | | // classStartTime: classStartTime.split(" - ")[0], |
| | | // classEndTime: classStartTime.split(" - ")[1], |
| | | classWeeks: classWeeks, |
| | | coverDrawing: coverDrawing, |
| | | detailDrawing: detailDrawing, |
| | |
| | | let siteId = $('#siteId').val(); |
| | | let coachId = $('#coachId').val(); |
| | | let maxSubscribeNumber = $('#maxSubscribeNumber').val(); |
| | | let codeTime = $('#codeTime').val(); |
| | | |
| | | let classStartTime = $('#classStartTime').val(); |
| | | let classWeeks = ''; |
| | | $('input[name="classWeeks"]:checked').each(function (index, e) { |
| | |
| | | let introduceDrawing = $('#introduceDrawing').val(); |
| | | let sort = $('#sort').val(); |
| | | let validDays = $('#validDays').val(); |
| | | // let counpons = $($(e).find(".counpons")).val(); |
| | | |
| | | let price = []; |
| | | $('#price>.form-group').each(function (i, e) { |
| | | let classHours = $($(e).find(".classNumber_span input[class='classNumber']")[0]).val(); |
| | | let cash = $($(e).find(".cash_span input[class='cash']")[0]).val(); |
| | | let paiCoin = $($(e).find(".paiCoin_span input[class='paiCoin']")[0]).val(); |
| | | let counpons = $($(e).find(".counpons")).val(); |
| | | |
| | | price.push({ |
| | | classHours: classHours, |
| | | cashPayment: typeof cash == "undefined" ? 0 : cash, |
| | | playPaiCoin: typeof paiCoin == "undefined" ? 0 : paiCoin |
| | | playPaiCoin: typeof paiCoin == "undefined" ? 0 : paiCoin, |
| | | couponIds: typeof counpons == "undefined" ? 0 : counpons |
| | | |
| | | }) |
| | | }); |
| | | if(null == provinceCode || '' == provinceCode){ |
| | |
| | | } |
| | | if(null == maxSubscribeNumber || '' == maxSubscribeNumber){ |
| | | Feng.error("最多预约人数不能为空"); |
| | | return |
| | | } if(null == codeTime || '' == codeTime){ |
| | | Feng.error("扣除课时不能为空"); |
| | | return |
| | | } |
| | | if(null == classStartTime || '' == classStartTime){ |
| | |
| | | siteId: siteId, |
| | | coachId: coachId, |
| | | maxSubscribeNumber: maxSubscribeNumber, |
| | | codeTime: codeTime, |
| | | |
| | | classStartTime: classStartTime.split(" - ")[0], |
| | | classEndTime: classStartTime.split(" - ")[1], |
| | | classWeeks: classWeeks, |
| | |
| | | paiCoin = true; |
| | | } |
| | | }) |
| | | |
| | | var i = $('#price > div').length+1 |
| | | let htmlStr = '' + |
| | | '<div class="form-group">\n' + |
| | | ' <label class="col-sm-3 control-label">*课时数:</label>\n' + |
| | |
| | | if(paiCoin){ |
| | | htmlStr += '玩湃币支付:<input class="paiCoin" type="number" min="0" placeholder="请输入金额" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> 币 \n'; |
| | | } |
| | | htmlStr += '</span> <i class="fa fa-trash-o" style="font-size:24px" onclick="removePrice(this)"></i>\n' + |
| | | '</div>\n' + |
| | | htmlStr += '<button type="button" class="btn btn-info " onclick="CoursePackageInfo.openDia('+i+')" id="ensure">\n' + |
| | | ' <i class="fa fa-check"></i> 优惠卷\n' + |
| | | '</button>'; |
| | | |
| | | htmlStr += '</span> <i class="fa fa-trash-o" style="font-size:24px" onclick="removePrice(this)"></i>\n' + |
| | | '</div>\n' +'<input type="text" class = "counpons" id = "counpons'+i+'" >'+i+ |
| | | '</div>'; |
| | | $('#price').append(htmlStr); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | function removePrice(e){ |
| | | $(e).parent('div').parent('div').remove(); |
| | | } |
| | |
| | | */ |
| | | RegistrationRecord.initColumn = function () { |
| | | let columns = [ |
| | | {field: 'selectItem', radio: true}, |
| | | {field: 'selectItem', checkbox: true}, |
| | | {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '购买用户', field: 'userName', align: 'center', valign: 'middle'}, |
| | | {title: '联系方式', field: 'phone', align: 'center', valign: 'middle'}, |
| | |
| | | return false; |
| | | } else { |
| | | RegistrationRecord.seItem = selected[0]; |
| | | RegistrationRecord.seItem1 = selected; |
| | | |
| | | return true; |
| | | } |
| | | }; |
| | |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | |
| | | RegistrationRecord.holiClass = function () { |
| | | if (this.check()) { |
| | | var ids = RegistrationRecord.seItem1.map(function(item) { |
| | | return item.id; |
| | | }).join(","); |
| | | let index = layer.open({ |
| | | type: 2, |
| | | title: '报名信息', |
| | | area: ['50%', '50%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tStudent/TTT?ids='+ids+'&id='+$('#id').val() |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | RegistrationRecord.transClass = function () { |
| | | if (this.check()) { |
| | | var ids = RegistrationRecord.seItem1.map(function(item) { |
| | | return item.id; |
| | | }).join(","); |
| | | let index = layer.open({ |
| | | type: 2, |
| | | title: '报名信息', |
| | | area: ['50%', '50%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tStudent/trans?ids='+ids+'&id='+$('#id').val() |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 点击修改按钮时 |
| | | * @param userId 管理员id |
| | |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | TCompetition.openTCompetitionDetail1 = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title:'编辑', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tShop/tShop_update1/' + TCompetition.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | TCompetition.info = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | TCompetition.del = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/del", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TCompetition.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("id",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | TCompetition.unfreeze = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/unfreeze", function (data) { |
| | |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | TCompetition.unfreeze1 = function (e) { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/unfreeze1", function (data) { |
| | | Feng.success("操作成功!"); |
| | | TCompetition.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("操作失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("id",this.seItem.id); |
| | | ajax.set("type",e); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | TCompetition.reload = function () { |
| | | if (this.check()) { |
| | | let id = this.seItem.id |
| | |
| | | |
| | | TCompetition.delete1= function (e) { |
| | | console.log(e) |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/deleteOne", function (data) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/deleteTwo", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TCompetition.table.refresh(); |
| | | }, function (data) { |
| | |
| | | ajax.set("id",$("#id").val()); |
| | | ajax.start(); |
| | | } |
| | | |
| | | |
| | | |
| | | TCompetition.close = function() { |
| | | parent.layer.close(window.parent.TCompetition.layerIndex); |
| | | } |
New file |
| | |
| | | /** |
| | | * 车辆管理管理初始化 |
| | | */ |
| | | var TCompetition = { |
| | | id: "TCompetitionOtherTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | var language =1 |
| | | var role =1 |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TCompetition.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle', |
| | | }, |
| | | {title: '图片', field: 'url', visible: role==1?true:false, align: 'center', valign: 'middle', |
| | | }, |
| | | {title: '跳转模块', field: 'name', visible: role==1?true:false, align: 'center', valign: 'middle', |
| | | }, |
| | | {title: '跳转页面', field: 'page', visible: role==1?true:false, align: 'center', valign: 'middle', |
| | | }, |
| | | {title: '排序', field: 'sort', visible: role==1?true:false, align: 'center', valign: 'middle', |
| | | }, |
| | | {title: '操作', visible: role==1?true:false, align: 'center', valign: 'middle', |
| | | formatter:function (value,row) { |
| | | return '<a href="javascript:void(0);" style="color: blue" onclick="TCompetition.delete1(' + row.id +')">删除 </a> <a href="javascript:void(0);" style="color: blue" onclick="TCompetition.openTCompetitionDetail(' + row.id +')">编辑</a>' |
| | | } |
| | | }, |
| | | ]; |
| | | }; |
| | | function currentTime(timestamp){ |
| | | var time = timestamp + ''; |
| | | if(time.length != 13){ |
| | | timestamp = timestamp * 1000; |
| | | } |
| | | var date = new Date(timestamp);; |
| | | var Y = date.getFullYear() + '-'; |
| | | var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; |
| | | var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' '; |
| | | |
| | | var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':'; |
| | | var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':'; |
| | | var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds()); |
| | | var strDate = Y + M + D + h + m + s; |
| | | return strDate |
| | | } |
| | | |
| | | function currentTime1(timestamp){ |
| | | var time = timestamp + ''; |
| | | if(time.length != 13){ |
| | | timestamp = timestamp * 1000; |
| | | } |
| | | var date = new Date(timestamp);; |
| | | var Y = date.getFullYear() + '-'; |
| | | var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; |
| | | var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' '; |
| | | |
| | | var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':'; |
| | | var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':'; |
| | | var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds()); |
| | | var strDate = Y + M + D ; |
| | | return strDate |
| | | } |
| | | |
| | | TCompetition.delete1= function (e) { |
| | | console.log(e) |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/deleteTwo", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TCompetition.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("id",e); |
| | | ajax.start(); |
| | | } |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TCompetition.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TCompetition.seItem = selected[0]; |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 点击添加车辆管理 |
| | | */ |
| | | TCompetition.openAdd = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加内容', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tShop/tShop_add_two?id='+$("#id").val() |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看车辆管理详情 |
| | | */ |
| | | TCompetition.openTCompetitionDetail = function (e) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title:'编辑', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tShop/tShop_update_one1/' + e |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | TCompetition.info = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title:'详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tShop/tShop_info/' + TCompetition.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | TCompetition.gift = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title:'免费福利', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tShop/tShop_gift/' + TCompetition.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | TCompetition.indexSet = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title:'首页设置', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tShop/tShop_indexSet/' + TCompetition.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 删除车辆管理 |
| | | */ |
| | | TCompetition.delete = function () { |
| | | if (this.check()) { |
| | | var nickname = TCompetition.seItem.carLicensePlate; |
| | | if (nickname == "" || nickname == null || nickname == undefined){ |
| | | nickname = "该车辆"; |
| | | }else{ |
| | | nickname = "【"+nickname+"】"; |
| | | } |
| | | swal({ |
| | | title: language==1?"您是否确认删除" + nickname + "?":(language==2?"Are you sure to delete the" + nickname + "?":"Apakah Anda pasti akan menghapus" + nickname + "?"), |
| | | text: language==1?"请谨慎操作!":(language==2?' Please operate with caution!':'Harap beroperasi dengan hati -hati!'), |
| | | type: "warning", |
| | | showCancelButton: true, |
| | | confirmButtonColor: "#DD6B55", |
| | | confirmButtonText: language==1?"删除":(language==2?'Delete':'Hapus'), |
| | | closeOnConfirm: true |
| | | }, function () { |
| | | var ajax = new $ax(Feng.ctxPath + "/TCompetition/delete", function (data) { |
| | | if(language==1){ |
| | | swal("删除成功", "您已经成功删除了" + nickname + "。", "success"); |
| | | }else if(language==2){ |
| | | swal("Delete succeeded!", "You have successfully deleted it" + nickname + "。", "success"); |
| | | }else { |
| | | swal("Hapus berhasil!", "Anda berhasil menghapus" + nickname + "。", "success"); |
| | | } |
| | | TCompetition.table.refresh(); |
| | | }, function (data) { |
| | | if(language==1){ |
| | | swal("删除失败", data.responseJSON.message + "!", "warning"); |
| | | }else if(language==2){ |
| | | swal("Failed to delete", data.responseJSON.message + "!", "warning"); |
| | | }else { |
| | | swal("Hapus Gagal", data.responseJSON.message + "!", "warning"); |
| | | } |
| | | |
| | | }); |
| | | ajax.set("TCompetitionId",TCompetition.seItem.id); |
| | | ajax.start(); |
| | | }); |
| | | } |
| | | }; |
| | | TCompetition.oneChange = function (e) { |
| | | console.log(111) |
| | | var oneId=$(e).val(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange", function(data){ |
| | | if(data!=null){ |
| | | if(language==1){ |
| | | var content='<option value="">选择市</option>'; |
| | | }else if(language==2){ |
| | | var content='<option value="">Choose your franchisee</option>'; |
| | | }else { |
| | | var content='<option value="">Pilih franchisee Anda</option>'; |
| | | } |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.code+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#cCode").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("oneId",oneId); |
| | | ajax.start(); |
| | | } |
| | | TCompetition.oneChangeNext = function (e) { |
| | | var oneId=$(e).val(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tCompetition/oneChangeNext", function(data){ |
| | | if(data!=null){ |
| | | if(language==1){ |
| | | var content='<option value="">选择账号</option>'; |
| | | }else if(language==2){ |
| | | var content='<option value="">Choose your franchisee</option>'; |
| | | }else { |
| | | var content='<option value="">Pilih franchisee Anda</option>'; |
| | | } |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.id+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#account").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("oneId",oneId); |
| | | ajax.start(); |
| | | } |
| | | |
| | | TCompetition.freeze = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/freeze", function (data) { |
| | | Feng.success("冻结成功!"); |
| | | TCompetition.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("冻结失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("id",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | TCompetition.unfreeze = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/unfreeze", function (data) { |
| | | Feng.success("解冻成功!"); |
| | | TCompetition.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("解冻失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("id",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | TCompetition.reload = function () { |
| | | if (this.check()) { |
| | | let id = this.seItem.id |
| | | var operation = function(){ |
| | | var ajax = new $ax(Feng.ctxPath + "/tCity/pwd", function (data) { |
| | | Feng.success("重置成功!"); |
| | | TCompetition.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("重置失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("id",id); |
| | | ajax.start(); |
| | | } |
| | | Feng.confirm("确认重置密码?重置后密码为:a123456", operation); |
| | | } |
| | | |
| | | }; |
| | | |
| | | TCompetition.saveAllImg = function (e) { |
| | | var id = $("#id").val() |
| | | var px1 = $("#px1").val() |
| | | var px2 = $("#px2").val() |
| | | var px3 = $("#px3").val() |
| | | var px4 = $("#px4").val() |
| | | var px5 = $("#px5").val() |
| | | var px6 = $("#px6").val() |
| | | var px7 = $("#px7").val() |
| | | var px8 = $("#px8").val() |
| | | var c1 = $("#c1").val() |
| | | var c2 = $("#c2").val() |
| | | var c3 = $("#c3").val() |
| | | var c4 = $("#c4").val() |
| | | var c5 = $("#c5").val() |
| | | var c6 = $("#c6").val() |
| | | var c7 = $("#7").val() |
| | | var c8 = $("#c8").val() |
| | | var r1 = document.querySelector('input[name="r1"]').checked; |
| | | var r2 = document.querySelector('input[name="r2"]').checked; |
| | | var r3 = document.querySelector('input[name="r3"]').checked; |
| | | var r4 = document.querySelector('input[name="r4"]').checked; |
| | | var r5 = document.querySelector('input[name="r5"]').checked; |
| | | var r6 = document.querySelector('input[name="r6"]').checked; |
| | | var r7 = document.querySelector('input[name="r7"]').checked; |
| | | var r8 = document.querySelector('input[name="r8"]').checked; |
| | | if(r1){ |
| | | r1 =1 |
| | | }else{ |
| | | r1=0 |
| | | } |
| | | if(r2){ |
| | | r2 =1 |
| | | }else{ |
| | | r2=0 |
| | | } |
| | | if(r3){ |
| | | r3 =1 |
| | | }else{ |
| | | r3=0 |
| | | } |
| | | if(r4){ |
| | | r4 =1 |
| | | }else{ |
| | | r4=0 |
| | | } |
| | | if(r5){ |
| | | r5 =1 |
| | | }else{ |
| | | r5=0 |
| | | } |
| | | if(r6){ |
| | | r6 =1 |
| | | }else{ |
| | | r6=0 |
| | | } |
| | | if(r7){ |
| | | r7 =1 |
| | | }else{ |
| | | r7=0 |
| | | } |
| | | if(r8){ |
| | | r8 =1 |
| | | }else{ |
| | | r8=0 |
| | | } |
| | | |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/saveImgAll", function(data){ |
| | | if(data.code == 200){ |
| | | Feng.success("保存成功!"); |
| | | }else{ |
| | | Feng.error(data.msg); |
| | | } |
| | | },function(data){ |
| | | Feng.error("保存失败!" + data.responseJSON.message + "!"); |
| | | |
| | | }); |
| | | ajax.set("id",id); |
| | | ajax.set("px1",px1); |
| | | ajax.set("px2",px2); |
| | | ajax.set("px3",px3); |
| | | ajax.set("px4",px4); |
| | | ajax.set("px5",px5); |
| | | ajax.set("px6",px6); |
| | | ajax.set("px7",px7); |
| | | ajax.set("px8",px8); |
| | | ajax.set("c1",c1); |
| | | ajax.set("c2",c2); |
| | | ajax.set("c3",c3); |
| | | ajax.set("c4",c4); |
| | | ajax.set("c5",c5); |
| | | ajax.set("c6",c6); |
| | | ajax.set("c7",c7); |
| | | ajax.set("c8",c8); |
| | | ajax.set("r1",r1); |
| | | ajax.set("r2",r2); |
| | | ajax.set("r3",r3); |
| | | ajax.set("r4",r4); |
| | | ajax.set("r5",r5); |
| | | ajax.set("r6",r6); |
| | | ajax.set("r7",r7); |
| | | ajax.set("r8",r8); |
| | | ajax.start(); |
| | | } |
| | | |
| | | TCompetition.carInsurance = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: language==1?'车辆保险':(language==2?'Vehicle insurance':'Asuransi kendaraan'), |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/TCompetition/carInsurance?carId=' + TCompetition.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 查询车辆管理列表 |
| | | */ |
| | | TCompetition.search = function () { |
| | | var queryData = {}; |
| | | queryData['provinceCode'] = $("#pCode").val(); |
| | | queryData['cityCode'] = $("#cCode").val(); |
| | | queryData['name'] = $("#name").val(); |
| | | queryData['phone'] = $("#phone").val(); |
| | | queryData['shopName'] = $("#shopName").val(); |
| | | TCompetition.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | TCompetition.resetSearch = function () { |
| | | $("#pCode").val(""); |
| | | $("#cCode").val(""); |
| | | $("#name").val(""); |
| | | $("#phone").val(""); |
| | | $("#shopName").val(""); |
| | | TCompetition.search(); |
| | | }; |
| | | |
| | | $(function () { |
| | | var defaultColunms = TCompetition.initColumn(); |
| | | |
| | | // 初始化图片上传 |
| | | var carPhoto = new $WebUpload("url"); |
| | | carPhoto.setUploadBarId("progressBar"); |
| | | carPhoto.init(); |
| | | var carPhoto = new $WebUpload("c2"); |
| | | carPhoto.setUploadBarId("progressBar"); |
| | | carPhoto.init(); |
| | | var carPhoto = new $WebUpload("c3"); |
| | | carPhoto.setUploadBarId("progressBar"); |
| | | carPhoto.init(); |
| | | var carPhoto = new $WebUpload("c4"); |
| | | carPhoto.setUploadBarId("progressBar"); |
| | | carPhoto.init(); |
| | | var carPhoto = new $WebUpload("c5"); |
| | | carPhoto.setUploadBarId("progressBar"); |
| | | carPhoto.init(); |
| | | var carPhoto = new $WebUpload("c6"); |
| | | carPhoto.setUploadBarId("progressBar"); |
| | | carPhoto.init(); |
| | | var carPhoto = new $WebUpload("c7"); |
| | | carPhoto.setUploadBarId("progressBar"); |
| | | carPhoto.init(); |
| | | var carPhoto = new $WebUpload("c8"); |
| | | carPhoto.setUploadBarId("progressBar"); |
| | | carPhoto.init(); |
| | | var carPhoto = new $WebUpload("img"); |
| | | carPhoto.setUploadBarId("progressBar"); |
| | | carPhoto.init(); |
| | | var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto"); |
| | | drivingLicensePhoto.setUploadBarId("progressBar"); |
| | | drivingLicensePhoto.init(); |
| | | |
| | | var table = new BSTable(TCompetition.id, "/tShop/listTwo1?id="+$("#id").val(), defaultColunms); |
| | | table.setPaginationType("server"); |
| | | TCompetition.table = table.init(); |
| | | }); |
| | | |
| | | /** |
| | | * 下载模板 |
| | | */ |
| | | TCompetition.uploadCarModel = function () { |
| | | window.location.href = Feng.ctxPath + "/TCompetition/uploadCarModel"; |
| | | } |
| | | |
| | | var agreement = function(){ |
| | | this.init = function(){ |
| | | //模拟上传excel |
| | | $("#uploadEventBtn").unbind("click").bind("click",function(){ |
| | | $("#uploadEventFile").click(); |
| | | }); |
| | | }; |
| | | } |
| | | /** |
| | | * 导入合同 |
| | | */ |
| | | TCompetition.exporTCompetition = function () { |
| | | var uploadEventFile = $("#uploadEventFile").val(); |
| | | if(uploadEventFile == ''){ |
| | | if(language==1){ |
| | | Feng.info("请选择Excel,再上传"); |
| | | }else if(language==2){ |
| | | Feng.info("Please select Excel and upload"); |
| | | }else { |
| | | Feng.info("Silakan pilih Excel dan upload"); |
| | | } |
| | | }else if(uploadEventFile.lastIndexOf(".xls")<0){//可判断以.xls和.xlsx结尾的excel |
| | | if(language==1){ |
| | | Feng.info("只能上传Excel文件"); |
| | | }else if(language==2){ |
| | | Feng.info("Only Excel files can be uploaded"); |
| | | }else { |
| | | Feng.info("Hanya berkas Excel yang dapat diunggah"); |
| | | } |
| | | }else{ |
| | | var url = Feng.ctxPath + '/TCompetition/exporTCompetition'; |
| | | var file = document.querySelector('input[name=file]').files[0]; |
| | | var reader = new FileReader(); |
| | | if (file) { |
| | | var formData = new FormData(); |
| | | formData.append("myfile", file); |
| | | this.sendAjaxRequest(url, 'POST', formData); |
| | | } |
| | | } |
| | | } |
| | | TCompetition.sendAjaxRequest = function(url,type,data){ |
| | | $.ajax({ |
| | | url : url, |
| | | type : type, |
| | | data : data, |
| | | success : function(result) { |
| | | if(result.code==500) { |
| | | Feng.info(result.message); |
| | | }else { |
| | | if(language==1){ |
| | | Feng.success("导入成功!"); |
| | | }else if(language==2){ |
| | | Feng.success("SUCCESSFUL IMPORT!"); |
| | | }else { |
| | | Feng.success("Import berhasil!"); |
| | | } |
| | | } |
| | | TCompetition.table.refresh(); |
| | | }, |
| | | error : function() { |
| | | if(language==1){ |
| | | Feng.error("excel上传失败!"); |
| | | }else if(language==2){ |
| | | Feng.error("Uploading excel Fails. Procedure!"); |
| | | }else { |
| | | Feng.error("Gagal mengunggah excel!"); |
| | | } |
| | | }, |
| | | cache : false, |
| | | contentType : false, |
| | | processData : false |
| | | }); |
| | | }; |
| | | |
| | | var agreement; |
| | | $(function(){ |
| | | agreement = new agreement(); |
| | | agreement.init(); |
| | | }); |
| | | |
| | | /** |
| | | * 导出车辆操作 |
| | | */ |
| | | TCompetition.ouTCompetition = function () { |
| | | var operation = function() { |
| | | window.location.href = Feng.ctxPath + "/TCompetition/ouTCompetition"; |
| | | }; |
| | | if(language==1){ |
| | | Feng.confirm("是否确认导出车辆信息?", operation); |
| | | }else if(language==2){ |
| | | Feng.confirm("Are you sure to export vehicle information?", operation); |
| | | }else { |
| | | Feng.confirm("Apakah Anda pasti akan mengekspor informasi kendaraan?", operation); |
| | | } |
| | | } |
| | | |
| | | TCompetition.addSubmit = function() { |
| | | |
| | | let url = $("#url").val() |
| | | if(url==''){ |
| | | Feng.info("请上传图片") |
| | | return; |
| | | } |
| | | |
| | | let name = $("#name").val() |
| | | console.log(name) |
| | | |
| | | if(name=='' || name ==null){ |
| | | Feng.info("请选择跳转模块") |
| | | return; |
| | | } |
| | | let page = $("#page").val() |
| | | if(page=='' && name !='不跳转'){ |
| | | Feng.info("请选择跳转页面") |
| | | return; |
| | | } |
| | | let type = $("#type").val() |
| | | |
| | | if(type=='' && name !='不跳转'){ |
| | | } |
| | | let turnId = $("#turnId").val() |
| | | |
| | | if( type =='11' || type=='13'|| type=='16'|| type=='19'|| type=='21'|| type=='40'|| type=='43'){ |
| | | Feng.info("请输入跳转ID") |
| | | return; |
| | | } |
| | | let sort = $("#sort").val() |
| | | |
| | | if(sort==''){ |
| | | Feng.info("请输入排序") |
| | | return; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/addConfigOne", function(data){ |
| | | if(data.code == 200){ |
| | | Feng.success("添加成功!"); |
| | | window.parent.TCompetition.table.refresh(); |
| | | parent.layer.close(window.parent.TCompetition.layerIndex); |
| | | }else{ |
| | | Feng.error(data.msg); |
| | | } |
| | | |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("url",url); |
| | | ajax.set("name",name); |
| | | ajax.set("page",page); |
| | | ajax.set("type",type); |
| | | ajax.set("turnId",turnId); |
| | | ajax.set("sort",sort); |
| | | ajax.start(); |
| | | } |
| | | |
| | | TCompetition.addSubmit1 = function() { |
| | | |
| | | let url = $("#url").val() |
| | | if(url==''){ |
| | | } |
| | | |
| | | let name = $("#name").val() |
| | | console.log(name) |
| | | |
| | | if(name=='' || name ==null){ |
| | | Feng.info("请选择跳转模块") |
| | | return; |
| | | } |
| | | let page = $("#page").val() |
| | | if(page=='' && name !='不跳转'){ |
| | | Feng.info("请选择跳转页面") |
| | | return; |
| | | } |
| | | let type = $("#type").val() |
| | | |
| | | if(type=='' && name !='不跳转'){ |
| | | } |
| | | let turnId = $("#turnId").val() |
| | | |
| | | if( type =='11' || type=='13'|| type=='16'|| type=='19'|| type=='21'|| type=='40'|| type=='43'){ |
| | | if(turnId==""){ |
| | | Feng.info("请输入跳转ID") |
| | | return; |
| | | } |
| | | } |
| | | let sort = $("#sort").val() |
| | | |
| | | if(sort==''){ |
| | | Feng.info("请输入排序") |
| | | return; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/updateConfigOne", function(data){ |
| | | if(data.code == 200){ |
| | | Feng.success("添加成功!"); |
| | | window.parent.TCompetition.table.refresh(); |
| | | parent.layer.close(window.parent.TCompetition.layerIndex); |
| | | }else{ |
| | | Feng.error(data.msg); |
| | | } |
| | | |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("url",url); |
| | | ajax.set("name",name); |
| | | ajax.set("page",page); |
| | | ajax.set("type",type); |
| | | ajax.set("turnId",turnId); |
| | | ajax.set("sort",sort); |
| | | ajax.set("id",$("#id").val()); |
| | | ajax.start(); |
| | | } |
| | | TCompetition.addSubmit2 = function() { |
| | | |
| | | |
| | | let name = $("#name").val() |
| | | |
| | | if(name=='' || name ==null){ |
| | | Feng.info("请填写板块名称") |
| | | return; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/addConfig", function(data){ |
| | | if(data.code == 200){ |
| | | Feng.success("添加成功!"); |
| | | window.parent.TCompetition.table.refresh(); |
| | | parent.layer.close(window.parent.TCompetition.layerIndex); |
| | | }else{ |
| | | Feng.error(data.msg); |
| | | } |
| | | |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("name",name); |
| | | ajax.set("id",$("#id").val()); |
| | | ajax.start(); |
| | | } |
| | | TCompetition.addSubmit3 = function() { |
| | | |
| | | let url = $("#url").val() |
| | | if(url==''){ |
| | | } |
| | | |
| | | let name = $("#name").val() |
| | | console.log(name) |
| | | |
| | | if(name=='' || name ==null){ |
| | | Feng.info("请选择跳转模块") |
| | | return; |
| | | } |
| | | let page = $("#page").val() |
| | | if(page=='' && name !='不跳转'){ |
| | | Feng.info("请选择跳转页面") |
| | | return; |
| | | } |
| | | let type = $("#type").val() |
| | | |
| | | if(type=='' && name !='不跳转'){ |
| | | } |
| | | let turnId = $("#turnId").val() |
| | | |
| | | if( type =='11' || type=='13'|| type=='16'|| type=='19'|| type=='21'|| type=='40'|| type=='43'){ |
| | | if(turnId==""){ |
| | | Feng.info("请输入跳转ID") |
| | | return; |
| | | } |
| | | } |
| | | let sort = $("#sort").val() |
| | | |
| | | if(sort==''){ |
| | | Feng.info("请输入排序") |
| | | return; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/updateConfigOne3", function(data){ |
| | | if(data.code == 200){ |
| | | Feng.success("添加成功!"); |
| | | window.parent.TCompetition.table.refresh(); |
| | | parent.layer.close(window.parent.TCompetition.layerIndex); |
| | | }else{ |
| | | Feng.error(data.msg); |
| | | } |
| | | |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("url",url); |
| | | ajax.set("name",name); |
| | | ajax.set("page",page); |
| | | ajax.set("type",type); |
| | | ajax.set("turnId",turnId); |
| | | ajax.set("sort",sort); |
| | | ajax.set("id",$("#id").val()); |
| | | ajax.start(); |
| | | } |
| | | |
| | | |
| | | TCompetition.addSubmit4 = function() { |
| | | |
| | | |
| | | let name = $("#name").val() |
| | | |
| | | if(name=='' || name ==null){ |
| | | Feng.info("请填写板块名称") |
| | | return; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/addConfig1", function(data){ |
| | | if(data.code == 200){ |
| | | Feng.success("添加成功!"); |
| | | window.parent.TCompetition.table.refresh(); |
| | | parent.layer.close(window.parent.TCompetition.layerIndex); |
| | | }else{ |
| | | Feng.error(data.msg); |
| | | } |
| | | |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("name",name); |
| | | ajax.set("id",$("#id").val()); |
| | | ajax.start(); |
| | | } |
| | | TCompetition.close = function() { |
| | | parent.layer.close(window.parent.TCompetition.layerIndex); |
| | | } |
| | |
| | | let img = $("#img").val() |
| | | |
| | | |
| | | let imgOne = $("#imgOne").val() |
| | | |
| | | if(imgOne==''){ |
| | | var goodImgs = this.goodsPicArray; |
| | | if(goodImgs.length==0){ |
| | | Feng.info("请上传实景图") |
| | | return; |
| | | } |
| | | var imgOne =""; |
| | | for (let i = 0; i <goodImgs.length; i++) { |
| | | if(i==goodImgs.length-1){ |
| | | imgOne += (goodImgs[i].response) |
| | | }else { |
| | | imgOne+=(goodImgs[i].response+",") |
| | | } |
| | | |
| | | } |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/update", function(data){ |
| | |
| | | ajax.set("userPhone",userPhone); |
| | | ajax.set("coverDrawing",img); |
| | | ajax.set("realPicture",imgOne); |
| | | ajax.set("lat",$("#latitude").val()); |
| | | ajax.set("lon",$("#longitude").val()); |
| | | ajax.set("id",$("#id").val()); |
| | | ajax.set("ids",$("#ids").val()); |
| | | ajax.set("type",OBJradio); |
| | | ajax.set("yyId",$("#account").val()); |
| | | ajax.start(); |
| | | } |
| | | |
| | |
| | | $("#kcModelDiv").hide(); |
| | | } |
| | | } |
| | | |
| | | |
| | | TCarInfoDlg.oneChange1 = function (e) { |
| | | console.log(111) |
| | | var oneId=$(e).val(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/onChange1", function(data){ |
| | | if(data!=null){ |
| | | if(language==1){ |
| | | var content='<option value="">选择省</option>'; |
| | | }else if(language==2){ |
| | | var content='<option value="">Choose your franchisee</option>'; |
| | | }else { |
| | | var content='<option value="">Pilih franchisee Anda</option>'; |
| | | } |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.id+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#pCode").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("oneId",oneId); |
| | | ajax.start(); |
| | | } |
| | | TCarInfoDlg.oneChange2 = function (e) { |
| | | console.log(111) |
| | | var oneId=$(e).val(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/onChange2", function(data){ |
| | | if(data!=null){ |
| | | if(language==1){ |
| | | var content='<option value="">选择市</option>'; |
| | | }else if(language==2){ |
| | | var content='<option value="">Choose your franchisee</option>'; |
| | | }else { |
| | | var content='<option value="">Pilih franchisee Anda</option>'; |
| | | } |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.id+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#cCode").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("oneId",oneId); |
| | | ajax.start(); |
| | | } |
| | |
| | | ajax.set("oneId",oneId); |
| | | ajax.start(); |
| | | } |
| | | |
| | | TCarInfoDlg.oneChangeNext = function (e) { |
| | | var oneId=$(e).val(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/oneChangeNext", function(data){ |
| | |
| | | ajax.set("province",oneId); |
| | | ajax.start(); |
| | | }; |
| | | TSite.oneChangeYys = function(e){ |
| | | var oneId=$(e).val(); |
| | | var SelectValue=""; |
| | | var getSelectValueMenbers = $("input[name='pt']:checked").each(function(j) { |
| | | if (j >= 0) { |
| | | SelectValue += $(this).val() |
| | | } |
| | | }); |
| | | if(SelectValue=='0' ){ |
| | | oneId=0 |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/tSite/getChangeOne", function(data){ |
| | | if(data!=null){ |
| | | var content='<option value="">选择门店</option>'; |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.id+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#store").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("oneId",oneId); |
| | | ajax.start(); |
| | | }; |
| | | // 场地管理首页 选择对应的省市 |
| | | // 传1是场地管理首页 传2是场地管理添加页面 |
| | | TSite.oneChange = function (e) { |
| | |
| | | managementPlan:"", |
| | | operatorId:"", |
| | | typeName:"", |
| | | nextName:"" |
| | | nextName:"", |
| | | ishalf:"", |
| | | cashPriceOne:"", |
| | | playPaiCoinOne:"", |
| | | halfName:"", |
| | | introduce:"", |
| | | imgs:"", |
| | | ids:"" |
| | | }; |
| | | data.province = $("#pCode").val() |
| | | data.city = $("#cCode").val() |
| | |
| | | let num24 = $('input[name="name1"]'); |
| | | var nextName=""; |
| | | for (let i = 0; i < num24.length; i++) { |
| | | if(console.log($(num24[i]).val()=='')){ |
| | | if($(num24[i]).val()==''){ |
| | | Feng.info("请填写场地名称") |
| | | return; |
| | | } |
| | |
| | | nextName += $(num24[i]).val()+"," |
| | | } |
| | | } |
| | | console.log(nextName) |
| | | data.nextName= nextName; |
| | | |
| | | |
| | | var ishalf= $("input[name='ishalf']:checked").val(); |
| | | data.ishalf= ishalf; |
| | | var halfName=""; |
| | | if(ishalf==1){ |
| | | let cashPriceOne = $("#cashPriceOne").val() |
| | | if(cashPriceOne=='' ){ |
| | | Feng.info("请填写现金价格") |
| | | return; |
| | | } |
| | | data.cashPriceOne= cashPriceOne; |
| | | |
| | | if($("#account").val()=='' ){ |
| | | Feng.info("请选择账号") |
| | | let playPaiCoinOne = $("#playPaiCoinOne").val() |
| | | if(playPaiCoinOne=='' ){ |
| | | Feng.info("请填写玩湃币价格") |
| | | return; |
| | | } |
| | | |
| | | data.playPaiCoinOne= playPaiCoinOne; |
| | | let num2 = $('input[name="name2"]'); |
| | | for (let i = 0; i < num2.length; i++) { |
| | | if($(num2[i]).val()==''){ |
| | | Feng.info("请填写半场名称") |
| | | return; |
| | | } |
| | | if(i==num2.length-1){ |
| | | halfName += $(num2[i]).val() |
| | | }else { |
| | | halfName += $(num2[i]).val()+"," |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | data.halfName= halfName; |
| | | data.ids= $("#ids").val(); |
| | | let introduce = TSite.editor.getContent(); |
| | | |
| | | |
| | | |
| | | console.log(introduce) |
| | | if(introduce==""){ |
| | | Feng.info("请输入公告内容") |
| | | return; |
| | | } |
| | | data.introduce= introduce; |
| | | |
| | | |
| | | var goodImgs = this.goodsPicArray; |
| | | if(goodImgs.length==0){ |
| | | Feng.info("请上传实景图") |
| | | return; |
| | | } |
| | | var imgOne =""; |
| | | for (let i = 0; i <goodImgs.length; i++) { |
| | | if(i==goodImgs.length-1){ |
| | | imgOne += (goodImgs[i].response) |
| | | }else { |
| | | imgOne+=(goodImgs[i].response+",") |
| | | } |
| | | |
| | | } |
| | | data.imgs = imgOne |
| | | |
| | | |
| | | |
| | | if($("#store").val()=='' ){ |
| | | Feng.info("请选择门店") |
| | | return; |
| | |
| | | var rStime = ""; //门店的经营开始时间 |
| | | var rEtime = ""; //门店的经营结束时间 |
| | | var selectedText = $('#store option:selected').text(); |
| | | // $.ajax({ |
| | | // url: Feng.ctxPath + "/tSite/getTime/" + selectedText, |
| | | // type: "GET", |
| | | // contentType: "application/json", // 设置请求头的 Content-Type |
| | | // success: function (response) { |
| | | // rStime = response.startTime; |
| | | // sh = rStime.split(':')[0];// 门店经营开始时间:小时 |
| | | // sm = rStime.split(':')[1];// 门店经营开始时间:分钟 |
| | | // |
| | | // rEtime = response.endTime; |
| | | // eh = rEtime.split(':')[0];// 门店经营结束时间:小时 |
| | | // em = rEtime.split(':')[1];// 门店经营结束时间:分钟 |
| | | // |
| | | // var start = sTime.value; |
| | | // var startHour = start.split(':')[0]; // 输入的可预约开始时间:小时 |
| | | // var startMinute = start.split(':')[1];// 输入的可预约开始时间:分钟 |
| | | // if (Number(sh)>Number(startHour)){ |
| | | // Feng.error("预约的开始时间不应小于营业开始时间!") |
| | | // return false; |
| | | // }else if(Number(sh) === Number(startHour) ){ |
| | | // if (Number(sm)>Number(startMinute)){ |
| | | // Feng.error("预约的开始时间不应大于营业开始时间!") |
| | | // return false; |
| | | // } |
| | | // }else if (Number(eh)<Number(startHour)){ |
| | | // Feng.error("预约的开始时间不应大于营业结束时间!") |
| | | // return false; |
| | | // }else if(Number(eh)===Number(startHour)){ |
| | | // Feng.error("预约的开始时间不应大于等于营业结束时间!") |
| | | // return false; |
| | | // } |
| | | // var end = eTime.value; |
| | | // var endHour = end.split(':')[0]; // 输入的可预约结束时间:小时 |
| | | // var endMinute = end.split(':')[1];// 输入的可预约结束时间:分钟 |
| | | // if (Number(eh)<Number(endHour)){ |
| | | // Feng.error("预约的结束时间不应大于营业结束时间!") |
| | | // return ; |
| | | // }else if(Number(eh) === Number(endHour) ){ |
| | | // if (Number(em)<Number(endMinute)){ |
| | | // Feng.error("预约的开始时间不应大于开始营业时间!") |
| | | // return ; |
| | | // } |
| | | // }else if(Number(sh)>Number(endHour)){ |
| | | // Feng.error("预约的结束时间不应小于营业开始时间!") |
| | | // return ; |
| | | // } |
| | | // if (Number(endHour)===Number(sh)){ |
| | | // if(Number(endMinute) < Number(sm)){ |
| | | // Feng.error("预约结束时间不应小于营业开始时间"); |
| | | // return; |
| | | // } |
| | | // } |
| | | // if (Number(startHour)===Number(endHour) && Number(startMinute)===Number(endMinute)){ |
| | | // Feng.error("至少预约半个小时"); |
| | | // return; |
| | | // } |
| | | // $.ajax({ |
| | | // url: Feng.ctxPath + "/tSite/addSite" , |
| | | // type: "POST", |
| | | // data: JSON.stringify(data), |
| | | // contentType: "application/json", |
| | | // success: function (response) { |
| | | // window.parent.TSite.table.refresh(); |
| | | // TSite.close(); |
| | | // Feng.success("添加成功"); |
| | | // }, |
| | | // error: function (xhr, status, error) { |
| | | // Feng.error("添加失败!" + error); |
| | | // } |
| | | // }); |
| | | // }, |
| | | // error: function (xhr, status, error) { |
| | | // var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!"; |
| | | // Feng.error("您的网络异常!"); |
| | | // return false; |
| | | // } |
| | | // }); |
| | | $.ajax({ |
| | | url: Feng.ctxPath + "/tSite/getTime/" + selectedText, |
| | | type: "GET", |
| | | contentType: "application/json", // 设置请求头的 Content-Type |
| | | success: function (response) { |
| | | rStime = response.startTime; |
| | | sh = rStime.split(':')[0];// 门店经营开始时间:小时 |
| | | sm = rStime.split(':')[1];// 门店经营开始时间:分钟 |
| | | |
| | | rEtime = response.endTime; |
| | | eh = rEtime.split(':')[0];// 门店经营结束时间:小时 |
| | | em = rEtime.split(':')[1];// 门店经营结束时间:分钟 |
| | | |
| | | var start = sTime.value; |
| | | var startHour = start.split(':')[0]; // 输入的可预约开始时间:小时 |
| | | var startMinute = start.split(':')[1];// 输入的可预约开始时间:分钟 |
| | | if (Number(sh)>Number(startHour)){ |
| | | Feng.error("预约的开始时间不应小于营业开始时间!") |
| | | return false; |
| | | }else if(Number(sh) === Number(startHour) ){ |
| | | if (Number(sm)>Number(startMinute)){ |
| | | Feng.error("预约的开始时间不应大于营业开始时间!") |
| | | return false; |
| | | } |
| | | }else if (Number(eh)<Number(startHour)){ |
| | | Feng.error("预约的开始时间不应大于营业结束时间!") |
| | | return false; |
| | | }else if(Number(eh)===Number(startHour)){ |
| | | Feng.error("预约的开始时间不应大于等于营业结束时间!") |
| | | return false; |
| | | } |
| | | var end = eTime.value; |
| | | var endHour = end.split(':')[0]; // 输入的可预约结束时间:小时 |
| | | var endMinute = end.split(':')[1];// 输入的可预约结束时间:分钟 |
| | | if (Number(eh)<Number(endHour)){ |
| | | Feng.error("预约的结束时间不应大于营业结束时间!") |
| | | return ; |
| | | }else if(Number(eh) === Number(endHour) ){ |
| | | if (Number(em)<Number(endMinute)){ |
| | | Feng.error("预约的开始时间不应大于开始营业时间!") |
| | | return ; |
| | | } |
| | | }else if(Number(sh)>Number(endHour)){ |
| | | Feng.error("预约的结束时间不应小于营业开始时间!") |
| | | return ; |
| | | } |
| | | if (Number(endHour)===Number(sh)){ |
| | | if(Number(endMinute) < Number(sm)){ |
| | | Feng.error("预约结束时间不应小于营业开始时间"); |
| | | return; |
| | | } |
| | | } |
| | | if (Number(startHour)===Number(endHour) && Number(startMinute)===Number(endMinute)){ |
| | | Feng.error("至少预约半个小时"); |
| | | return; |
| | | } |
| | | $.ajax({ |
| | | url: Feng.ctxPath + "/tSite/addSite" , |
| | | type: "POST", |
| | | data: JSON.stringify(data), |
| | | contentType: "application/json", |
| | | success: function (response) { |
| | | window.parent.TSite.table.refresh(); |
| | | TSite.close(); |
| | | Feng.success("添加成功"); |
| | | }, |
| | | error: function (xhr, status, error) { |
| | | Feng.error("添加失败!" + error); |
| | | } |
| | | }); |
| | | }, |
| | | error: function (xhr, status, error) { |
| | | var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!"; |
| | | Feng.error("您的网络异常!"); |
| | | return false; |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | TSite.search = function () { |
| | |
| | | //初始化编辑器 |
| | | TSite.editor = UE.getEditor('editor'); |
| | | // 限制分钟选项为 0 和 30 |
| | | var timeInputs = document.querySelectorAll('input[type="time"]'); |
| | | timeInputs.forEach(function(input) { |
| | | input.addEventListener('change', function() { |
| | | var selectedTime = input.value; |
| | | var hour = selectedTime.split(':')[0]; |
| | | var minute = selectedTime.split(':')[1]; |
| | | if (minute < 30 &&minute>0) { |
| | | minute = '30'; |
| | | } else if (minute >30) { |
| | | hour++; |
| | | minute = '00'; |
| | | if (hour<10){ |
| | | hour = '0'+hour; |
| | | } |
| | | } |
| | | input.value = hour + ':' + minute; |
| | | }); |
| | | }); |
| | | // var timeInputs = document.querySelectorAll('input[type="time"]'); |
| | | // timeInputs.forEach(function(input) { |
| | | // input.addEventListener('change', function() { |
| | | // var selectedTime = input.value; |
| | | // var hour = selectedTime.split(':')[0]; |
| | | // var minute = selectedTime.split(':')[1]; |
| | | // if (minute < 30 &&minute>0) { |
| | | // minute = '30'; |
| | | // } else if (minute >30) { |
| | | // hour++; |
| | | // minute = '00'; |
| | | // if (hour<10){ |
| | | // hour = '0'+hour; |
| | | // } |
| | | // } |
| | | // input.value = hour + ':' + minute; |
| | | // }); |
| | | // }); |
| | | |
| | | |
| | | var defaultColunms = TSite.initColumn(); |
| | |
| | | var TSiteInfo = { |
| | | layerIndex: -1, |
| | | validateFields: { |
| | | } |
| | | }, |
| | | goodsPicArray:[], |
| | | }; |
| | | |
| | | /** |
| | |
| | | insuranceEndTime:"", |
| | | name:"", |
| | | insuranceImg:"", |
| | | managementPlan:"" |
| | | managementPlan:"", |
| | | operatorId:"", |
| | | typeName:"", |
| | | nextName:"", |
| | | ishalf:"", |
| | | cashPriceOne:"", |
| | | playPaiCoinOne:"", |
| | | halfName:"", |
| | | introduce:"", |
| | | imgs:"", |
| | | ids:"" |
| | | }; |
| | | data.province = $("#pCode").val() |
| | | data.id = $("#id").val() |
| | |
| | | var eh =data.appointmentEndTime.split(':')[0]; |
| | | var em =data.appointmentEndTime.split(':')[1]; |
| | | |
| | | if($("#pCode").val()==''){ |
| | | Feng.info("请选择省") |
| | | |
| | | |
| | | |
| | | var SelectValue=""; |
| | | var getSelectValueMenbers = $("input[name='pt']:checked").each(function(j) { |
| | | if (j >= 0) { |
| | | SelectValue += $(this).val() |
| | | } |
| | | }); |
| | | if(SelectValue==''){ |
| | | let yys = $("#yys").val() |
| | | if(yys==""){ |
| | | Feng.info("请选择运营商") |
| | | return; |
| | | } |
| | | SelectValue= yys |
| | | } |
| | | data.operatorId= SelectValue; |
| | | |
| | | |
| | | |
| | | let num24 = $('input[name="name1"]'); |
| | | var nextName=""; |
| | | for (let i = 0; i < num24.length; i++) { |
| | | if($(num24[i]).val()==''){ |
| | | Feng.info("请填写场地名称") |
| | | return; |
| | | } |
| | | if(i==num24.length-1){ |
| | | nextName += $(num24[i]).val() |
| | | }else { |
| | | nextName += $(num24[i]).val()+"," |
| | | } |
| | | } |
| | | data.nextName= nextName; |
| | | |
| | | |
| | | var ishalf= $("input[name='ishalf']:checked").val(); |
| | | data.ishalf= ishalf; |
| | | var halfName=""; |
| | | if(ishalf==1){ |
| | | let cashPriceOne = $("#cashPriceOne").val() |
| | | if(cashPriceOne=='' ){ |
| | | Feng.info("请填写现金价格") |
| | | return; |
| | | } |
| | | data.cashPriceOne= cashPriceOne; |
| | | |
| | | let playPaiCoinOne = $("#playPaiCoinOne").val() |
| | | if(playPaiCoinOne=='' ){ |
| | | Feng.info("请填写玩湃币价格") |
| | | return; |
| | | } |
| | | |
| | | data.playPaiCoinOne= playPaiCoinOne; |
| | | let num2 = $('input[name="name2"]'); |
| | | for (let i = 0; i < num2.length; i++) { |
| | | if($(num2[i]).val()==''){ |
| | | Feng.info("请填写半场名称") |
| | | return; |
| | | } |
| | | if(i==num2.length-1){ |
| | | halfName += $(num2[i]).val() |
| | | }else { |
| | | halfName += $(num2[i]).val()+"," |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | data.halfName= halfName; |
| | | data.ids= $("#ids").val(); |
| | | let introduce = TSiteInfo.editor.getContent(); |
| | | |
| | | |
| | | console.log(introduce) |
| | | if(introduce==""){ |
| | | Feng.info("请输入公告内容") |
| | | return; |
| | | } |
| | | if($("#cCode").val()==''){ |
| | | Feng.info("请选择市") |
| | | data.introduce= introduce; |
| | | |
| | | |
| | | var goodImgs = TSiteInfo.goodsPicArray; |
| | | |
| | | if(goodImgs.length==0){ |
| | | Feng.info("请上传实景图") |
| | | return; |
| | | } |
| | | if($("#account").val()=='' ){ |
| | | Feng.info("请选择账号") |
| | | return; |
| | | var imgOne =""; |
| | | console.log(goodImgs) |
| | | console.log(goodImgs.length) |
| | | for (let i = 0; i <goodImgs.length; i++) { |
| | | console.log(goodImgs[i].response,11) |
| | | if(i==goodImgs.length-1){ |
| | | imgOne += (goodImgs[i].response) |
| | | }else { |
| | | imgOne+=(goodImgs[i].response+",") |
| | | } |
| | | |
| | | } |
| | | console.log(imgOne) |
| | | data.imgs = imgOne |
| | | |
| | | |
| | | |
| | | |
| | | if($("#store").val()=='' ){ |
| | | Feng.info("请选择门店") |
| | | return; |
| | |
| | | }); |
| | | |
| | | }; |
| | | |
| | | TSiteInfo.oneChangeYys = function(e){ |
| | | var oneId=$(e).val(); |
| | | var SelectValue=""; |
| | | var getSelectValueMenbers = $("input[name='pt']:checked").each(function(j) { |
| | | if (j >= 0) { |
| | | SelectValue += $(this).val() |
| | | } |
| | | }); |
| | | if(SelectValue=='0' ){ |
| | | oneId=0 |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/tSite/getChangeOne", function(data){ |
| | | if(data!=null){ |
| | | var content='<option value="">选择门店</option>'; |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.id+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#store").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("oneId",oneId); |
| | | ajax.start(); |
| | | }; |
| | | /** |
| | | * 关闭此对话框 |
| | | */ |
| | |
| | | $('#upFile').click(); |
| | | } |
| | | $(function () { |
| | | TSiteInfo.editor = UE.getEditor('editor'); |
| | | // 限制分钟选项为 0 和 30 |
| | | var timeInputs = document.querySelectorAll('input[type="time"]'); |
| | | timeInputs.forEach(function(input) { |
New file |
| | |
| | | // 页面导出为pdf格式 |
| | | import html2Canvas from 'html2canvas'; |
| | | import jsPDF from 'jspdf'; |
| | | |
| | | const htmlToPdf = { |
| | | getPdf(title, loading) { |
| | | return html2Canvas(document.querySelector('#pdfDom'), { |
| | | allowTaint: false, |
| | | taintTest: false, |
| | | logging: false, |
| | | useCORS: true, |
| | | dpi: window.devicePixelRatio * 4, //将分辨率提高到特定的DPI 提高四倍 |
| | | scale: 4, //按比例增加分辨率 |
| | | }).then((canvas) => { |
| | | var pdf = new jsPDF('p', 'mm', 'a4'); //A4纸,纵向 |
| | | var ctx = canvas.getContext('2d'), |
| | | a4w = 190, |
| | | a4h = 272, //A4大小,210mm x 297mm,四边各保留10mm的边距,显示区域190x277 |
| | | // imgHeight = Math.floor((a4h * canvas.width) / a4w), //按A4显示比例换算一页图像的像素高度 |
| | | imgHeight = canvas.height, //按A4显示比例换算一页图像的像素高度 |
| | | |
| | | renderedHeight = 0; |
| | | |
| | | while (renderedHeight < canvas.height) { |
| | | var page = document.createElement('canvas'); |
| | | page.width = canvas.width; |
| | | page.height = Math.min(imgHeight, canvas.height - renderedHeight); //可能内容不足一页 |
| | | |
| | | //用getImageData剪裁指定区域,并画到前面创建的canvas对象中 |
| | | page |
| | | .getContext('2d') |
| | | .putImageData( |
| | | ctx.getImageData( |
| | | 0, |
| | | renderedHeight, |
| | | canvas.width, |
| | | Math.min(imgHeight, canvas.height - renderedHeight), |
| | | ), |
| | | 0, |
| | | 0, |
| | | ); |
| | | pdf.addImage( |
| | | page.toDataURL('image/jpeg', 1.0), |
| | | 'JPEG', |
| | | 10, |
| | | 10, |
| | | a4w, |
| | | Math.min(a4h, (a4w * page.height) / page.width), |
| | | ); //添加图像到页面,保留10mm边距 |
| | | |
| | | renderedHeight += imgHeight; |
| | | if (renderedHeight < canvas.height) { |
| | | pdf.addPage(); //如果后面还有内容,添加一个空页 |
| | | } |
| | | // delete page; |
| | | } |
| | | //保存文件 |
| | | // pdf.save(title + '.pdf'); |
| | | // loading = false; |
| | | // 删除本地存储的base64字段 |
| | | return pdf.output('datauristring')//获取base64Pdf |
| | | }); |
| | | }, |
| | | }; |
| | | |
| | | export default htmlToPdf; |
| | |
| | | return list; |
| | | } |
| | | |
| | | @ResponseBody |
| | | @PostMapping("/base/notice/queryQuestionDetails") |
| | | public List<QuestionIns> getSysQuestionDetails(){ |
| | | List<QuestionIns> sysS = new ArrayList<>(); |
| | |
| | | import com.dsh.other.entity.CreateHistoryDto; |
| | | import com.dsh.other.entity.GetHistoryDto; |
| | | import com.dsh.other.model.BannerVo; |
| | | import com.dsh.other.model.dto.siteDto.SelectDto; |
| | | import com.dsh.other.model.vo.questionVo.QuestionSearchVO; |
| | | import com.dsh.other.service.IBannerService; |
| | | import com.dsh.other.util.ResultUtil; |
| | |
| | | @ResponseBody |
| | | @PostMapping("/class/gethisotory") |
| | | public List<GetHistoryDto> getHistory(@RequestBody Integer studentId){ |
| | | List<GetHistoryDto> list = bannerService.gethistory(studentId); |
| | | |
| | | return bannerService.gethistory(studentId); |
| | | |
| | | System.out.println("=-======GetHistoryDto========"+list); |
| | | return list; |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.dsh.other.entity.Store; |
| | | import com.dsh.other.entity.TStoreOther; |
| | | import com.dsh.other.entity.TStoreOtherConfigTrue; |
| | | import com.dsh.other.feignclient.model.*; |
| | | import com.dsh.other.model.*; |
| | | import com.dsh.other.service.StoreService; |
| | | import com.dsh.other.service.TStoreOtherConfigTrueService; |
| | | import com.dsh.other.service.TStoreOtherService; |
| | | import com.dsh.other.util.GDMapGeocodingUtil; |
| | | import com.dsh.other.util.ResultUtil; |
| | | import com.dsh.other.util.ToolUtil; |
| | |
| | | @Autowired |
| | | private GDMapGeocodingUtil gdMapGeocodingUtil; |
| | | |
| | | @Autowired |
| | | private TStoreOtherService tStoreOtherService; |
| | | |
| | | /** |
| | | * 根据城市管理员id获取门店 |
| | |
| | | } |
| | | } |
| | | |
| | | @Autowired |
| | | private TStoreOtherConfigTrueService tStoreOtherConfigTrueService; |
| | | @ResponseBody |
| | | @PostMapping("/base/store/queryIndexSet") |
| | | @ApiOperation(value = "获取门店首页设置 2.0", tags = {"APP-免费福利"}) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "门店id", name = "id", dataType = "int", required = true), |
| | | }) |
| | | public ResultUtil<List<TStoreOtherConfigTrue>> queryIndexSet(Integer id){ |
| | | try { |
| | | List<TStoreOtherConfigTrue> tStoreOtherConfigTrues = new ArrayList<>(); |
| | | |
| | | List<TStoreOther> list = tStoreOtherService.list(new LambdaQueryWrapper<TStoreOther>().eq(TStoreOther::getStoreId, id)); |
| | | if(list.size()>0){ |
| | | tStoreOtherConfigTrues= tStoreOtherConfigTrueService.list(new LambdaQueryWrapper<TStoreOtherConfigTrue>().eq(TStoreOtherConfigTrue::getPid, list.get(0).getId())); |
| | | } |
| | | return ResultUtil.success(tStoreOtherConfigTrues); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | |
| | | private String pleasePic; |
| | | private String passPic; |
| | | private String createBy; |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date date; |
| | | } |
| | |
| | | private String nextName; |
| | | @TableField("halfName") |
| | | private String halfName; |
| | | @TableField("cashPriceOne") |
| | | private Double cashPriceOne; |
| | | @TableField("playPaiCoinOne") |
| | | private Double playPaiCoinOne; |
| | | @TableField("ids") |
| | | private String ids; |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.other.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.baomidou.mybatisplus.extension.activerecord.Model; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.experimental.Accessors; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | | * @since 2023-09-19 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @Accessors(chain = true) |
| | | @TableName("t_store_other") |
| | | public class TStoreOther extends Model<TStoreOther> { |
| | | |
| | | private static final long serialVersionUID=1L; |
| | | |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | |
| | | private String name; |
| | | |
| | | @TableField("storeId") |
| | | private Integer storeId; |
| | | |
| | | private Integer sort; |
| | | |
| | | /** |
| | | * 1开启 2关闭 |
| | | */ |
| | | private Integer state; |
| | | |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.other.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.baomidou.mybatisplus.extension.activerecord.Model; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.experimental.Accessors; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | | * @since 2023-09-19 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @Accessors(chain = true) |
| | | @TableName("t_store_other_config_true") |
| | | public class TStoreOtherConfigTrue extends Model<TStoreOtherConfigTrue> { |
| | | |
| | | private static final long serialVersionUID=1L; |
| | | |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | |
| | | /** |
| | | * 图片 |
| | | */ |
| | | private String url; |
| | | |
| | | /** |
| | | * 跳转模块 |
| | | */ |
| | | private String name; |
| | | |
| | | /** |
| | | * 跳转页面 |
| | | */ |
| | | private String page; |
| | | |
| | | /** |
| | | * 跳转类型 |
| | | */ |
| | | private String type; |
| | | |
| | | /** |
| | | * 跳转id |
| | | */ |
| | | @TableField("turnId") |
| | | private String turnId; |
| | | |
| | | /** |
| | | * 排序 |
| | | */ |
| | | private Integer sort; |
| | | |
| | | /** |
| | | * 1开启 2关闭 |
| | | */ |
| | | private Integer state; |
| | | |
| | | private Integer pid; |
| | | |
| | | @TableField("pageId") |
| | | private Integer pageId; |
| | | |
| | | @TableField("typeId") |
| | | private Integer typeId; |
| | | |
| | | |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.other.mapper; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dsh.other.entity.TStoreOtherConfigTrue; |
| | | |
| | | /** |
| | | * <p> |
| | | * Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | | * @since 2023-09-19 |
| | | */ |
| | | public interface TStoreOtherConfigTrueMapper extends BaseMapper<TStoreOtherConfigTrue> { |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.other.mapper; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dsh.other.entity.TStoreOther; |
| | | |
| | | /** |
| | | * <p> |
| | | * Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | | * @since 2023-09-19 |
| | | */ |
| | | public interface TStoreOtherMapper extends BaseMapper<TStoreOther> { |
| | | |
| | | } |
| | |
| | | private Integer ishalf; |
| | | @ApiModelProperty("场地说明") |
| | | private String introduce; |
| | | @ApiModelProperty("现金价格(x/半小时)半场") |
| | | |
| | | private Double cashPriceOne; |
| | | @ApiModelProperty("玩湃币价格(x/半小时)半场") |
| | | private Double playPaiCoinOne; |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.other.model.dto.siteDto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class GiftSearchDto { |
| | | String name; |
| | | String phone; |
| | | } |
New file |
| | |
| | | package com.dsh.other.model.dto.siteDto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class SelectDto { |
| | | Integer id; |
| | | String value; |
| | | } |
| | |
| | | void createHistory(CreateHistoryDto createHistoryDto); |
| | | |
| | | List<GetHistoryDto> gethistory(Integer studentId); |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.other.service; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.dsh.other.entity.TStoreOtherConfigTrue; |
| | | |
| | | /** |
| | | * <p> |
| | | * 服务类 |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | | * @since 2023-09-19 |
| | | */ |
| | | public interface TStoreOtherConfigTrueService extends IService<TStoreOtherConfigTrue> { |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.other.service; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.dsh.other.entity.TStoreOther; |
| | | |
| | | /** |
| | | * <p> |
| | | * 服务类 |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | | * @since 2023-09-19 |
| | | */ |
| | | public interface TStoreOtherService extends IService<TStoreOther> { |
| | | |
| | | } |
| | |
| | | public List<Banner> listAll(AdvertisementQuery query) { |
| | | return bannerMapper.listAll(query); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | querySiteInfoVo.setStorePhone(store.getPhone()); |
| | | querySiteInfoVo.setImgs(site.getImgs()); |
| | | querySiteInfoVo.setDistance(0D); |
| | | querySiteInfoVo.setCashPriceOne(site.getCashPriceOne()); |
| | | querySiteInfoVo.setPlayPaiCoinOne(site.getPlayPaiCoinOne()); |
| | | querySiteInfoVo.setIntroduce(site.getIntroduce()); |
| | | ArrayList<String> nextName = new ArrayList<>(); |
| | | ArrayList<String> halfName = new ArrayList<>(); |
New file |
| | |
| | | package com.dsh.other.service.impl; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.dsh.other.entity.TStoreOtherConfigTrue; |
| | | import com.dsh.other.mapper.TStoreOtherConfigTrueMapper; |
| | | import com.dsh.other.service.TStoreOtherConfigTrueService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * <p> |
| | | * 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | | * @since 2023-09-19 |
| | | */ |
| | | @Service |
| | | public class TStoreOtherConfigTrueServiceImpl extends ServiceImpl<TStoreOtherConfigTrueMapper, TStoreOtherConfigTrue> implements TStoreOtherConfigTrueService { |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.other.service.impl; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.dsh.other.entity.TStoreOther; |
| | | import com.dsh.other.mapper.TStoreOtherMapper; |
| | | import com.dsh.other.service.TStoreOtherService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * <p> |
| | | * 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | | * @since 2023-09-19 |
| | | */ |
| | | @Service |
| | | public class TStoreOtherServiceImpl extends ServiceImpl<TStoreOtherMapper, TStoreOther> implements TStoreOtherService { |
| | | |
| | | } |
| | |
| | | |
| | | </insert> |
| | | <select id="getHistory" resultType="com.dsh.other.entity.GetHistoryDto"> |
| | | SELECT hs.insertTime,hs.passPic,hs.pleasePic,us.`name` |
| | | SELECT hs.insertTime as date,hs.passPic,hs.pleasePic,us.`name` as createBy |
| | | from t_usetime_history hs |
| | | LEFT JOIN sys_user us on hs.createBy = us.id |
| | | where hs.studentId = #{studentId} |
| | | |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.dsh.other.mapper.TStoreOtherConfigTrueMapper"> |
| | | |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.dsh.other.mapper.TStoreOtherMapper"> |
| | | |
| | | |
| | | </mapper> |