├── src ├── main │ ├── resources │ │ ├── test │ │ │ ├── 1.txt │ │ │ └── spring-resource.xml │ │ ├── java-large-file-uploader.properties │ │ ├── image │ │ │ └── logo.png │ │ └── mybatis-cfg.xml │ ├── webapp │ │ ├── WEB-INF │ │ │ ├── ftl │ │ │ │ └── 0 │ │ │ └── jsp │ │ │ │ ├── error404.html │ │ │ │ ├── error500.html │ │ │ │ ├── exception.html │ │ │ │ └── error_fileupload.html │ │ ├── easyui │ │ │ ├── themes │ │ │ │ ├── gray │ │ │ │ │ ├── numberbox.css │ │ │ │ │ ├── images │ │ │ │ │ │ ├── blank.gif │ │ │ │ │ │ ├── loading.gif │ │ │ │ │ │ ├── tabs_icons.png │ │ │ │ │ │ ├── tree_icons.png │ │ │ │ │ │ ├── combo_arrow.png │ │ │ │ │ │ ├── menu_arrows.png │ │ │ │ │ │ ├── panel_tools.png │ │ │ │ │ │ ├── tagbox_icons.png │ │ │ │ │ │ ├── calendar_arrows.png │ │ │ │ │ │ ├── datagrid_icons.png │ │ │ │ │ │ ├── datebox_arrow.png │ │ │ │ │ │ ├── layout_arrows.png │ │ │ │ │ │ ├── linkbutton_bg.png │ │ │ │ │ │ ├── messager_icons.png │ │ │ │ │ │ ├── slider_handle.png │ │ │ │ │ │ ├── spinner_arrows.png │ │ │ │ │ │ ├── accordion_arrows.png │ │ │ │ │ │ ├── pagination_icons.png │ │ │ │ │ │ ├── passwordbox_close.png │ │ │ │ │ │ ├── passwordbox_open.png │ │ │ │ │ │ ├── searchbox_button.png │ │ │ │ │ │ └── validatebox_warning.png │ │ │ │ │ ├── fonts │ │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ │ │ ├── validatebox.css │ │ │ │ │ ├── passwordbox.css │ │ │ │ │ ├── splitbutton.css │ │ │ │ │ ├── filebox.css │ │ │ │ │ ├── combo.css │ │ │ │ │ ├── datebox.css │ │ │ │ │ ├── progressbar.css │ │ │ │ │ ├── combobox.css │ │ │ │ │ ├── propertygrid.css │ │ │ │ │ └── accordion.css │ │ │ │ ├── default │ │ │ │ │ ├── numberbox.css │ │ │ │ │ ├── images │ │ │ │ │ │ ├── blank.gif │ │ │ │ │ │ ├── loading.gif │ │ │ │ │ │ ├── combo_arrow.png │ │ │ │ │ │ ├── menu_arrows.png │ │ │ │ │ │ ├── panel_tools.png │ │ │ │ │ │ ├── tabs_icons.png │ │ │ │ │ │ ├── tree_icons.png │ │ │ │ │ │ ├── datagrid_icons.png │ │ │ │ │ │ ├── datebox_arrow.png │ │ │ │ │ │ ├── layout_arrows.png │ │ │ │ │ │ ├── linkbutton_bg.png │ │ │ │ │ │ ├── messager_icons.png │ │ │ │ │ │ ├── slider_handle.png │ │ │ │ │ │ ├── spinner_arrows.png │ │ │ │ │ │ ├── accordion_arrows.png │ │ │ │ │ │ ├── calendar_arrows.png │ │ │ │ │ │ ├── pagination_icons.png │ │ │ │ │ │ ├── passwordbox_close.png │ │ │ │ │ │ ├── passwordbox_open.png │ │ │ │ │ │ ├── searchbox_button.png │ │ │ │ │ │ └── validatebox_warning.png │ │ │ │ │ ├── validatebox.css │ │ │ │ │ ├── passwordbox.css │ │ │ │ │ ├── splitbutton.css │ │ │ │ │ ├── filebox.css │ │ │ │ │ ├── combo.css │ │ │ │ │ ├── datebox.css │ │ │ │ │ ├── progressbar.css │ │ │ │ │ ├── combobox.css │ │ │ │ │ ├── propertygrid.css │ │ │ │ │ └── accordion.css │ │ │ │ └── icons │ │ │ │ │ ├── cut.png │ │ │ │ │ ├── man.png │ │ │ │ │ ├── no.png │ │ │ │ │ ├── ok.png │ │ │ │ │ ├── sum.png │ │ │ │ │ ├── tip.png │ │ │ │ │ ├── back.png │ │ │ │ │ ├── blank.gif │ │ │ │ │ ├── cancel.png │ │ │ │ │ ├── clear.png │ │ │ │ │ ├── filter.png │ │ │ │ │ ├── help.png │ │ │ │ │ ├── lock.png │ │ │ │ │ ├── more.png │ │ │ │ │ ├── pencil.png │ │ │ │ │ ├── print.png │ │ │ │ │ ├── redo.png │ │ │ │ │ ├── reload.png │ │ │ │ │ ├── search.png │ │ │ │ │ ├── undo.png │ │ │ │ │ ├── edit_add.png │ │ │ │ │ ├── filesave.png │ │ │ │ │ ├── mini_add.png │ │ │ │ │ ├── edit_remove.png │ │ │ │ │ ├── large_chart.png │ │ │ │ │ ├── mini_edit.png │ │ │ │ │ ├── large_clipart.png │ │ │ │ │ ├── large_picture.png │ │ │ │ │ ├── large_shapes.png │ │ │ │ │ ├── mini_refresh.png │ │ │ │ │ ├── large_smartart.png │ │ │ │ │ └── fonts │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ └── demo │ │ │ │ ├── tabs │ │ │ │ ├── images │ │ │ │ │ ├── pda.png │ │ │ │ │ ├── modem.png │ │ │ │ │ ├── scanner.png │ │ │ │ │ └── tablet.png │ │ │ │ ├── _content.html │ │ │ │ ├── tree_data1.json │ │ │ │ └── fluid.html │ │ │ │ ├── form │ │ │ │ └── form_data1.json │ │ │ │ ├── datagrid │ │ │ │ └── products.json │ │ │ │ ├── demo.css │ │ │ │ ├── tagbox │ │ │ │ ├── tagbox_data1.json │ │ │ │ ├── basic.html │ │ │ │ ├── format.html │ │ │ │ └── button.html │ │ │ │ ├── combobox │ │ │ │ └── combobox_data1.json │ │ │ │ ├── tooltip │ │ │ │ ├── _dialog.html │ │ │ │ ├── _content.html │ │ │ │ └── basic.html │ │ │ │ ├── calendar │ │ │ │ ├── basic.html │ │ │ │ ├── weeknumber.html │ │ │ │ ├── disabledate.html │ │ │ │ └── fluid.html │ │ │ │ ├── slider │ │ │ │ ├── basic.html │ │ │ │ ├── rule.html │ │ │ │ ├── range.html │ │ │ │ ├── vertical.html │ │ │ │ └── fluid.html │ │ │ │ ├── panel │ │ │ │ ├── _content.html │ │ │ │ ├── fluid.html │ │ │ │ ├── footer.html │ │ │ │ └── loadcontent.html │ │ │ │ ├── accordion │ │ │ │ └── _content.html │ │ │ │ ├── layout │ │ │ │ ├── _content.html │ │ │ │ ├── propertygrid_data1.json │ │ │ │ ├── tree_data1.json │ │ │ │ └── fluid.html │ │ │ │ ├── datalist │ │ │ │ ├── datalist_data1.json │ │ │ │ ├── remotedata.html │ │ │ │ ├── group.html │ │ │ │ ├── multiselect.html │ │ │ │ └── checkbox.html │ │ │ │ ├── pagination │ │ │ │ ├── basic.html │ │ │ │ ├── simple.html │ │ │ │ └── links.html │ │ │ │ ├── propertygrid │ │ │ │ └── propertygrid_data1.json │ │ │ │ ├── tree │ │ │ │ ├── lines.html │ │ │ │ ├── icons.html │ │ │ │ ├── animation.html │ │ │ │ ├── dnd.html │ │ │ │ ├── tree_data1.json │ │ │ │ ├── customcheckbox.html │ │ │ │ └── editable.html │ │ │ │ ├── treegrid │ │ │ │ └── treegrid_data2.json │ │ │ │ ├── combotree │ │ │ │ ├── tree_data1.json │ │ │ │ ├── basic.html │ │ │ │ └── initvalue.html │ │ │ │ ├── progressbar │ │ │ │ └── fluid.html │ │ │ │ ├── dialog │ │ │ │ ├── fluid.html │ │ │ │ └── basic.html │ │ │ │ ├── window │ │ │ │ ├── fluid.html │ │ │ │ └── basic.html │ │ │ │ ├── datetimebox │ │ │ │ └── initvalue.html │ │ │ │ ├── timespinner │ │ │ │ └── range.html │ │ │ │ ├── searchbox │ │ │ │ └── basic.html │ │ │ │ ├── numberspinner │ │ │ │ └── basic.html │ │ │ │ ├── draggable │ │ │ │ └── basic.html │ │ │ │ └── switchbutton │ │ │ │ └── action.html │ │ ├── img │ │ │ ├── logo.ico │ │ │ ├── logo.png │ │ │ └── loginUser.png │ │ ├── css │ │ │ └── images │ │ │ │ ├── close.png │ │ │ │ ├── logo.png │ │ │ │ ├── logo2.png │ │ │ │ ├── logo3.png │ │ │ │ ├── user.png │ │ │ │ ├── close2.png │ │ │ │ ├── loginbg.jpg │ │ │ │ ├── loginbg.png │ │ │ │ ├── close-red.png │ │ │ │ ├── password.png │ │ │ │ ├── close-black.png │ │ │ │ ├── close_red_16.png │ │ │ │ ├── login_logo_w.png │ │ │ │ ├── close_white_16.png │ │ │ │ ├── login_bg_tubiao.png │ │ │ │ ├── login_top_left.png │ │ │ │ └── login_top_right.png │ │ ├── static │ │ │ ├── css │ │ │ │ └── images │ │ │ │ │ ├── close.png │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── logo2.png │ │ │ │ │ ├── logo3.png │ │ │ │ │ ├── user.png │ │ │ │ │ ├── close2.png │ │ │ │ │ ├── loginbg.jpg │ │ │ │ │ ├── loginbg.png │ │ │ │ │ ├── password.png │ │ │ │ │ ├── close-red.png │ │ │ │ │ ├── close-black.png │ │ │ │ │ ├── close_red_16.png │ │ │ │ │ ├── login_logo_w.png │ │ │ │ │ ├── close_white_16.png │ │ │ │ │ ├── login_bg_tubiao.png │ │ │ │ │ ├── login_top_left.png │ │ │ │ │ └── login_top_right.png │ │ │ └── js │ │ │ │ └── timeline │ │ │ │ ├── images │ │ │ │ ├── 1.jpg │ │ │ │ ├── psb.jpeg │ │ │ │ ├── spine.png │ │ │ │ └── timeline.png │ │ │ │ └── fx.js │ │ └── view │ │ │ └── index.html │ └── java │ │ └── com │ │ └── whayer │ │ └── wx │ │ ├── common │ │ ├── io │ │ │ └── .gitignore │ │ ├── json │ │ │ └── .gitignore │ │ ├── zip │ │ │ └── .gitignore │ │ ├── time │ │ │ └── .gitignore │ │ ├── .gitignore │ │ ├── http │ │ │ ├── .gitignore │ │ │ └── HttpCode.java │ │ ├── bean │ │ │ ├── .gitignore │ │ │ └── BeanFactory.java │ │ ├── shell │ │ │ ├── .gitignore │ │ │ └── CommandExecutorThread.java │ │ ├── encrypt │ │ │ ├── .gitignore │ │ │ └── BASE64.java │ │ ├── mvc │ │ │ ├── .gitignore │ │ │ ├── DAO.java │ │ │ └── Pagination.java │ │ ├── ssh │ │ │ ├── .gitignore │ │ │ └── Executer.java │ │ ├── listener │ │ │ ├── CommonHttpSessionListener.java │ │ │ ├── CommonServletRequestListener.java │ │ │ └── CommonServletContextListener.java │ │ ├── algorithm │ │ │ └── SelectionSort.java │ │ └── filter │ │ │ └── GZIPServletOutputStream.java │ │ ├── pay │ │ └── util │ │ │ ├── .gitignore │ │ │ ├── TimeUtils.java │ │ │ └── Constant.java │ │ ├── test │ │ ├── controller │ │ │ └── .gitignore │ │ └── annotation │ │ │ ├── Column.java │ │ │ └── Table.java │ │ ├── async │ │ └── service │ │ │ ├── LongTimeTaskCallback.java │ │ │ └── impl │ │ │ └── LongTimeAsyncCallService.java │ │ ├── upload │ │ ├── fileuploader │ │ │ ├── utils │ │ │ │ ├── ConditionProvider.java │ │ │ │ ├── ClientToFilesMap.java │ │ │ │ └── LimitingList.java │ │ │ ├── exception │ │ │ │ ├── BadRequestException.java │ │ │ │ ├── FileCorruptedException.java │ │ │ │ ├── InvalidCrcException.java │ │ │ │ ├── FileStillProcessingException.java │ │ │ │ ├── MissingParameterException.java │ │ │ │ ├── UploadIsCurrentlyDisabled.java │ │ │ │ └── AuthorizationException.java │ │ │ ├── web │ │ │ │ ├── UploadServletParameter.java │ │ │ │ ├── UploadServletAction.java │ │ │ │ └── utils │ │ │ │ │ └── FileUploadConfiguration.java │ │ │ ├── json │ │ │ │ └── SimpleJsonObject.java │ │ │ └── limiter │ │ │ │ └── RequestUploadProcessingConfiguration.java │ │ ├── notifer │ │ │ └── JLFUListenerPropagator.java │ │ └── authorizer │ │ │ ├── impl │ │ │ └── DefaultAuthorizer.java │ │ │ └── Authorizer.java │ │ ├── vouchers │ │ ├── vo │ │ │ └── Voucher.java │ │ ├── service │ │ │ └── VoucherService.java │ │ └── dao │ │ │ └── VoucherDao.java │ │ ├── wechat │ │ ├── vo │ │ │ ├── CardInfoIsSelected.java │ │ │ └── AccessToken.java │ │ ├── servlet │ │ │ └── InitServlet.java │ │ ├── util │ │ │ ├── DATE_TYPE.java │ │ │ ├── CARD_TYPE.java │ │ │ ├── MyX509TrustManager.java │ │ │ ├── Constant.java │ │ │ ├── CARD_STATUS.java │ │ │ └── TokenThread.java │ │ ├── dao │ │ │ └── Card2RoleDao.java │ │ └── service │ │ │ └── Card2RoleService.java │ │ ├── order │ │ ├── dao │ │ │ ├── MemberDao.java │ │ │ └── ExamineeDao.java │ │ └── service │ │ │ ├── MemberService.java │ │ │ └── ExamineeService.java │ │ ├── login │ │ ├── service │ │ │ ├── RoleService.java │ │ │ └── CompanyService.java │ │ └── dao │ │ │ ├── RoleDao.java │ │ │ └── CompanyDao.java │ │ ├── product │ │ ├── vo │ │ │ ├── ProductIsSelected.java │ │ │ ├── ProductCategory.java │ │ │ └── Product2Role.java │ │ ├── dao │ │ │ └── ProductCategoryDao.java │ │ └── service │ │ │ └── ProductCategoryService.java │ │ ├── gift │ │ └── dao │ │ │ └── GiftDao.java │ │ ├── coupon │ │ └── dao │ │ │ └── CouponDao.java │ │ └── pay2 │ │ └── service │ │ └── PayV2Service.java └── test │ ├── java │ └── com │ │ └── whayer │ │ └── wx │ │ ├── .gitignore │ │ ├── observer │ │ ├── weather │ │ │ ├── Observer.java │ │ │ ├── ConcreteWeatherSubject.java │ │ │ ├── WeatherSubject.java │ │ │ └── Client.java │ │ ├── common │ │ │ ├── Observer.java │ │ │ ├── ConcreteSubject.java │ │ │ ├── ConcreteObserver.java │ │ │ └── Subject.java │ │ ├── customized │ │ │ ├── Observer.java │ │ │ └── WeatherSubject.java │ │ └── jdk │ │ │ ├── Client.java │ │ │ ├── ConcreteWeatherSubject.java │ │ │ └── ConcreteObserver.java │ │ ├── socket │ │ ├── socket │ │ │ ├── SocketStart.java │ │ │ └── SocketServer.java │ │ ├── service │ │ │ └── FileService.java │ │ ├── util │ │ │ └── CommandTranser.java │ │ └── entity │ │ │ ├── Users.java │ │ │ └── File.java │ │ ├── reflect │ │ ├── UserService.java │ │ ├── ClassDemo3.java │ │ ├── ClassDemo5.java │ │ ├── ClassDemo4.java │ │ ├── MethodDemo3.java │ │ ├── ClassDemo2.java │ │ ├── reflect.txt │ │ ├── BeanUtil.java │ │ ├── User.java │ │ └── MethodDemo4.java │ │ ├── timer │ │ ├── demo │ │ │ ├── DancingRobot.java │ │ │ ├── Excutor.java │ │ │ └── WaterRobot.java │ │ ├── ScheduleTest.java │ │ ├── scheduleAtFixedRateTest.java │ │ ├── MyTimerTask.java │ │ └── CancelTaskTest.java │ │ ├── StudentComparator.java │ │ ├── spring │ │ └── SpringResourceTest.java │ │ ├── InetAdresTest.java │ │ ├── URLTest.java │ │ ├── SpringFactoryTest.java │ │ ├── jdbc │ │ └── DBUtil.java │ │ ├── login │ │ └── service │ │ │ └── CompanyServiceTest.java │ │ └── vouchers │ │ └── service │ │ └── VoucherServiceTest.java │ └── resources │ └── jdbc.properties ├── README.md ├── .settings ├── org.eclipse.wst.jsdt.ui.superType.name ├── org.eclipse.wst.validation.prefs ├── org.eclipse.wst.jsdt.ui.superType.container ├── org.eclipse.m2e.core.prefs ├── org.eclipse.wst.common.project.facet.core.xml ├── .jsdtscope └── org.eclipse.wst.common.component ├── .gitignore └── .externalToolBuilders └── org.eclipse.wst.jsdt.core.javascriptValidator.launch /src/main/resources/test/1.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/ftl/0: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Weixin_Server 2 | 微信公众号与小程序后台 3 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/numberbox.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/numberbox.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.jsdt.ui.superType.name: -------------------------------------------------------------------------------- 1 | Window -------------------------------------------------------------------------------- /src/main/resources/java-large-file-uploader.properties: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/io/.gitignore: -------------------------------------------------------------------------------- 1 | /FileUtil.class 2 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/json/.gitignore: -------------------------------------------------------------------------------- 1 | /Json.class 2 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/zip/.gitignore: -------------------------------------------------------------------------------- 1 | /ZipUtil.class 2 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/pay/util/.gitignore: -------------------------------------------------------------------------------- 1 | /Constant.java 2 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/time/.gitignore: -------------------------------------------------------------------------------- 1 | /TimeUtil.class 2 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/test/controller/.gitignore: -------------------------------------------------------------------------------- 1 | /TestController.class 2 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/.gitignore: -------------------------------------------------------------------------------- 1 | /Constant.class 2 | /X$1.class 3 | /X.class 4 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/http/.gitignore: -------------------------------------------------------------------------------- 1 | /HttpAgent.class 2 | /HttpCode.class 3 | -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.validation.prefs: -------------------------------------------------------------------------------- 1 | disabled=06target 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/bean/.gitignore: -------------------------------------------------------------------------------- 1 | /BeanKit.class 2 | /SpringFactory.class 3 | -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.jsdt.ui.superType.container: -------------------------------------------------------------------------------- 1 | org.eclipse.wst.jsdt.launching.baseBrowserLibrary -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/.gitignore: -------------------------------------------------------------------------------- 1 | /SpringFactoryTest.class 2 | /TestBean.class 3 | /Test.class 4 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/shell/.gitignore: -------------------------------------------------------------------------------- 1 | /CommandExecutorThread.class 2 | /Terminal.class 3 | -------------------------------------------------------------------------------- /src/main/webapp/img/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/img/logo.ico -------------------------------------------------------------------------------- /src/main/webapp/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/img/logo.png -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/encrypt/.gitignore: -------------------------------------------------------------------------------- 1 | /AES.class 2 | /BASE64.class 3 | /MD5.class 4 | /SHA1.class 5 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/mvc/.gitignore: -------------------------------------------------------------------------------- 1 | /DAO.class 2 | /InitService.class 3 | /MutiViewResolver.class 4 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/ssh/.gitignore: -------------------------------------------------------------------------------- 1 | /Executer.class 2 | /Loger.class 3 | /SSH.class 4 | /Shell.class 5 | -------------------------------------------------------------------------------- /src/main/resources/image/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/resources/image/logo.png -------------------------------------------------------------------------------- /src/main/webapp/img/loginUser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/img/loginUser.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/close.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/logo.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/logo2.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/logo3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/logo3.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/user.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/close2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/close2.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/loginbg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/loginbg.jpg -------------------------------------------------------------------------------- /src/main/webapp/css/images/loginbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/loginbg.png -------------------------------------------------------------------------------- /.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /src/main/webapp/css/images/close-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/close-red.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/password.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/close-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/close-black.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/close_red_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/close_red_16.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/login_logo_w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/login_logo_w.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/cut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/cut.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/man.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/no.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/ok.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/sum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/sum.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/tip.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/close.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/logo.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/logo2.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/logo3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/logo3.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/user.png -------------------------------------------------------------------------------- /src/test/resources/jdbc.properties: -------------------------------------------------------------------------------- 1 | driver=com.mysql.jdbc.Driver 2 | url=jdbc:mysql://localhost:3306/SKYG 3 | username=root 4 | password=duyu2008 -------------------------------------------------------------------------------- /src/main/webapp/css/images/close_white_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/close_white_16.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/login_bg_tubiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/login_bg_tubiao.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/login_top_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/login_top_left.png -------------------------------------------------------------------------------- /src/main/webapp/css/images/login_top_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/css/images/login_top_right.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/back.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/blank.gif -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/cancel.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/clear.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/filter.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/help.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/lock.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/more.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/pencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/pencil.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/print.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/redo.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/reload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/reload.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/search.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/undo.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/close2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/close2.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/loginbg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/loginbg.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/loginbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/loginbg.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/password.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tabs/images/pda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/demo/tabs/images/pda.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/edit_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/edit_add.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/filesave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/filesave.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/mini_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/mini_add.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/close-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/close-red.png -------------------------------------------------------------------------------- /src/main/webapp/static/js/timeline/images/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/js/timeline/images/1.jpg -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tabs/images/modem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/demo/tabs/images/modem.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tabs/images/scanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/demo/tabs/images/scanner.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tabs/images/tablet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/demo/tabs/images/tablet.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/blank.gif -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/edit_remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/edit_remove.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/large_chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/large_chart.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/mini_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/mini_edit.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/close-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/close-black.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/close_red_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/close_red_16.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/login_logo_w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/login_logo_w.png -------------------------------------------------------------------------------- /src/main/webapp/static/js/timeline/images/psb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/js/timeline/images/psb.jpeg -------------------------------------------------------------------------------- /src/main/webapp/static/js/timeline/images/spine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/js/timeline/images/spine.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/loading.gif -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/large_clipart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/large_clipart.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/large_picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/large_picture.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/large_shapes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/large_shapes.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/mini_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/mini_refresh.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/close_white_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/close_white_16.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/login_bg_tubiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/login_bg_tubiao.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/login_top_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/login_top_left.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/images/login_top_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/css/images/login_top_right.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/blank.gif -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/loading.gif -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/tabs_icons.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/tree_icons.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/large_smartart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/large_smartart.png -------------------------------------------------------------------------------- /src/main/webapp/static/js/timeline/images/timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/static/js/timeline/images/timeline.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | border-color: #ffa8a8; 3 | background-color: #fff3f3; 4 | color: #000; 5 | } 6 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/combo_arrow.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/menu_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/panel_tools.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/tagbox_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/tagbox_icons.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/validatebox.css: -------------------------------------------------------------------------------- 1 | .validatebox-invalid { 2 | border-color: #ffa8a8; 3 | background-color: #fff3f3; 4 | color: #000; 5 | } 6 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/main/webapp/view/index.html: -------------------------------------------------------------------------------- 1 |
2 |
欢迎使用尚康阳光客户服务平台
3 |
-------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/combo_arrow.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/menu_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/panel_tools.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/tabs_icons.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/tree_icons.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/calendar_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/datagrid_icons.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/datebox_arrow.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/layout_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/linkbutton_bg.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/messager_icons.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/slider_handle.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/spinner_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/datagrid_icons.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/datebox_arrow.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/layout_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/linkbutton_bg.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/messager_icons.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/slider_handle.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/spinner_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/accordion_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/pagination_icons.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/passwordbox_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/passwordbox_close.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/passwordbox_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/passwordbox_open.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/searchbox_button.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/accordion_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/calendar_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/pagination_icons.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/passwordbox_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/passwordbox_close.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/passwordbox_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/passwordbox_open.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/searchbox_button.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/gray/images/validatebox_warning.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/default/images/validatebox_warning.png -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/icons/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doooyo/Weixin_Server/HEAD/src/main/webapp/easyui/themes/icons/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/async/service/LongTimeTaskCallback.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.async.service; 2 | 3 | public interface LongTimeTaskCallback { 4 | void callback(Object result); 5 | } 6 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/error404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 404 6 | 7 | 8 | 404 😢 9 | 10 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/error500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 500 6 | 7 | 8 | 500 😢 9 | 10 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/form/form_data1.json: -------------------------------------------------------------------------------- 1 | { 2 | "name":"easyui", 3 | "email":"easyui@gmail.com", 4 | "subject":"Subject Title", 5 | "message":"Message Content", 6 | "language":"de" 7 | } -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/exception.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | exception 6 | 7 | 8 | exception 😢 9 | 10 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/error_fileupload.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | error-file-upload 6 | 7 | 8 | error-file-upload 😢 9 | 10 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/weather/Observer.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.weather; 2 | 3 | /** 4 | * 观察者接口 5 | * @author duyu 6 | */ 7 | public interface Observer { 8 | public void update(WeatherSubject subject); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/mvc/DAO.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.common.mvc; 2 | 3 | /** 4 | * DAO层代码请继承此接口,以便mybatis扫描mapper文件 5 | * @author duyu 6 | * @since 28-02-17 7 | */ 8 | public interface DAO { 9 | public void init(); 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/common/Observer.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.common; 2 | 3 | /** 4 | * 观察者接口 5 | * @author duyu 6 | * 7 | */ 8 | public interface Observer { 9 | 10 | public void update(Subject subject); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/passwordbox.css: -------------------------------------------------------------------------------- 1 | .passwordbox-open { 2 | background: url('images/passwordbox_open.png') no-repeat center center; 3 | } 4 | .passwordbox-close { 5 | background: url('images/passwordbox_close.png') no-repeat center center; 6 | } 7 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/passwordbox.css: -------------------------------------------------------------------------------- 1 | .passwordbox-open { 2 | background: url('images/passwordbox_open.png') no-repeat center center; 3 | } 4 | .passwordbox-close { 5 | background: url('images/passwordbox_close.png') no-repeat center center; 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/socket/socket/SocketStart.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.socket.socket; 2 | 3 | public class SocketStart { 4 | 5 | public static void main(String[] args) { 6 | 7 | SocketClient client = new SocketClient(); 8 | client.showMainMenu(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.common.project.facet.core.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /.git 3 | /Runtime/* 4 | /*.sh 5 | /.idea 6 | /.svn 7 | /Runtime 8 | /Uploads 9 | .DS_Store 10 | /bin/ 11 | 12 | .classpath 13 | .project 14 | /catalina.home_IS_UNDEFINED/* 15 | /.settings* 16 | /src/main/java/com/whayer/wx/pay/util/Constant* 17 | /src/main/java/com/whayer/wx/wechat/util/Constant* 18 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/customized/Observer.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.customized; 2 | 3 | public interface Observer { 4 | //更新的接口 5 | public void update(WeatherSubject subject); 6 | //设置观察者名称 7 | public void setObserverName(String observerName); 8 | //获取观察者名称 9 | public String getObserverName(); 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/reflect/UserService.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.reflect; 2 | 3 | public class UserService { 4 | public void delete(){ 5 | System.out.println("删除用户"); 6 | } 7 | public void update(){ 8 | System.out.println("修改用户"); 9 | } 10 | public void find(){ 11 | System.out.println("查找用户"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/reflect/ClassDemo3.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.reflect; 2 | 3 | public class ClassDemo3 { 4 | public static void main(String[] args) { 5 | String s = "hello"; 6 | ClassUtil.printClassMethodMessage(s); 7 | 8 | Integer n1 = 1; 9 | ClassUtil.printClassMethodMessage(n1); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/utils/ConditionProvider.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.utils; 2 | 3 | 4 | public abstract class ConditionProvider { 5 | 6 | public abstract boolean condition(); 7 | 8 | 9 | public void onFail() { 10 | } 11 | 12 | 13 | public void onSuccess() { 14 | 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/exception/BadRequestException.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.exception; 2 | 3 | 4 | public class BadRequestException extends Exception { 5 | 6 | private static final long serialVersionUID = 1L; 7 | 8 | public BadRequestException(String message) { 9 | super(message); 10 | } 11 | 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/exception/FileCorruptedException.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.exception; 2 | 3 | 4 | public class FileCorruptedException extends Exception{ 5 | 6 | private static final long serialVersionUID = 1L; 7 | 8 | public FileCorruptedException(String string) { 9 | super(string); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/vouchers/vo/Voucher.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.vouchers.vo; 2 | 3 | 4 | import com.whayer.wx.coupon.vo.Coupon; 5 | 6 | /** 7 | * 现金劵 8 | * @author duyu 9 | * @see Coupon 10 | */ 11 | public class Voucher extends Coupon{ 12 | 13 | private static final long serialVersionUID = -6208299314293311477L; 14 | 15 | public Voucher(){ 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/reflect/ClassDemo5.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.reflect; 2 | 3 | public class ClassDemo5 { 4 | 5 | /** 6 | * @param args 7 | */ 8 | public static void main(String[] args) { 9 | // TODO Auto-generated method stub 10 | ClassUtil.printConMessage("hello"); 11 | ClassUtil.printConMessage(new Integer(1)); 12 | 13 | 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn:hover .m-btn-line, 2 | .s-btn-active .m-btn-line, 3 | .s-btn-plain-active .m-btn-line { 4 | display: inline-block; 5 | } 6 | .l-btn:hover .s-btn-downarrow, 7 | .s-btn-active .s-btn-downarrow, 8 | .s-btn-plain-active .s-btn-downarrow { 9 | border-style: solid; 10 | border-color: #bfbfbf; 11 | border-width: 0 0 0 1px; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/splitbutton.css: -------------------------------------------------------------------------------- 1 | .s-btn:hover .m-btn-line, 2 | .s-btn-active .m-btn-line, 3 | .s-btn-plain-active .m-btn-line { 4 | display: inline-block; 5 | } 6 | .l-btn:hover .s-btn-downarrow, 7 | .s-btn-active .s-btn-downarrow, 8 | .s-btn-plain-active .s-btn-downarrow { 9 | border-style: solid; 10 | border-color: #aac5e7; 11 | border-width: 0 0 0 1px; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/wechat/vo/CardInfoIsSelected.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.wechat.vo; 2 | 3 | public class CardInfoIsSelected extends CardInfo{ 4 | 5 | private Boolean isSelected; 6 | 7 | public CardInfoIsSelected() {} 8 | 9 | public Boolean getIsSelected() { 10 | return isSelected; 11 | } 12 | 13 | public void setIsSelected(Boolean isSelected) { 14 | this.isSelected = isSelected; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/web/UploadServletParameter.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.web; 2 | 3 | 4 | /** 5 | * One of the possible parameter that the servlet handles. 6 | * 7 | * @author antoinem 8 | * 9 | */ 10 | public enum UploadServletParameter { 11 | 12 | action, 13 | fileId, 14 | crc, 15 | rate, 16 | newFiles, 17 | clientId; 18 | 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/reflect/ClassDemo4.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.reflect; 2 | 3 | public class ClassDemo4 { 4 | 5 | /** 6 | * @param args 7 | */ 8 | public static void main(String[] args) { 9 | // TODO Auto-generated method stub 10 | ClassUtil.printFieldMessage("hello"); 11 | System.out.println("============="); 12 | ClassUtil.printFieldMessage(new Integer(1)); 13 | 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/timer/demo/DancingRobot.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.timer.demo; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.TimerTask; 5 | 6 | public class DancingRobot extends TimerTask { 7 | 8 | @Override 9 | public void run() { 10 | SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 11 | 12 | System.out.println("跳舞计划执行时间:" + sf.format(scheduledExecutionTime())); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/datagrid/products.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"productid":"FI-SW-01","productname":"Koi"}, 3 | {"productid":"K9-DL-01","productname":"Dalmation"}, 4 | {"productid":"RP-SN-01","productname":"Rattlesnake"}, 5 | {"productid":"RP-LI-02","productname":"Iguana"}, 6 | {"productid":"FL-DSH-01","productname":"Manx"}, 7 | {"productid":"FL-DLH-02","productname":"Persian"}, 8 | {"productid":"AV-CB-01","productname":"Amazon Parrot"} 9 | ] 10 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/exception/InvalidCrcException.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.exception; 2 | 3 | public class InvalidCrcException extends Exception { 4 | 5 | private static final long serialVersionUID = 1L; 6 | 7 | public InvalidCrcException(String crc32, String crc) { 8 | super("The file chunk is invalid. Expected "+crc32+" but received "+crc); 9 | } 10 | 11 | 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/test/annotation/Column.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.test.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Target({ElementType.FIELD}) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Documented 12 | public @interface Column { 13 | String value() default ""; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/resources/test/spring-resource.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/exception/FileStillProcessingException.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.exception; 2 | 3 | import java.util.UUID; 4 | 5 | 6 | public class FileStillProcessingException extends Exception { 7 | 8 | 9 | private static final long serialVersionUID = 1L; 10 | 11 | public FileStillProcessingException(UUID fileId) { 12 | super("The file "+fileId+" is still in a process. AsyncRequest ignored."); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/reflect/MethodDemo3.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.reflect; 2 | 3 | public class MethodDemo3 { 4 | 5 | /** 6 | * @param args 7 | */ 8 | public static void main(String[] args) { 9 | // TODO Auto-generated method stub 10 | User u1 = new User("zhangsan", "123456", 30); 11 | System.out.println(BeanUtil.getValueByPropertyName(u1, "username")); 12 | System.out.println(BeanUtil.getValueByPropertyName(u1, "userpass")); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/test/annotation/Table.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.test.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Target({ElementType.TYPE, ElementType.FIELD}) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Documented 12 | public @interface Table { 13 | String value() default ""; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/wechat/vo/AccessToken.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.wechat.vo; 2 | 3 | public class AccessToken { 4 | private String token; 5 | private int expiresIn; 6 | 7 | public String getToken() { 8 | return token; 9 | } 10 | 11 | public void setToken(String token) { 12 | this.token = token; 13 | } 14 | 15 | public int getExpiresIn() { 16 | return expiresIn; 17 | } 18 | 19 | public void setExpiresIn(int expiresIn) { 20 | this.expiresIn = expiresIn; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/filebox.css: -------------------------------------------------------------------------------- 1 | .filebox .textbox-value { 2 | vertical-align: top; 3 | position: absolute; 4 | top: 0; 5 | left: -5000px; 6 | } 7 | .filebox-label { 8 | display: inline-block; 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | cursor: pointer; 13 | left: 0; 14 | top: 0; 15 | z-index: 10; 16 | background: url('images/blank.gif') no-repeat; 17 | } 18 | .l-btn-disabled .filebox-label { 19 | cursor: default; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/filebox.css: -------------------------------------------------------------------------------- 1 | .filebox .textbox-value { 2 | vertical-align: top; 3 | position: absolute; 4 | top: 0; 5 | left: -5000px; 6 | } 7 | .filebox-label { 8 | display: inline-block; 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | cursor: pointer; 13 | left: 0; 14 | top: 0; 15 | z-index: 10; 16 | background: url('images/blank.gif') no-repeat; 17 | } 18 | .l-btn-disabled .filebox-label { 19 | cursor: default; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/web/UploadServletAction.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.web; 2 | 3 | 4 | /** 5 | * One of the possible action that the servlet handles. 6 | * 7 | * @author antoinem 8 | * 9 | */ 10 | public enum UploadServletAction { 11 | 12 | getConfig, 13 | getProgress, 14 | prepareUpload, 15 | clearFile, 16 | setRate, 17 | resumeFile, 18 | pauseFile, 19 | verifyCrcOfUncheckedPart, 20 | clearAll, 21 | upload; 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/wechat/servlet/InitServlet.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.wechat.servlet; 2 | 3 | import javax.servlet.ServletException; 4 | import javax.servlet.http.HttpServlet; 5 | 6 | import com.whayer.wx.wechat.util.TokenThread; 7 | 8 | @Deprecated 9 | public class InitServlet extends HttpServlet { 10 | 11 | private static final long serialVersionUID = 1L; 12 | 13 | @Deprecated 14 | public void init() throws ServletException { 15 | 16 | new Thread(new TokenThread()).start(); 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/demo.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family:verdana,helvetica,arial,sans-serif; 3 | padding:20px; 4 | font-size:12px; 5 | margin:0; 6 | } 7 | h2 { 8 | font-size:18px; 9 | font-weight:bold; 10 | margin:0; 11 | margin-bottom:15px; 12 | } 13 | .demo-info{ 14 | padding:0 0 12px 0; 15 | } 16 | .demo-tip{ 17 | display:none; 18 | } 19 | .label-top{ 20 | display: block; 21 | height: 22px; 22 | line-height: 22px; 23 | vertical-align: middle; 24 | } -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/StudentComparator.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx; 2 | 3 | import java.io.Serializable; 4 | import java.util.Comparator; 5 | 6 | public class StudentComparator implements Comparator, Serializable{ 7 | 8 | 9 | /** 10 | * 11 | */ 12 | private static final long serialVersionUID = 4174607548541500455L; 13 | 14 | @Override 15 | public int compare(Student o1, Student o2) { 16 | //String类型默认实现了Comparable接口,所以有compareTo方法 17 | return o1.name.compareTo(o2.name); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/common/ConcreteSubject.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.common; 2 | 3 | /** 4 | * 具体目标对象,负责把有关状态存入相应的观察者对象中 5 | * @author duyu 6 | * 7 | */ 8 | public class ConcreteSubject extends Subject{ 9 | 10 | //目标状态 11 | private String subjectState; 12 | 13 | public String getSubjectState() { 14 | return subjectState; 15 | } 16 | 17 | public void setSubjectState(String subjectState) { 18 | this.subjectState = subjectState; 19 | //目标一旦变化,立马通知所有观察者 20 | notifyObservers(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/exception/MissingParameterException.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.exception; 2 | 3 | import com.whayer.wx.upload.fileuploader.web.UploadServletParameter; 4 | 5 | public class MissingParameterException extends BadRequestException { 6 | 7 | private static final long serialVersionUID = 1L; 8 | 9 | public MissingParameterException(UploadServletParameter parameter) { 10 | super("The parameter " + parameter.name() + " is missing for this request."); 11 | } 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/order/dao/MemberDao.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.order.dao; 2 | 3 | import java.util.List; 4 | 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import com.whayer.wx.common.mvc.DAO; 9 | import com.whayer.wx.order.vo.Member; 10 | 11 | 12 | @Repository 13 | public interface MemberDao extends DAO{ 14 | 15 | 16 | public List getMemberList(); 17 | 18 | public int saveMember(Member member); 19 | 20 | public int isAccountExist(@Param("account") String account); 21 | } 22 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/weather/ConcreteWeatherSubject.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.weather; 2 | 3 | /** 4 | * 具体被观察的天气对象,一旦有天气更新,则通知所有订阅的人 5 | * @author duyu 6 | */ 7 | public class ConcreteWeatherSubject extends WeatherSubject{ 8 | 9 | //获取天气内容信息 10 | private String weatherContent; 11 | 12 | 13 | public String getWeatherContent() { 14 | return weatherContent; 15 | } 16 | 17 | public void setWeatherContent(String weatherContent) { 18 | this.weatherContent = weatherContent; 19 | //天气一旦变化,立马通知所有订阅了天气的人 20 | this.notifyObservers(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/reflect/ClassDemo2.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.reflect; 2 | 3 | public class ClassDemo2 { 4 | public static void main(String[] args) { 5 | 6 | Class c1 = int.class;//int 的类类型 7 | Class c2 = String.class;//String类的类类型 String类字节码(自己发明的) 8 | Class c3 = double.class; 9 | Class c4 = Double.class; 10 | Class c5 = void.class; 11 | 12 | System.out.println(c1.getName()); 13 | System.out.println(c2.getName()); 14 | System.out.println(c2.getSimpleName());//不包含包名的类的名称 15 | System.out.println(c5.getName()); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/wechat/util/DATE_TYPE.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.wechat.util; 2 | 3 | public enum DATE_TYPE { 4 | DATE_TYPE_FIX_TIME_RANGE("DATE_TYPE_FIX_TIME_RANGE"), //表示固定日期区间 5 | DATE_TYPE_FIX_TERM("DATE_TYPE_FIX_TERM"), //表示固定时长(自领取后按天算) 6 | DATE_TYPE_PERMANENT("DATE_TYPE_PERMANENT"); //表示永久有效(会员卡类型专用) 7 | 8 | private String dateType; 9 | 10 | private DATE_TYPE(String dateType) { 11 | this.dateType = dateType; 12 | } 13 | 14 | @Override 15 | public String toString() { 16 | return dateType; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/login/service/RoleService.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.login.service; 2 | 3 | import java.util.List; 4 | 5 | import com.github.pagehelper.PageInfo; 6 | import com.whayer.wx.common.mvc.Pagination; 7 | import com.whayer.wx.login.vo.Role; 8 | 9 | public interface RoleService { 10 | 11 | public PageInfo getRoleList(Pagination pagination); 12 | 13 | public List getAllRoleList(); 14 | 15 | public Role getById(String id); 16 | 17 | public int save(Role role); 18 | 19 | public int deleteById(String id); 20 | 21 | public int update(Role role); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/product/vo/ProductIsSelected.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.product.vo; 2 | 3 | public class ProductIsSelected extends Product{ 4 | 5 | private static final long serialVersionUID = -5408372383790360320L; 6 | 7 | private Boolean isSelected; 8 | 9 | public ProductIsSelected(){ 10 | 11 | } 12 | 13 | public Boolean getIsSelected() { 14 | return isSelected; 15 | } 16 | 17 | public void setIsSelected(Boolean isSelected) { 18 | this.isSelected = isSelected; 19 | } 20 | 21 | public static long getSerialversionuid() { 22 | return serialVersionUID; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/exception/UploadIsCurrentlyDisabled.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.exception; 2 | 3 | 4 | /** 5 | * Exception thrown if the uploads are not enabled at the moment. 6 | * @see JavaLargeFileUploaderService#enableFileUploader() 7 | * @see JavaLargeFileUploaderService#disableFileUploader() 8 | */ 9 | public class UploadIsCurrentlyDisabled extends Exception { 10 | 11 | private static final long serialVersionUID = 1L; 12 | 13 | public UploadIsCurrentlyDisabled() { 14 | super("All uploads are currently suspended."); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/listener/CommonHttpSessionListener.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.common.listener; 2 | 3 | //import javax.servlet.annotation.WebListener; 4 | import javax.servlet.http.HttpSessionEvent; 5 | import javax.servlet.http.HttpSessionListener; 6 | 7 | //@WebListener 8 | public class CommonHttpSessionListener implements HttpSessionListener{ 9 | 10 | @Override 11 | public void sessionCreated(HttpSessionEvent arg0) { 12 | System.out.println("会话session被创建"); 13 | } 14 | 15 | @Override 16 | public void sessionDestroyed(HttpSessionEvent arg0) { 17 | System.out.println("会话session被销毁"); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/notifer/JLFUListenerPropagator.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.notifer; 2 | 3 | 4 | import org.springframework.stereotype.Component; 5 | 6 | import com.whayer.wx.upload.notifer.utils.GenericPropagator; 7 | 8 | 9 | 10 | 11 | /** 12 | * Propagates the events to the registered listeners. 13 | * 14 | * @author antoinem 15 | * 16 | */ 17 | @Component 18 | public class JLFUListenerPropagator extends GenericPropagator { 19 | 20 | @Override 21 | protected Class getProxiedClass() { 22 | return JLFUListener.class; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/order/dao/ExamineeDao.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.order.dao; 2 | 3 | import java.util.List; 4 | 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import com.whayer.wx.common.mvc.DAO; 9 | import com.whayer.wx.order.vo.Examinee; 10 | 11 | @Repository 12 | public interface ExamineeDao extends DAO{ 13 | 14 | public List getExamineeList(); 15 | 16 | public Examinee getExamineeById(@Param("id") String id); 17 | 18 | public int saveExaminee(Examinee examinee); 19 | 20 | public int deleteExamineeById(@Param("id") String id); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/wechat/util/CARD_TYPE.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.wechat.util; 2 | 3 | public enum CARD_TYPE { 4 | GROUPON("GROUPON"), //团购券 5 | DISCOUNT("DISCOUNT"), //折扣券 6 | GIFT("GIFT"), //礼品券 7 | CASH("CASH"), //代金券 8 | GENERAL_COUPON("GENERAL_COUPON"),//通用券(无法满足上述四种时) 9 | MEMBER_CARD("MEMBER_CARD"); //会员卡 10 | 11 | private String cardType; 12 | 13 | private CARD_TYPE(String cardType) { 14 | this.cardType = cardType; 15 | } 16 | 17 | @Override 18 | public String toString() { 19 | return cardType; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/wechat/util/MyX509TrustManager.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.wechat.util; 2 | 3 | import java.security.cert.CertificateException; 4 | import java.security.cert.X509Certificate; 5 | 6 | import javax.net.ssl.X509TrustManager; 7 | 8 | public class MyX509TrustManager implements X509TrustManager { 9 | 10 | public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { 11 | } 12 | 13 | public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { 14 | } 15 | 16 | public X509Certificate[] getAcceptedIssuers() { 17 | return null; 18 | } 19 | } -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/common/ConcreteObserver.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.common; 2 | 3 | /** 4 | * 具体观察者 5 | * @author duyu 6 | * 7 | */ 8 | public class ConcreteObserver implements Observer{ 9 | 10 | private String observerState; 11 | 12 | /** 13 | * 接到通知,则更新目标对象状态到观察者状态中 14 | */ 15 | @Override 16 | public void update(Subject subject) { 17 | this.observerState = ((ConcreteSubject)subject).getSubjectState(); 18 | } 19 | 20 | public String getObserverState() { 21 | return observerState; 22 | } 23 | 24 | public void setObserverState(String observerState) { 25 | this.observerState = observerState; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/resources/mybatis-cfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/wechat/util/Constant.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.wechat.util; 2 | 3 | import com.whayer.wx.wechat.vo.AccessToken; 4 | 5 | public class Constant { 6 | 7 | public static final String APPID = ""; //"wxe6d4623ad9018e7e"; 8 | public static final String APPSECRET = ""; //"b371c2eb4c348828367ab949ee7d4f39"; 9 | public static final String TOKEN = ""; 10 | 11 | public static final String ORIGINALID = "";//minipro 12 | 13 | public static final String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET"; 14 | 15 | 16 | public static AccessToken ACCESS_TOKEN = null; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/order/service/MemberService.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.order.service; 2 | 3 | import com.github.pagehelper.PageInfo; 4 | import com.whayer.wx.common.mvc.Pagination; 5 | import com.whayer.wx.order.vo.Member; 6 | 7 | public interface MemberService { 8 | 9 | /** 10 | * 获取会员列表 11 | * @return 12 | */ 13 | public PageInfo getMemberList(Pagination pagination); 14 | 15 | /** 16 | * 保存会员 17 | * @param member 18 | * @return 19 | */ 20 | public Integer saveMember(Member member); 21 | 22 | /** 23 | * 检测会员账号是否存在 24 | * @param account 25 | * @return 26 | */ 27 | public Boolean isAccountExist(String account); 28 | } 29 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tagbox/tagbox_data1.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "id":"1", 3 | "text":"Java", 4 | "desc":"Write once, run anywhere" 5 | },{ 6 | "id":"2", 7 | "text":"C#", 8 | "desc":"One of the programming languages designed for the Common Language Infrastructure" 9 | },{ 10 | "id":"3", 11 | "text":"Ruby", 12 | "desc":"A dynamic, reflective, general-purpose object-oriented programming language" 13 | },{ 14 | "id":"4", 15 | "text":"Perl", 16 | "desc":"A high-level, general-purpose, interpreted, dynamic programming language" 17 | },{ 18 | "id":"5", 19 | "text":"Basic", 20 | "desc":"A family of general-purpose, high-level programming languages" 21 | }] -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/common/Subject.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.common; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | 7 | /** 8 | * 被观察目标对象 9 | * 提供注册,删除观察者 10 | * @author duyu 11 | * 12 | */ 13 | public class Subject { 14 | 15 | private List observers = new ArrayList(); 16 | 17 | public void attach(Observer observer){ 18 | observers.add(observer); 19 | } 20 | 21 | public void detach(Observer observer){ 22 | observers.remove(observer); 23 | } 24 | 25 | public void notifyObservers(){ 26 | for (Observer observer : observers) { 27 | observer.update(this); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/spring/SpringResourceTest.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.spring; 2 | 3 | import java.io.IOException; 4 | 5 | import org.junit.Test; 6 | 7 | import com.whayer.wx.base.UnitTestBase; 8 | import com.whayer.wx.test.spring.SpringResource; 9 | 10 | public class SpringResourceTest extends UnitTestBase{ 11 | 12 | public SpringResourceTest() { 13 | super("classpath:test/spring-resource.xml"); 14 | } 15 | 16 | @Test 17 | public void testResource() { 18 | SpringResource resource = super.getBean("springResource"); 19 | try { 20 | resource.getResource(); 21 | } catch (IOException e) { 22 | e.printStackTrace(); 23 | } 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/weather/WeatherSubject.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.weather; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | 7 | /** 8 | * 被观察目标对象 9 | * 提供注册,删除观察者 10 | * @author duyu 11 | */ 12 | public class WeatherSubject { 13 | 14 | private List observers = new ArrayList(); 15 | 16 | public void attach(Observer observer){ 17 | observers.add(observer); 18 | } 19 | 20 | public void detach(Observer observer){ 21 | observers.remove(observer); 22 | } 23 | 24 | public void notifyObservers(){ 25 | for (Observer observer : observers) { 26 | observer.update(this); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /.settings/.jsdtscope: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/combobox/combobox_data1.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "id":1, 3 | "text":"Java", 4 | "desc":"Write once, run anywhere" 5 | },{ 6 | "id":2, 7 | "text":"C#", 8 | "desc":"One of the programming languages designed for the Common Language Infrastructure" 9 | },{ 10 | "id":3, 11 | "text":"Ruby", 12 | "selected":true, 13 | "desc":"A dynamic, reflective, general-purpose object-oriented programming language" 14 | },{ 15 | "id":4, 16 | "text":"Perl", 17 | "desc":"A high-level, general-purpose, interpreted, dynamic programming language" 18 | },{ 19 | "id":5, 20 | "text":"Basic", 21 | "desc":"A family of general-purpose, high-level programming languages" 22 | }] -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/login/dao/RoleDao.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.login.dao; 2 | 3 | import java.util.List; 4 | 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import com.whayer.wx.common.mvc.DAO; 9 | import com.whayer.wx.login.vo.Role; 10 | 11 | @Repository 12 | public interface RoleDao extends DAO{ 13 | 14 | public List getRoleList(); 15 | 16 | public Role findById(@Param("id") String id); 17 | 18 | public Role findByCode(@Param("code") String code); 19 | 20 | public int save(Role role); 21 | 22 | public int update(Role role); 23 | 24 | public int deleteById(@Param("id") String id); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/authorizer/impl/DefaultAuthorizer.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.authorizer.impl; 2 | 3 | import java.util.UUID; 4 | 5 | import javax.servlet.http.HttpServletRequest; 6 | 7 | import org.springframework.stereotype.Component; 8 | 9 | import com.whayer.wx.upload.authorizer.Authorizer; 10 | import com.whayer.wx.upload.fileuploader.web.UploadServletAction; 11 | 12 | 13 | @Component 14 | public class DefaultAuthorizer implements Authorizer { 15 | 16 | @Override 17 | public void getAuthorization(HttpServletRequest request, UploadServletAction action, UUID clientId, UUID... optionalFileId) { 18 | // by default, all calls are authorized 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/listener/CommonServletRequestListener.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.common.listener; 2 | 3 | import javax.servlet.ServletRequestEvent; 4 | import javax.servlet.ServletRequestListener; 5 | 6 | /** 7 | * 可以监听每个请求 8 | * @author duyu 9 | * 10 | */ 11 | public class CommonServletRequestListener implements ServletRequestListener{ 12 | 13 | @Override 14 | public void requestDestroyed(ServletRequestEvent arg0) { 15 | System.out.println("请求结束时"); 16 | } 17 | 18 | @Override 19 | public void requestInitialized(ServletRequestEvent arg0) { 20 | String param = arg0.getServletRequest().getParameter("name"); 21 | System.out.println("请求监听器开始,参数为:" + param); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/jdk/Client.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.jdk; 2 | 3 | public class Client { 4 | 5 | public static void main(String[] args) { 6 | // 1 创建目标 7 | ConcreteWeatherSubject weather = new ConcreteWeatherSubject(); 8 | 9 | // 2 创建观察者 10 | ConcreteObserver observerFather = new ConcreteObserver(); 11 | observerFather.setObserverName("爸爸"); 12 | 13 | ConcreteObserver observerMother = new ConcreteObserver(); 14 | observerMother.setObserverName("妈妈"); 15 | 16 | // 3 注册观察者 17 | weather.addObserver(observerFather); 18 | weather.addObserver(observerMother); 19 | 20 | // 4 目标发布天气 21 | weather.setWeatherContent("明天天气晴朗,蓝天白云,气温26度"); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/product/dao/ProductCategoryDao.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.product.dao; 2 | 3 | import java.util.List; 4 | 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import com.whayer.wx.common.mvc.DAO; 9 | import com.whayer.wx.product.vo.ProductCategory; 10 | 11 | @Repository 12 | public interface ProductCategoryDao extends DAO{ 13 | 14 | public List getCategoryList(@Param("name") String name); 15 | 16 | public int saveCategory(ProductCategory productCategory); 17 | 18 | public int updateCategory(ProductCategory productCategory); 19 | 20 | public int deleteCategoryById(@Param("id") String id); 21 | } 22 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/jdk/ConcreteWeatherSubject.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.jdk; 2 | 3 | import java.util.Observable; 4 | 5 | public class ConcreteWeatherSubject extends Observable{ 6 | 7 | private String weatherContent; 8 | 9 | public String getWeatherContent() { 10 | return weatherContent; 11 | } 12 | 13 | public void setWeatherContent(String weatherContent) { 14 | //注意要现设置内容,然后再推送 15 | this.weatherContent = weatherContent; 16 | 17 | //注意JDK再通知前,必须先调用setChanged 18 | this.setChanged(); 19 | 20 | //【拉模式】,内部传递的是this; 跟我们自己实现的是一样的效果 21 | //this.notifyObservers(); 22 | 23 | //【推模式】内部已经实现了【拉模式】 24 | this.notifyObservers(weatherContent); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/wechat/util/CARD_STATUS.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.wechat.util; 2 | 3 | public enum CARD_STATUS { 4 | CARD_STATUS_NOT_VERIFY("CARD_STATUS_NOT_VERIFY"), //待审核 5 | CARD_STATUS_VERIFY_FAIL("CARD_STATUS_VERIFY_FAIL"), //审核失败 6 | CARD_STATUS_VERIFY_OK("CARD_STATUS_VERIFY_OK"), //通过审核 7 | CARD_STATUS_DELETE("CARD_STATUS_DELETE"), //卡券被商户删除 8 | CARD_STATUS_DISPATCH("CARD_STATUS_DISPATCH"); //在公众平台投放过的卡券 9 | 10 | private String cardStatus; 11 | 12 | private CARD_STATUS(String cardStatus) { 13 | this.cardStatus = cardStatus; 14 | } 15 | 16 | @Override 17 | public String toString() { 18 | return cardStatus; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tooltip/_dialog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Dialog Content 6 | 7 | 8 |
9 |
10 |
User Name:
11 | 12 |
13 |
14 |
Password:
15 | 16 |
17 |
18 | Login 19 | Cancel 20 |
21 |
22 | 23 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/customized/WeatherSubject.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.customized; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | 7 | public abstract class WeatherSubject { 8 | 9 | List observers = new ArrayList(); 10 | 11 | public void attach(Observer observer){ 12 | observers.add(observer); 13 | } 14 | 15 | public void detach(Observer observer){ 16 | observers.remove(observer); 17 | } 18 | 19 | /** 20 | * 为了定制通知方法,我们将之放到子类中实现 21 | * 同时使用protected修饰符,保证只能当前package的子类能访问;若子类跨包也可访问,以保证能重写 22 | * 但不能是default(friendly) 因为就算是子类,一旦跨包就不能访问(类似C#的internal,只能本程序集可见) 23 | */ 24 | protected abstract void notifyObservers(); 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/listener/CommonServletContextListener.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.common.listener; 2 | 3 | import javax.servlet.ServletContextEvent; 4 | import javax.servlet.ServletContextListener; 5 | 6 | public class CommonServletContextListener implements ServletContextListener{ 7 | 8 | @Override 9 | public void contextDestroyed(ServletContextEvent arg0) { 10 | /** 11 | * TODO 这里一般是解除数据库资源占用, 销毁定时任务等等... 12 | */ 13 | System.out.println("全局上下文监听器销毁"); 14 | } 15 | 16 | @Override 17 | public void contextInitialized(ServletContextEvent arg0) { 18 | String initParam = arg0.getServletContext().getInitParameter("test"); 19 | System.out.println("全局上下文监听器初始化参数:" + initParam); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/timer/demo/Excutor.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.timer.demo; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.Calendar; 5 | import java.util.Timer; 6 | 7 | public class Excutor { 8 | public static void main(String[] args) { 9 | Timer timer = new Timer(); 10 | 11 | Calendar calendar = Calendar.getInstance(); 12 | SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 13 | System.out.println("当前时间为:" + sf.format(calendar.getTime())); 14 | 15 | DancingRobot dr = new DancingRobot(); 16 | WaterRobot wr = new WaterRobot(timer); 17 | 18 | timer.schedule(dr, calendar.getTime(), 2000); 19 | timer.scheduleAtFixedRate(wr, calendar.getTime(), 1000); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/login/dao/CompanyDao.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.login.dao; 2 | 3 | import java.util.List; 4 | 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import com.whayer.wx.common.mvc.DAO; 9 | import com.whayer.wx.login.vo.Company; 10 | 11 | @Repository 12 | public interface CompanyDao extends DAO{ 13 | 14 | public List getCompanyList(@Param("name") String name); 15 | 16 | public Company findById(@Param("id") String id); 17 | 18 | public Company findByCode(@Param("code") String code); 19 | 20 | public int save(Company company); 21 | 22 | public int update(Company company); 23 | 24 | public int deleteById(@Param("id") String id); 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/pay/util/TimeUtils.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.pay.util; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.Calendar; 5 | import java.util.Date; 6 | 7 | public class TimeUtils { 8 | public static String getFormatTime(Date date, String format) { 9 | SimpleDateFormat sdf = new SimpleDateFormat(format); 10 | return sdf.format(date); 11 | } 12 | 13 | public static Date addDay(Date date, int day) { 14 | Calendar cal = Calendar.getInstance(); 15 | cal.setTime(date); 16 | cal.add(Calendar.DATE, 2); 17 | return cal.getTime(); 18 | } 19 | 20 | public static Date minusDay(Date date, int day) { 21 | return addDay(date, -day); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/exception/AuthorizationException.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.exception; 2 | 3 | 4 | import java.util.Arrays; 5 | import java.util.UUID; 6 | 7 | import com.whayer.wx.upload.fileuploader.web.UploadServletAction; 8 | 9 | 10 | 11 | public class AuthorizationException extends Exception { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | public AuthorizationException(UploadServletAction actionByParameterName, UUID clientId, UUID... optionalFileIds) { 16 | super("User " + clientId + " is not authorized to perform " + actionByParameterName + (optionalFileIds != null ? " on " + Arrays.toString(optionalFileIds) : "")); 17 | } 18 | 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/wechat/dao/Card2RoleDao.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.wechat.dao; 2 | 3 | import java.util.List; 4 | 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import com.whayer.wx.common.mvc.DAO; 9 | import com.whayer.wx.wechat.vo.CardInfo; 10 | import com.whayer.wx.wechat.vo.CardInfoIsSelected; 11 | 12 | @Repository 13 | public interface Card2RoleDao extends DAO{ 14 | 15 | List getCardList(@Param("title") String title); 16 | 17 | Integer deleteAllByRole(@Param("role") String role); 18 | 19 | Integer card2role(@Param("role") String role, @Param("ids") String... ids); 20 | 21 | public List getCardList2Role(@Param("role") String role); 22 | } -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/jdk/ConcreteObserver.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.jdk; 2 | 3 | import java.util.Observable; 4 | import java.util.Observer; 5 | 6 | public class ConcreteObserver implements Observer{ 7 | 8 | private String observerName; 9 | 10 | @Override 11 | public void update(Observable o, Object arg) { 12 | //【推模式】 13 | System.out.println(observerName + "收到了消息, 目标推送的消息是: " + arg); 14 | //【拉模式】 15 | System.out.println(observerName + "收到了消息, 主动拉取的消息是: " 16 | + ((ConcreteWeatherSubject)o).getWeatherContent()); 17 | } 18 | 19 | public String getObserverName() { 20 | return observerName; 21 | } 22 | 23 | public void setObserverName(String observerName) { 24 | this.observerName = observerName; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/reflect/reflect.txt: -------------------------------------------------------------------------------- 1 | 1.Class类 2 | 1) 在面向对象的世界里,万事万物皆对象。(java语言中,静态的成员、普通数据类型除外) 3 | 类是不是对象呢?类是(哪个类的对象呢?)谁的对象呢? 4 | 类是对象,类是java.lang.Class类的实例对象 5 | 2)这个对象到底如何表示 6 | 3 )Class.forName("类的全称") 7 | 不仅表示了,类的类类型,还代表了动态加载类 8 | 请大家区分编译、运行 9 | 编译时刻加载类是静态加载类、运行时刻加载类是动态加载类 10 | 4)基本的数据类型 11 | void关键字 都存在类类型 12 | 5)Class类的基本API操作 13 | 14 | 2.方法的反射 15 | 1)如何获取某个方法 16 | 方法的名称和方法的参数列表才能唯一决定某个方法 17 | 2)方法反射的操作 18 | method.invoke(对象,参数列表) 19 | 3)为什么要用方法的反射 20 | why?指定方法名称调用方法 21 | 举个实际应用的案例 ---->通过标准JavaBean的属性名获取其属性值 22 | BeanUtil类 23 | 4)通过Class,Method来认识泛型的本质 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/InetAdresTest.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx; 2 | 3 | import java.net.InetAddress; 4 | import java.net.UnknownHostException; 5 | import java.util.Arrays; 6 | 7 | public class InetAdresTest { 8 | public static void main(String[] args) throws UnknownHostException { 9 | InetAddress address = InetAddress.getLocalHost(); 10 | 11 | System.out.println("计算机名: " + address.getHostName()); 12 | System.out.println("IP: " + address.getHostAddress()); 13 | byte[] bytes = address.getAddress(); 14 | System.out.println("字节数组形式的IP: " + Arrays.toString(bytes)); 15 | 16 | InetAddress address2 =InetAddress.getByName("duyu-PC"); 17 | 18 | InetAddress address3 =InetAddress.getByName("192.168.0.101"); 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/calendar/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Calendar - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Basic Calendar

14 |

Click to select date.

15 |
16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/socket/socket/SocketServer.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.socket.socket; 2 | 3 | import java.io.IOException; 4 | import java.net.ServerSocket; 5 | import java.net.Socket; 6 | import java.util.Scanner; 7 | 8 | public class SocketServer { 9 | 10 | public static void main(String[] args) { 11 | try { 12 | System.out.println("-----启动socket服务------"); 13 | ServerSocket serversocket = new ServerSocket(1346); 14 | Socket socket = null; 15 | while (true) { 16 | socket = serversocket.accept(); 17 | System.out.println("欢迎您.."); 18 | SocketThread thread = new SocketThread(socket); 19 | thread.start(); 20 | 21 | } 22 | 23 | } catch (IOException e) { 24 | e.printStackTrace(); 25 | } 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/product/vo/ProductCategory.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.product.vo; 2 | 3 | import java.io.Serializable; 4 | 5 | public class ProductCategory implements Serializable{ 6 | 7 | 8 | private static final long serialVersionUID = 2400283620780381086L; 9 | 10 | private String id; //分类id 11 | private String name; //商品分类名 12 | 13 | public ProductCategory(){ 14 | 15 | } 16 | 17 | public String getId() { 18 | return id; 19 | } 20 | public void setId(String id) { 21 | this.id = id; 22 | } 23 | public String getName() { 24 | return name; 25 | } 26 | public void setName(String name) { 27 | this.name = name; 28 | } 29 | @Override 30 | public String toString() { 31 | return "ProductCategory [id=" + id + ", name=" + name + "]"; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/slider/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Slider - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Basic Slider

14 |

Drag the slider to change value.

15 |
16 | 17 | 18 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/observer/weather/Client.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.observer.weather; 2 | 3 | public class Client { 4 | public static void main(String[] args) { 5 | //1 创建目标 6 | ConcreteWeatherSubject weather = new ConcreteWeatherSubject(); 7 | 8 | //2 创建观察者 9 | ConcreteObserver observerFather = new ConcreteObserver(); 10 | observerFather.setObserverName("爸爸"); 11 | observerFather.setRemindContent("去钓鱼..."); 12 | 13 | ConcreteObserver observerMother = new ConcreteObserver(); 14 | observerMother.setObserverName("妈妈"); 15 | observerMother.setRemindContent("去逛商场买衣服..."); 16 | 17 | //3 注册观察者 18 | weather.attach(observerFather); 19 | weather.attach(observerMother); 20 | 21 | //4 目标发布天气 22 | weather.setWeatherContent("明天天气晴朗,蓝天白云,气温26度"); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/order/service/ExamineeService.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.order.service; 2 | 3 | import com.github.pagehelper.PageInfo; 4 | import com.whayer.wx.common.mvc.Pagination; 5 | import com.whayer.wx.order.vo.Examinee; 6 | 7 | public interface ExamineeService { 8 | /** 9 | * 获取体检者列表 10 | * @return 11 | */ 12 | public PageInfo getExamineeList(Pagination pagination); 13 | 14 | /** 15 | * 通过产品ID获取体检者详情 16 | * @param id 17 | * @return 18 | */ 19 | public Examinee getExamineeById(String id); 20 | 21 | /** 22 | * 保存体检者 23 | * @param product 24 | * @return 25 | */ 26 | public Integer saveExaminee(Examinee examinee); 27 | 28 | /** 29 | * 通过ID删除体检者 30 | * @param id 31 | * @return 32 | */ 33 | public Integer deleteExamineeById(String id); 34 | } 35 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/panel/_content.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AJAX Content 6 | 7 | 8 |

Here is the content loaded via AJAX.

9 |
    10 |
  • easyui is a collection of user-interface plugin based on jQuery.
  • 11 |
  • easyui provides essential functionality for building modern, interactive, javascript applications.
  • 12 |
  • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
  • 13 |
  • complete framework for HTML5 web page.
  • 14 |
  • easyui save your time and scales while developing your products.
  • 15 |
  • easyui is very easy but powerful.
  • 16 |
17 | 18 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tabs/_content.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AJAX Content 6 | 7 | 8 |

Here is the content loaded via AJAX.

9 |
    10 |
  • easyui is a collection of user-interface plugin based on jQuery.
  • 11 |
  • easyui provides essential functionality for building modern, interactive, javascript applications.
  • 12 |
  • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
  • 13 |
  • complete framework for HTML5 web page.
  • 14 |
  • easyui save your time and scales while developing your products.
  • 15 |
  • easyui is very easy but powerful.
  • 16 |
17 | 18 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tooltip/_content.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AJAX Content 6 | 7 | 8 |

Here is the content loaded via AJAX.

9 |
    10 |
  • easyui is a collection of user-interface plugin based on jQuery.
  • 11 |
  • easyui provides essential functionality for building modern, interactive, javascript applications.
  • 12 |
  • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
  • 13 |
  • complete framework for HTML5 web page.
  • 14 |
  • easyui save your time and scales while developing your products.
  • 15 |
  • easyui is very easy but powerful.
  • 16 |
17 | 18 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/utils/ClientToFilesMap.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.utils; 2 | 3 | import java.util.Map; 4 | import java.util.Set; 5 | import java.util.UUID; 6 | import java.util.concurrent.ConcurrentMap; 7 | 8 | import org.springframework.stereotype.Component; 9 | 10 | import com.google.common.collect.ForwardingMap; 11 | import com.google.common.collect.Maps; 12 | 13 | @Component 14 | public class ClientToFilesMap extends ForwardingMap> { 15 | 16 | /** Maps a client to its current requests */ 17 | private final ConcurrentMap> clientToRequestsMapping = Maps.newConcurrentMap(); 18 | 19 | @Override 20 | protected Map> delegate() { 21 | return clientToRequestsMapping; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/accordion/_content.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AJAX Content 6 | 7 | 8 |

Here is the content loaded via AJAX.

9 |
    10 |
  • easyui is a collection of user-interface plugin based on jQuery.
  • 11 |
  • easyui provides essential functionality for building modern, interactive, javascript applications.
  • 12 |
  • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
  • 13 |
  • complete framework for HTML5 web page.
  • 14 |
  • easyui save your time and scales while developing your products.
  • 15 |
  • easyui is very easy but powerful.
  • 16 |
17 | 18 | -------------------------------------------------------------------------------- /src/main/webapp/static/js/timeline/fx.js: -------------------------------------------------------------------------------- 1 | // 动画函数 2 | var fx = function( fn , begin , end ){ 3 | 4 | // 渐出特效 5 | fx.easeOut = function(t,b,c,d){ 6 | return -c *(t /= d)*(t-2) + b; 7 | } 8 | 9 | var options = arguments[3] || {}; 10 | var duration = options.duration || 500; 11 | var ease = options.ease || fx.easeOut; 12 | 13 | startTime = new Date().getTime(); 14 | 15 | (function(){ 16 | setTimeout(function(){ 17 | timestamp = new Date().getTime() - startTime; 18 | fn( ease( timestamp,begin, ( end - begin),duration) , 'step' ); 19 | 20 | if(duration <= timestamp){ 21 | fn( end , 'end' ); 22 | }else{ 23 | setTimeout(arguments.callee,25); 24 | } 25 | },25) 26 | })(); 27 | } -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/json/SimpleJsonObject.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.json; 2 | 3 | import java.io.Serializable; 4 | 5 | 6 | public class SimpleJsonObject 7 | implements Serializable { 8 | 9 | /** 10 | * generated id 11 | */ 12 | private static final long serialVersionUID = 1815625862539981019L; 13 | 14 | /** 15 | * Value. 16 | */ 17 | private String value; 18 | 19 | 20 | 21 | public SimpleJsonObject(String value) { 22 | super(); 23 | this.value = value; 24 | } 25 | 26 | 27 | public SimpleJsonObject() { 28 | super(); 29 | } 30 | 31 | 32 | public String getValue() { 33 | return value; 34 | } 35 | 36 | 37 | public void setValue(String value) { 38 | this.value = value; 39 | } 40 | 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/shell/CommandExecutorThread.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.common.shell; 2 | 3 | import com.whayer.wx.common.X; 4 | 5 | public class CommandExecutorThread implements Runnable { 6 | 7 | private static final String DOWNLOAD_DIRECTORY = "com.dy.httpdig.downloadDirectory"; 8 | private String cmd = null; 9 | 10 | public CommandExecutorThread(String cmd) { 11 | this.cmd = cmd; 12 | } 13 | 14 | // @Override 15 | public void run() { 16 | // TODO Auto-generated method stub 17 | X.makeDir(X.getConfig(DOWNLOAD_DIRECTORY)); 18 | String[] processResult = Terminal.execute(cmd, X.getConfig(DOWNLOAD_DIRECTORY), X.TRUE); 19 | if (X.SUCCESS.equals(processResult[0])) { 20 | Terminal.execute("echo '" + cmd + "' >> doneList", X.getConfig(DOWNLOAD_DIRECTORY), X.TRUE); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/login/service/CompanyService.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.login.service; 2 | 3 | import java.util.List; 4 | 5 | import com.github.pagehelper.PageInfo; 6 | import com.whayer.wx.common.mvc.Pagination; 7 | import com.whayer.wx.login.vo.Company; 8 | import com.whayer.wx.login.vo.Role; 9 | 10 | public interface CompanyService { 11 | 12 | public PageInfo getCompanyList(String name, Pagination pagination); 13 | 14 | public List getAllCompanyList(); 15 | 16 | public Company findById(String id); 17 | 18 | public Company findByCode(String code); 19 | 20 | public int save(Company company, Role role); 21 | 22 | public int update(Company company, Role role); 23 | 24 | //public int updateCompanyName(String id, String name); 25 | 26 | public int deleteById(String id); 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/product/service/ProductCategoryService.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.product.service; 2 | 3 | import java.util.List; 4 | 5 | import com.whayer.wx.product.vo.ProductCategory; 6 | 7 | public interface ProductCategoryService { 8 | 9 | /** 10 | * 获取产品分类列表 11 | * @param name 分类名模糊搜索 12 | * @return 13 | */ 14 | public List getCategoryList(String name); 15 | 16 | /** 17 | * 添加产品分类 18 | * @param productCategory 19 | * @return 20 | */ 21 | public int saveCategory(ProductCategory productCategory); 22 | 23 | /** 24 | * 更新产品分类 25 | * @param id 26 | * @return 27 | */ 28 | public int updateCategory(ProductCategory productCategory); 29 | 30 | /** 31 | * 删除产品分类 32 | * @param id 33 | * @return 34 | */ 35 | public int deleteCategoryById(String id); 36 | } 37 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/layout/_content.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AJAX Content 6 | 7 | 8 |

jQuery EasyUI framework help you build your web page easily.

9 |
    10 |
  • easyui is a collection of user-interface plugin based on jQuery.
  • 11 |
  • easyui provides essential functionality for building modern, interactive, javascript applications.
  • 12 |
  • using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.
  • 13 |
  • complete framework for HTML5 web page.
  • 14 |
  • easyui save your time and scales while developing your products.
  • 15 |
  • easyui is very easy but powerful.
  • 16 |
17 | 18 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/bean/BeanFactory.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.common.bean; 2 | 3 | import org.springframework.beans.BeansException; 4 | import org.springframework.beans.factory.BeanFactoryAware; 5 | 6 | public class BeanFactory implements BeanFactoryAware{ 7 | private static org.springframework.beans.factory.BeanFactory beanFactory; 8 | 9 | public static Object getBean(String beanName) { 10 | return beanFactory.getBean(beanName); 11 | } 12 | 13 | public static T getBean(String beanName, Class clazs) { 14 | return clazs.cast(getBean(beanName)); 15 | } 16 | 17 | @Override 18 | public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) throws BeansException { 19 | BeanFactory.beanFactory = beanFactory; 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/encrypt/BASE64.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.common.encrypt; 2 | 3 | import java.io.IOException; 4 | 5 | import sun.misc.BASE64Decoder; 6 | import sun.misc.BASE64Encoder; 7 | 8 | /** 9 | * BASE64文本编码解码 10 | * @author duyu 11 | * @since 28-02-17 12 | */ 13 | public final class BASE64 { 14 | private static BASE64Encoder encoder = new BASE64Encoder(); 15 | private static BASE64Decoder decoder = new BASE64Decoder(); 16 | 17 | public static String encrypt(String source) { 18 | return encoder.encode(source.getBytes()); 19 | } 20 | 21 | public static String decrypt(String encrypted) { 22 | String decrypted = null; 23 | try { 24 | decrypted = new String(decoder.decodeBuffer(encrypted)); 25 | } catch (IOException e) { 26 | e.printStackTrace(); 27 | } 28 | return decrypted; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/datalist/datalist_data1.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"text":"Epson WorkForce 845","group":"Printer"}, 3 | {"text":"Canon PIXMA MG5320","group":"Printer"}, 4 | {"text":"HP Deskjet 1000 Printer","group":"Printer"}, 5 | {"text":"Cisco RV110W-A-NA-K9","group":"Firewall"}, 6 | {"text":"ZyXEL ZyWALL USG50","group":"Firewall"}, 7 | {"text":"NETGEAR FVS318","group":"Firewall"}, 8 | {"text":"Logitech Keyboard K120","group":"Keyboard"}, 9 | {"text":"Microsoft Natural Ergonomic Keyboard 4000","group":"Keyboard"}, 10 | {"text":"Logitech Wireless Touch Keyboard K400","group":"Keyboard"}, 11 | {"text":"Logitech Gaming Keyboard G110","group":"Keyboard"}, 12 | {"text":"Nikon COOLPIX L26 16.1 MP","group":"Camera"}, 13 | {"text":"Canon PowerShot A1300","group":"Camera"}, 14 | {"text":"Canon PowerShot A2300","group":"Camera"} 15 | 16 | 17 | 18 | ] -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/layout/propertygrid_data1.json: -------------------------------------------------------------------------------- 1 | {"total":7,"rows":[ 2 | {"name":"Name","value":"Bill Smith","group":"ID Settings","editor":"text"}, 3 | {"name":"Address","value":"","group":"ID Settings","editor":"text"}, 4 | {"name":"Age","value":"40","group":"ID Settings","editor":"numberbox"}, 5 | {"name":"Birthday","value":"01/02/2012","group":"ID Settings","editor":"datebox"}, 6 | {"name":"SSN","value":"123-456-7890","group":"ID Settings","editor":"text"}, 7 | {"name":"Email","value":"bill@gmail.com","group":"Marketing Settings","editor":{ 8 | "type":"validatebox", 9 | "options":{ 10 | "validType":"email" 11 | } 12 | }}, 13 | {"name":"FrequentBuyer","value":"false","group":"Marketing Settings","editor":{ 14 | "type":"checkbox", 15 | "options":{ 16 | "on":true, 17 | "off":false 18 | } 19 | }} 20 | ]} -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/combo.css: -------------------------------------------------------------------------------- 1 | .combo-arrow { 2 | width: 18px; 3 | height: 20px; 4 | overflow: hidden; 5 | display: inline-block; 6 | vertical-align: top; 7 | cursor: pointer; 8 | opacity: 0.6; 9 | filter: alpha(opacity=60); 10 | } 11 | .combo-arrow-hover { 12 | opacity: 1.0; 13 | filter: alpha(opacity=100); 14 | } 15 | .combo-panel { 16 | overflow: auto; 17 | } 18 | .combo-arrow { 19 | background: url('images/combo_arrow.png') no-repeat center center; 20 | } 21 | .combo-panel { 22 | background-color: #ffffff; 23 | } 24 | .combo-arrow { 25 | background-color: #E0ECFF; 26 | } 27 | .combo-arrow-hover { 28 | background-color: #eaf2ff; 29 | } 30 | .combo-arrow:hover { 31 | background-color: #eaf2ff; 32 | } 33 | .combo .textbox-icon-disabled:hover { 34 | cursor: default; 35 | } 36 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/combo.css: -------------------------------------------------------------------------------- 1 | .combo-arrow { 2 | width: 18px; 3 | height: 20px; 4 | overflow: hidden; 5 | display: inline-block; 6 | vertical-align: top; 7 | cursor: pointer; 8 | opacity: 0.6; 9 | filter: alpha(opacity=60); 10 | } 11 | .combo-arrow-hover { 12 | opacity: 1.0; 13 | filter: alpha(opacity=100); 14 | } 15 | .combo-panel { 16 | overflow: auto; 17 | } 18 | .combo-arrow { 19 | background: url('images/combo_arrow.png') no-repeat center center; 20 | } 21 | .combo-panel { 22 | background-color: #ffffff; 23 | } 24 | .combo-arrow { 25 | background-color: #f3f3f3; 26 | } 27 | .combo-arrow-hover { 28 | background-color: #e2e2e2; 29 | } 30 | .combo-arrow:hover { 31 | background-color: #e2e2e2; 32 | } 33 | .combo .textbox-icon-disabled:hover { 34 | cursor: default; 35 | } 36 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/pagination/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Pagination - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Basic Pagination

14 |

The user can change page number and page size on page bar.

15 |
16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/propertygrid/propertygrid_data1.json: -------------------------------------------------------------------------------- 1 | {"total":7,"rows":[ 2 | {"name":"Name","value":"Bill Smith","group":"ID Settings","editor":"text"}, 3 | {"name":"Address","value":"","group":"ID Settings","editor":"text"}, 4 | {"name":"Age","value":"40","group":"ID Settings","editor":"numberbox"}, 5 | {"name":"Birthday","value":"01/02/2012","group":"ID Settings","editor":"datebox"}, 6 | {"name":"SSN","value":"123-456-7890","group":"ID Settings","editor":"text"}, 7 | {"name":"Email","value":"bill@gmail.com","group":"Marketing Settings","editor":{ 8 | "type":"validatebox", 9 | "options":{ 10 | "validType":"email" 11 | } 12 | }}, 13 | {"name":"FrequentBuyer","value":"false","group":"Marketing Settings","editor":{ 14 | "type":"checkbox", 15 | "options":{ 16 | "on":true, 17 | "off":false 18 | } 19 | }} 20 | ]} -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | padding: 0 5px; 6 | text-align: center; 7 | } 8 | .datebox-button a { 9 | line-height: 22px; 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #F4F4F4; 33 | } 34 | .datebox-button a { 35 | color: #444; 36 | } 37 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/datebox.css: -------------------------------------------------------------------------------- 1 | .datebox-calendar-inner { 2 | height: 180px; 3 | } 4 | .datebox-button { 5 | padding: 0 5px; 6 | text-align: center; 7 | } 8 | .datebox-button a { 9 | line-height: 22px; 10 | font-size: 12px; 11 | font-weight: bold; 12 | text-decoration: none; 13 | opacity: 0.6; 14 | filter: alpha(opacity=60); 15 | } 16 | .datebox-button a:hover { 17 | opacity: 1.0; 18 | filter: alpha(opacity=100); 19 | } 20 | .datebox-current, 21 | .datebox-close { 22 | float: left; 23 | } 24 | .datebox-close { 25 | float: right; 26 | } 27 | .datebox .combo-arrow { 28 | background-image: url('images/datebox_arrow.png'); 29 | background-position: center center; 30 | } 31 | .datebox-button { 32 | background-color: #fafafa; 33 | } 34 | .datebox-button a { 35 | color: #444; 36 | } 37 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 5px 5px 5px 5px; 5 | -webkit-border-radius: 5px 5px 5px 5px; 6 | border-radius: 5px 5px 5px 5px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 5px 0 0 5px; 19 | -webkit-border-radius: 5px 0 0 5px; 20 | border-radius: 5px 0 0 5px; 21 | } 22 | .progressbar { 23 | border-color: #D3D3D3; 24 | } 25 | .progressbar-text { 26 | color: #000000; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #0092DC; 31 | color: #fff; 32 | } 33 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/timer/ScheduleTest.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.timer; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.Calendar; 5 | import java.util.Timer; 6 | import java.util.TimerTask; 7 | 8 | public class ScheduleTest { 9 | public static void main(String[] args) { 10 | Calendar calendar = Calendar.getInstance(); 11 | SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 12 | System.out.println("当前时间为:" + sf.format(calendar.getTime())); 13 | 14 | //计划执行时间早于当前时间5秒 15 | calendar.add(Calendar.SECOND, -6); 16 | Timer timer = new Timer(); 17 | timer.scheduleAtFixedRate(new TimerTask() { 18 | //timer.schedule(new TimerTask() { 19 | @Override 20 | public void run() { 21 | System.out.println("计划执行时间:" + sf.format(scheduledExecutionTime())); 22 | } 23 | }, calendar.getTime(), 2000); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/reflect/BeanUtil.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.reflect; 2 | 3 | import java.lang.reflect.Method; 4 | 5 | public class BeanUtil { 6 | /** 7 | * 根据标准javaBean对象的属性名获取其属性值 8 | * 9 | * @param obj 10 | * @param propertyName 11 | * @return 12 | */ 13 | public static Object getValueByPropertyName(Object obj, String propertyName) { 14 | // 1.根据属性名称就可以获取其get方法 15 | String getMethodName = "get" 16 | + propertyName.substring(0, 1).toUpperCase() 17 | + propertyName.substring(1); 18 | //2.获取方法对象 19 | Class c = obj.getClass(); 20 | try { 21 | //get方法都是public的且无参数 22 | Method m= c.getMethod(getMethodName); 23 | //3 通过方法的反射操作方法 24 | Object value = m.invoke(obj); 25 | return value; 26 | } catch (Exception e) { 27 | e.printStackTrace(); 28 | return null; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/wechat/service/Card2RoleService.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.wechat.service; 2 | 3 | import java.util.List; 4 | 5 | import com.github.pagehelper.PageInfo; 6 | import com.whayer.wx.common.mvc.Pagination; 7 | import com.whayer.wx.wechat.vo.CardInfo; 8 | import com.whayer.wx.wechat.vo.CardInfoIsSelected; 9 | 10 | public interface Card2RoleService { 11 | /** 12 | * 获取卡劵分页列表 13 | * @param title 14 | * @param pagination 15 | * @return 16 | */ 17 | public PageInfo getCardList(String title, Pagination pagination); 18 | 19 | /** 20 | * 获取已打标的卡劵列表(关联角色) 21 | * @return 22 | */ 23 | public List getCardList2Role(String role); 24 | 25 | /** 26 | * 角色关联卡劵 27 | * @param role 28 | * @param ids 先删除该role的所有卡劵,再添加 29 | * @return 30 | */ 31 | public boolean card2role(String role, String[] ids); 32 | } 33 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/slider/rule.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Slider Rule - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Slider Rule

14 |

This sample shows how to define slider rule.

15 |
16 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/progressbar.css: -------------------------------------------------------------------------------- 1 | .progressbar { 2 | border-width: 1px; 3 | border-style: solid; 4 | -moz-border-radius: 5px 5px 5px 5px; 5 | -webkit-border-radius: 5px 5px 5px 5px; 6 | border-radius: 5px 5px 5px 5px; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | .progressbar-text { 11 | text-align: center; 12 | position: absolute; 13 | } 14 | .progressbar-value { 15 | position: relative; 16 | overflow: hidden; 17 | width: 0; 18 | -moz-border-radius: 5px 0 0 5px; 19 | -webkit-border-radius: 5px 0 0 5px; 20 | border-radius: 5px 0 0 5px; 21 | } 22 | .progressbar { 23 | border-color: #95B8E7; 24 | } 25 | .progressbar-text { 26 | color: #000000; 27 | font-size: 12px; 28 | } 29 | .progressbar-value .progressbar-text { 30 | background-color: #ffe48d; 31 | color: #000000; 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/ssh/Executer.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.common.ssh; 2 | 3 | import java.util.concurrent.LinkedBlockingQueue; 4 | 5 | 6 | public class Executer extends Shell implements Runnable { 7 | private String[] commands; 8 | 9 | public Executer(String address, String user, String pwd, String id, LinkedBlockingQueue queue) { 10 | super(address, user, pwd, id, queue); 11 | } 12 | 13 | public void addCommands(String[] commands) { 14 | this.commands = commands; 15 | } 16 | 17 | public void run() { 18 | for (String cmd : commands) { 19 | super.execute(cmd); 20 | while (!isValid) { 21 | try { 22 | Thread.sleep(100); 23 | } catch (InterruptedException e) { 24 | e.printStackTrace(); 25 | } 26 | } 27 | } 28 | close(); 29 | 30 | } 31 | 32 | public void close() { 33 | super.close(); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/URLTest.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx; 2 | import java.net.MalformedURLException; 3 | import java.net.URL; 4 | 5 | public class URLTest { 6 | public static void main(String[] args) throws MalformedURLException { 7 | //创建一个URL的实例 8 | URL baidu =new URL("http://www.baidu.com"); 9 | URL url =new URL(baidu,"/index.html?username=tom#test");//?表示参数,#表示锚点 10 | System.out.println("协议: " + url.getProtocol());//获取协议 11 | System.out.println("主机: " + url.getHost());//获取主机 12 | System.out.println("端口: " + url.getPort());//如果没有指定端口号,根据协议不同使用默认端口。此时getPort()方法的返回值为 -1 13 | System.out.println("文件路径: " + url.getPath());//获取文件路径 14 | System.out.println("文件名: " + url.getFile());//文件名,包括文件路径+参数 15 | System.out.println("锚点: " + url.getRef());//相对路径,就是锚点,即#号后面的内容 16 | System.out.println("查询参数: " + url.getQuery());//查询字符串,即参数 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/calendar/weeknumber.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Week Number on Calendar - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Week Number on Calendar

14 |

This example shows how to display the week number on calendar.

15 |
16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tree/lines.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Tree Lines - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Tree Lines

14 |

This sample shows how to show tree lines.

15 |
16 |
17 |
    18 |
    19 | 20 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group, 3 | .combobox-stick { 4 | font-size: 12px; 5 | padding: 3px; 6 | } 7 | .combobox-item-disabled { 8 | opacity: 0.5; 9 | filter: alpha(opacity=50); 10 | } 11 | .combobox-gitem { 12 | padding-left: 10px; 13 | } 14 | .combobox-group, 15 | .combobox-stick { 16 | font-weight: bold; 17 | } 18 | .combobox-stick { 19 | position: absolute; 20 | top: 1px; 21 | left: 1px; 22 | right: 1px; 23 | background: inherit; 24 | } 25 | .combobox-item-hover { 26 | background-color: #e2e2e2; 27 | color: #000000; 28 | } 29 | .combobox-item-selected { 30 | background-color: #0092DC; 31 | color: #fff; 32 | } 33 | .combobox-icon { 34 | display: inline-block; 35 | width: 16px; 36 | height: 16px; 37 | vertical-align: middle; 38 | margin-right: 2px; 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/algorithm/SelectionSort.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.common.algorithm; 2 | 3 | /** 4 | * 选择排序 5 | * @author duyu 6 | * 7 | */ 8 | public class SelectionSort { 9 | public static void main(String[] args) { 10 | int[] arr = { 1, 3, 2, 45, 65, 33, 12 }; 11 | 12 | _selectionSort(arr); 13 | 14 | for (int num : arr) { 15 | System.out.print(num + " "); 16 | } 17 | } 18 | 19 | public static void _selectionSort(int... arr) { 20 | // 选择排序的优化 21 | for (int i = 0; i < arr.length - 1; i++) {// 做第i趟排序 22 | int k = i; 23 | for (int j = k + 1; j < arr.length; j++) {// 选最小的记录 24 | if (arr[j] < arr[k]) { 25 | k = j; // 记下目前找到的最小值所在的位置 26 | } 27 | } 28 | // 在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换 29 | if (i != k) { // 交换a[i]和a[k] 30 | int temp = arr[i]; 31 | arr[i] = arr[k]; 32 | arr[k] = temp; 33 | } 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/combobox.css: -------------------------------------------------------------------------------- 1 | .combobox-item, 2 | .combobox-group, 3 | .combobox-stick { 4 | font-size: 12px; 5 | padding: 3px; 6 | } 7 | .combobox-item-disabled { 8 | opacity: 0.5; 9 | filter: alpha(opacity=50); 10 | } 11 | .combobox-gitem { 12 | padding-left: 10px; 13 | } 14 | .combobox-group, 15 | .combobox-stick { 16 | font-weight: bold; 17 | } 18 | .combobox-stick { 19 | position: absolute; 20 | top: 1px; 21 | left: 1px; 22 | right: 1px; 23 | background: inherit; 24 | } 25 | .combobox-item-hover { 26 | background-color: #eaf2ff; 27 | color: #000000; 28 | } 29 | .combobox-item-selected { 30 | background-color: #ffe48d; 31 | color: #000000; 32 | } 33 | .combobox-icon { 34 | display: inline-block; 35 | width: 16px; 36 | height: 16px; 37 | vertical-align: middle; 38 | margin-right: 2px; 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/mvc/Pagination.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.common.mvc; 2 | 3 | /** 4 | * https://github.com/pagehelper/Mybatis-PageHelper 5 | * @author duyu 6 | * 7 | */ 8 | public final class Pagination { 9 | private int pageNum = 1; // 当前页码 10 | private int pageSize = 20; // 每页size 默认20 11 | private int navigationSize = 10; // 分页条相邻页数量 默认10 12 | 13 | public int getPageNum() { 14 | return pageNum; 15 | } 16 | 17 | public void setPageNum(int pageNum) { 18 | this.pageNum = pageNum; 19 | } 20 | 21 | public int getPageSize() { 22 | return pageSize; 23 | } 24 | 25 | public void setPageSize(int pageSize) { 26 | this.pageSize = pageSize; 27 | } 28 | 29 | public int getNavigationSize() { 30 | return navigationSize; 31 | } 32 | 33 | public void setNavigationSize(int navigationSize) { 34 | this.navigationSize = navigationSize; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tooltip/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Tooltip - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

    Basic Tooltip

    14 |

    Hover the links to display tooltip message.

    15 |
    16 |

    The tooltip can use each elements title attribute. 17 | Hover me to display tooltip. 18 |

    19 | 20 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tree/icons.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Tree Node Icons - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

    Tree Node Icons

    14 |

    This sample illustrates how to add icons to tree node.

    15 |
    16 |
    17 |
      18 |
      19 | 20 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tree/animation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Animation Tree - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

      Animation Tree

      14 |

      Apply 'animate' property to true to enable animation effect.

      15 |
      16 |
      17 |
        18 |
        19 | 20 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #ddd; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #f3f3f3; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #ddd; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #f3f3f3; 28 | } 29 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tree/dnd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Drag Drop Tree Nodes - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

        Drag Drop Tree Nodes

        14 |

        Press mouse down and drag a node to another position.

        15 |
        16 |
        17 |
          18 |
          19 | 20 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/treegrid/treegrid_data2.json: -------------------------------------------------------------------------------- 1 | {"total":7,"rows":[ 2 | {"id":1,"name":"All Tasks","begin":"3/4/2010","end":"3/20/2010","progress":60,"iconCls":"icon-ok"}, 3 | {"id":2,"name":"Designing","begin":"3/4/2010","end":"3/10/2010","progress":100,"_parentId":1,"state":"closed"}, 4 | {"id":21,"name":"Database","persons":2,"begin":"3/4/2010","end":"3/6/2010","progress":100,"_parentId":2}, 5 | {"id":22,"name":"UML","persons":1,"begin":"3/7/2010","end":"3/8/2010","progress":100,"_parentId":2}, 6 | {"id":23,"name":"Export Document","persons":1,"begin":"3/9/2010","end":"3/10/2010","progress":100,"_parentId":2}, 7 | {"id":3,"name":"Coding","persons":2,"begin":"3/11/2010","end":"3/18/2010","progress":80}, 8 | {"id":4,"name":"Testing","persons":1,"begin":"3/19/2010","end":"3/20/2010","progress":20} 9 | ],"footer":[ 10 | {"name":"Total Persons:","persons":7,"iconCls":"icon-sum"} 11 | ]} 12 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/propertygrid.css: -------------------------------------------------------------------------------- 1 | .propertygrid .datagrid-view1 .datagrid-body td { 2 | padding-bottom: 1px; 3 | border-width: 0 1px 0 0; 4 | } 5 | .propertygrid .datagrid-group { 6 | height: 21px; 7 | overflow: hidden; 8 | border-width: 0 0 1px 0; 9 | border-style: solid; 10 | } 11 | .propertygrid .datagrid-group span { 12 | font-weight: bold; 13 | } 14 | .propertygrid .datagrid-view1 .datagrid-body td { 15 | border-color: #dddddd; 16 | } 17 | .propertygrid .datagrid-view1 .datagrid-group { 18 | border-color: #E0ECFF; 19 | } 20 | .propertygrid .datagrid-view2 .datagrid-group { 21 | border-color: #dddddd; 22 | } 23 | .propertygrid .datagrid-group, 24 | .propertygrid .datagrid-view1 .datagrid-body, 25 | .propertygrid .datagrid-view1 .datagrid-row-over, 26 | .propertygrid .datagrid-view1 .datagrid-row-selected { 27 | background: #E0ECFF; 28 | } 29 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tagbox/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic TagBox - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Basic TagBox

          14 |

          The TagBox is created from a simple input element.

          15 |
          16 |
          17 | 18 |
          19 | 20 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/reflect/User.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.reflect; 2 | //标准的JavaBean类有私有属性都对应有get/set方法,有无参数的构造方法 3 | public class User { 4 | private String username; 5 | private String userpass; 6 | private int age; 7 | public User(){} 8 | 9 | public User(String username, String userpass, int age) { 10 | super(); 11 | this.username = username; 12 | this.userpass = userpass; 13 | this.age = age; 14 | } 15 | 16 | public String getUsername() { 17 | return username; 18 | } 19 | public void setUsername(String username) { 20 | this.username = username; 21 | } 22 | public String getUserpass() { 23 | return userpass; 24 | } 25 | public void setUserpass(String userpass) { 26 | this.userpass = userpass; 27 | } 28 | public int getAge() { 29 | return age; 30 | } 31 | public void setAge(int age) { 32 | this.age = age; 33 | } 34 | 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/datalist/remotedata.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Binding to Remote Data - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Binding to Remote Data

          14 |

          The DataList is bound to a remote data.

          15 |
          16 |
          20 |
          21 | 22 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/slider/range.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Range Slider - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Range Slider

          14 |

          This sample shows how to define a range slider.

          15 |
          16 | 22 | 23 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/panel/fluid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Fluid Panel - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Fluid Panel

          14 |

          This example shows how to set the width of Panel to a percentage of its parent container.

          15 |
          16 |
          17 |
          18 |

          The panel has a width of 100%.

          19 |

          20 | 21 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/SpringFactoryTest.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx; 2 | 3 | 4 | import org.junit.BeforeClass; 5 | import org.junit.Test; 6 | 7 | import com.whayer.wx.base.UnitTestBase; 8 | import com.whayer.wx.common.bean.SpringFactory; 9 | import com.whayer.wx.test.controller.TestBean; 10 | 11 | public class SpringFactoryTest extends UnitTestBase{ 12 | 13 | public SpringFactoryTest() { 14 | super("classpath:IOC.xml"); 15 | } 16 | 17 | //private static ApplicationContext ctx; 18 | 19 | @BeforeClass 20 | public static void setUpBeforeClass() throws Exception { 21 | //ctx = new FileSystemXmlApplicationContext("classpath:IOC.xml"); 22 | } 23 | 24 | @Test 25 | public void test() { 26 | SpringFactory springFactory = super.getBean("springFactory"); 27 | TestBean bean = (TestBean)springFactory.getBean("testBean"); 28 | //TestBean bean = (TestBean)ctx.getBean("testBean"); 29 | bean.hello(); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/datalist/group.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Group DataList - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Group DataList

          14 |

          This example shows how to display items in groups.

          15 |
          16 |
          21 |
          22 | 23 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/timer/demo/WaterRobot.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.timer.demo; 2 | 3 | import java.util.Timer; 4 | import java.util.TimerTask; 5 | 6 | public class WaterRobot extends TimerTask{ 7 | 8 | private Timer timer; 9 | private int bucketCapacity = 0; 10 | 11 | public WaterRobot(Timer inputTimer) { 12 | this.timer = inputTimer; 13 | } 14 | 15 | @Override 16 | public void run() { 17 | if(bucketCapacity < 5){ 18 | System.out.println("加1L水到桶里"); 19 | bucketCapacity++; 20 | }else{ 21 | System.out.println("当前取消的任务数量为:" + timer.purge()); 22 | cancel(); 23 | System.out.println("加水任务被取消"); 24 | System.out.println("当前取消的任务数量为:" + timer.purge()); 25 | System.out.println("当前桶的容量为:" + bucketCapacity + "L"); 26 | //等待两秒,终止timer所有任务 27 | try { 28 | Thread.sleep(2000); 29 | } catch (InterruptedException e) { 30 | e.printStackTrace(); 31 | } 32 | timer.cancel(); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/pagination/simple.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Simplify Pagination - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Simplify Pagination

          14 |

          The sample shows how to simplify pagination.

          15 |
          16 |
          17 |
          23 |
          24 | 25 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/jdbc/DBUtil.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.jdbc; 2 | 3 | import java.sql.DriverManager; 4 | import java.sql.ResultSet; 5 | import java.sql.Statement; 6 | 7 | 8 | 9 | public class DBUtil { 10 | 11 | private static final String URL = "jdbc:mysql://localhost:3306/SKYG"; 12 | private static final String USER = "root"; 13 | private static final String PASSWORD = "duyu2008"; 14 | 15 | public static void main(String[] args) throws Exception { 16 | //加载mysql驱动 17 | Class.forName("com.mysql.jdbc.Driver"); 18 | //加载数据库连接 19 | java.sql.Connection conn = DriverManager.getConnection(URL, USER, PASSWORD); 20 | Statement statement = conn.createStatement(); 21 | 22 | ResultSet set = statement.executeQuery("select username,password,mobile from sk_user limit 10"); 23 | while (set.next()) { 24 | System.out.println(set.getString("username")+", "+set.getString("password")+", "+ set.getString("mobile") ); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/vouchers/service/VoucherService.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.vouchers.service; 2 | 3 | import com.github.pagehelper.PageInfo; 4 | import com.whayer.wx.common.mvc.Pagination; 5 | import com.whayer.wx.vouchers.vo.Voucher; 6 | 7 | public interface VoucherService { 8 | /** 9 | * 通过用户获取代金劵列表 10 | * @return 11 | */ 12 | public PageInfo getVoucherListByUid(String userId, Pagination pagination); 13 | 14 | /** 15 | * 通过优惠卷ID获取代金劵详情 16 | * @param id 17 | * @return 18 | */ 19 | public Voucher getVoucherById(String id); 20 | 21 | /** 22 | * 添加保存代金劵 23 | * @param Voucher 24 | * @return 25 | */ 26 | public Integer saveVoucher(Voucher voucher); 27 | 28 | /** 29 | * 更新代金劵 30 | * @param voucher 31 | * @return 32 | */ 33 | public Integer updateVoucher(Voucher voucher); 34 | 35 | /** 36 | * 通过ID删除代金劵 37 | * @param id 38 | * @return 39 | */ 40 | public Integer deleteVoucherById(String id); 41 | } 42 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/timer/scheduleAtFixedRateTest.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.timer; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.Calendar; 5 | import java.util.Timer; 6 | import java.util.TimerTask; 7 | 8 | public class scheduleAtFixedRateTest { 9 | public static void main(String[] args) { 10 | Calendar calendar = Calendar.getInstance(); 11 | SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 12 | System.out.println("当前时间为:" + sf.format(calendar.getTime())); 13 | 14 | Timer timer = new Timer(); 15 | timer.scheduleAtFixedRate(new TimerTask() { 16 | //timer.schedule(new TimerTask() { 17 | @Override 18 | public void run() { 19 | //模拟任务执行3s 20 | try { 21 | Thread.sleep(3000); 22 | } catch (InterruptedException e) { 23 | e.printStackTrace(); 24 | } 25 | System.out.println("计划执行时间:" + sf.format(scheduledExecutionTime())); 26 | } 27 | }, calendar.getTime(), 2000); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/pagination/links.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Pagination Links - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Pagination Links

          14 |

          The example shows how to customize numbered pagination links.

          15 |
          16 |
          17 |
          21 |
          22 | 23 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/http/HttpCode.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.common.http; 2 | 3 | public enum HttpCode { 4 | INVALID(-1), 5 | HTTP_NONE(0), 6 | 7 | HTTP_OK(200), 8 | 9 | HTTP_MOVED_PERMANENTLY(301), // 永久重定向 10 | HTTP_FOUND(302), // 临时重定向 11 | 12 | HTTP_BAD_REQUEST(400), //参数错误 13 | 14 | 15 | // 参数错误 16 | HTTP_UNAUTHORIZED(401), // 身份验证失败,无token信息 17 | HTTP_FORBIDDEN(403), // 无权限 18 | HTTP_NOT_FOUND(404), 19 | HTTP_METHOD_NOT_ALLOWED(405), // 资源被禁止,例如:Http Method 不正确 20 | 21 | HTTP_INTERNAL_SERVER_ERROR(500); // 程序代码抛出异常 22 | 23 | // 定义私有变量 24 | private int val; 25 | 26 | // 构造函数,枚举类型只能为私有 27 | private HttpCode(int val) { 28 | this.val = val; 29 | } 30 | 31 | public int value() { 32 | return this.val; 33 | } 34 | 35 | @Override 36 | public String toString() { 37 | return String.valueOf(this.val); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tabs/tree_data1.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "id":1, 3 | "text":"My Documents", 4 | "children":[{ 5 | "id":11, 6 | "text":"Photos", 7 | "state":"closed", 8 | "children":[{ 9 | "id":111, 10 | "text":"Friend" 11 | },{ 12 | "id":112, 13 | "text":"Wife" 14 | },{ 15 | "id":113, 16 | "text":"Company" 17 | }] 18 | },{ 19 | "id":12, 20 | "text":"Program Files", 21 | "children":[{ 22 | "id":121, 23 | "text":"Intel" 24 | },{ 25 | "id":122, 26 | "text":"Java", 27 | "attributes":{ 28 | "p1":"Custom Attribute1", 29 | "p2":"Custom Attribute2" 30 | } 31 | },{ 32 | "id":123, 33 | "text":"Microsoft Office" 34 | },{ 35 | "id":124, 36 | "text":"Games", 37 | "checked":true 38 | }] 39 | },{ 40 | "id":13, 41 | "text":"index.html" 42 | },{ 43 | "id":14, 44 | "text":"about.html" 45 | },{ 46 | "id":15, 47 | "text":"welcome.html" 48 | }] 49 | }] 50 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tree/tree_data1.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "id":1, 3 | "text":"My Documents", 4 | "children":[{ 5 | "id":11, 6 | "text":"Photos", 7 | "state":"closed", 8 | "children":[{ 9 | "id":111, 10 | "text":"Friend" 11 | },{ 12 | "id":112, 13 | "text":"Wife" 14 | },{ 15 | "id":113, 16 | "text":"Company" 17 | }] 18 | },{ 19 | "id":12, 20 | "text":"Program Files", 21 | "children":[{ 22 | "id":121, 23 | "text":"Intel" 24 | },{ 25 | "id":122, 26 | "text":"Java", 27 | "attributes":{ 28 | "p1":"Custom Attribute1", 29 | "p2":"Custom Attribute2" 30 | } 31 | },{ 32 | "id":123, 33 | "text":"Microsoft Office" 34 | },{ 35 | "id":124, 36 | "text":"Games", 37 | "checked":true 38 | }] 39 | },{ 40 | "id":13, 41 | "text":"index.html" 42 | },{ 43 | "id":14, 44 | "text":"about.html" 45 | },{ 46 | "id":15, 47 | "text":"welcome.html" 48 | }] 49 | }] 50 | -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.common.component: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | uses 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/combotree/tree_data1.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "id":1, 3 | "text":"My Documents", 4 | "children":[{ 5 | "id":11, 6 | "text":"Photos", 7 | "state":"closed", 8 | "children":[{ 9 | "id":111, 10 | "text":"Friend" 11 | },{ 12 | "id":112, 13 | "text":"Wife" 14 | },{ 15 | "id":113, 16 | "text":"Company" 17 | }] 18 | },{ 19 | "id":12, 20 | "text":"Program Files", 21 | "children":[{ 22 | "id":121, 23 | "text":"Intel" 24 | },{ 25 | "id":122, 26 | "text":"Java", 27 | "attributes":{ 28 | "p1":"Custom Attribute1", 29 | "p2":"Custom Attribute2" 30 | } 31 | },{ 32 | "id":123, 33 | "text":"Microsoft Office" 34 | },{ 35 | "id":124, 36 | "text":"Games", 37 | "checked":true 38 | }] 39 | },{ 40 | "id":13, 41 | "text":"index.html" 42 | },{ 43 | "id":14, 44 | "text":"about.html" 45 | },{ 46 | "id":15, 47 | "text":"welcome.html" 48 | }] 49 | }] 50 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/layout/tree_data1.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "id":1, 3 | "text":"My Documents", 4 | "children":[{ 5 | "id":11, 6 | "text":"Photos", 7 | "state":"closed", 8 | "children":[{ 9 | "id":111, 10 | "text":"Friend" 11 | },{ 12 | "id":112, 13 | "text":"Wife" 14 | },{ 15 | "id":113, 16 | "text":"Company" 17 | }] 18 | },{ 19 | "id":12, 20 | "text":"Program Files", 21 | "children":[{ 22 | "id":121, 23 | "text":"Intel" 24 | },{ 25 | "id":122, 26 | "text":"Java", 27 | "attributes":{ 28 | "p1":"Custom Attribute1", 29 | "p2":"Custom Attribute2" 30 | } 31 | },{ 32 | "id":123, 33 | "text":"Microsoft Office" 34 | },{ 35 | "id":124, 36 | "text":"Games", 37 | "checked":true 38 | }] 39 | },{ 40 | "id":13, 41 | "text":"index.html" 42 | },{ 43 | "id":14, 44 | "text":"about.html" 45 | },{ 46 | "id":15, 47 | "text":"welcome.html" 48 | }] 49 | }] 50 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/slider/vertical.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vertical Slider - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Vertical Slider

          14 |

          This sample shows how to create a vertical slider.

          15 |
          16 |
          17 | 23 |
          24 | 25 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/panel/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Panel Footer - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Panel Footer

          14 |

          The panel footer is displayed at the bottom of the panel and can consist of any other components.

          15 |
          16 |
          17 |
          18 | 21 | 22 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/authorizer/Authorizer.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.authorizer; 2 | 3 | import java.util.UUID; 4 | 5 | import javax.servlet.http.HttpServletRequest; 6 | 7 | import com.whayer.wx.upload.fileuploader.exception.AuthorizationException; 8 | import com.whayer.wx.upload.fileuploader.web.UploadServletAction; 9 | 10 | 11 | public interface Authorizer { 12 | 13 | /** 14 | * @param request 15 | * the initial servlet request 16 | * @param action 17 | * the action that the client wishes to perform 18 | * @param clientId 19 | * the identifier of the client 20 | * @param optionalFileIds 21 | * if available, the file id(s) 22 | * @throws AuthorizationException 23 | * if the client cannot perform the action on this file 24 | */ 25 | void getAuthorization(HttpServletRequest request, UploadServletAction action, UUID clientId, UUID... optionalFileIds) 26 | throws AuthorizationException; 27 | 28 | } -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/socket/service/FileService.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.socket.service; 2 | 3 | import java.sql.Connection; 4 | import java.sql.PreparedStatement; 5 | import java.sql.ResultSet; 6 | import java.sql.SQLException; 7 | 8 | import com.whayer.wx.socket.entity.File; 9 | import com.whayer.wx.socket.util.Util; 10 | 11 | public class FileService { 12 | private Connection conn = null; 13 | private PreparedStatement ptmt = null; 14 | private ResultSet rs = null; 15 | 16 | public void savefile(File file) { 17 | String sql = (" insert into tb_file(fname,focntent) values(?,?)"); 18 | try { 19 | conn = Util.getConnection(); 20 | ptmt = conn.prepareStatement(sql); 21 | ptmt.setString(1, file.getFname()); 22 | ptmt.setBytes(2, file.getFocntent()); 23 | ptmt.executeUpdate(); 24 | } catch ( 25 | 26 | SQLException e) { 27 | e.printStackTrace(); 28 | } finally { 29 | Util.closeAll(conn, ptmt, rs); 30 | } 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/layout/fluid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Fluid Layout - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Fluid Layout

          14 |

          Percentage width of region panel in a layout.

          15 |
          16 |
          17 |
          18 |

          width: 30%

          19 |
          20 |
          21 |
          22 |
          23 | 24 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/progressbar/fluid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Fluid ProgressBar - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Fluid ProgressBar

          14 |

          This example shows how to set the width of ProgressBar to a percentage of its parent container.

          15 |
          16 |

          width: 50%

          17 |
          18 |

          width: 30%

          19 |
          20 | 21 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/slider/fluid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Fluid Slider - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Fluid Slider

          14 |

          This example shows how to set the width of Slider to a percentage of its parent container.

          15 |
          16 |

          width: 50%

          17 | 18 |

          width: 30%

          19 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/web/utils/FileUploadConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.web.utils; 2 | 3 | 4 | import java.io.InputStream; 5 | import java.util.UUID; 6 | 7 | 8 | 9 | public class FileUploadConfiguration { 10 | 11 | private UUID fileId; 12 | private String crc; 13 | private InputStream inputStream; 14 | 15 | 16 | 17 | public FileUploadConfiguration() { 18 | } 19 | 20 | 21 | public UUID getFileId() { 22 | return fileId; 23 | } 24 | 25 | 26 | public void setFileId(UUID fileId) { 27 | this.fileId = fileId; 28 | } 29 | 30 | 31 | public String getCrc() { 32 | return crc; 33 | } 34 | 35 | 36 | public void setCrc(String crc) { 37 | this.crc = crc; 38 | } 39 | 40 | 41 | public InputStream getInputStream() { 42 | return inputStream; 43 | } 44 | 45 | 46 | public void setInputStream(InputStream inputStream) { 47 | this.inputStream = inputStream; 48 | } 49 | 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/common/filter/GZIPServletOutputStream.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.common.filter; 2 | 3 | import java.io.IOException; 4 | import java.util.zip.GZIPOutputStream; 5 | 6 | import javax.servlet.ServletOutputStream; 7 | import javax.servlet.WriteListener; 8 | 9 | @Deprecated 10 | public class GZIPServletOutputStream extends ServletOutputStream { 11 | 12 | private GZIPOutputStream gzipos; 13 | 14 | public GZIPServletOutputStream(ServletOutputStream sos) throws IOException { 15 | this.gzipos = new GZIPOutputStream(sos); 16 | } 17 | 18 | @Override 19 | public void write(int data) throws IOException { 20 | gzipos.write(data); 21 | } 22 | 23 | public GZIPOutputStream getGZIPOutputStream() { 24 | return gzipos; 25 | } 26 | 27 | @Override 28 | public boolean isReady() { 29 | // TODO Auto-generated method stub 30 | return false; 31 | } 32 | 33 | @Override 34 | public void setWriteListener(WriteListener arg0) { 35 | // TODO Auto-generated method stub 36 | 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/utils/LimitingList.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.utils; 2 | 3 | import java.util.List; 4 | 5 | import com.google.common.collect.Lists; 6 | 7 | /** 8 | * List that limits to a certain number of items. All items at the end of the list will be removed. 9 | * @author antoinem 10 | * 11 | * @param 12 | */ 13 | public class LimitingList { 14 | 15 | List list = Lists.newArrayList(); 16 | 17 | private int limit; 18 | 19 | public LimitingList(int limit) { 20 | super(); 21 | this.limit = limit; 22 | } 23 | 24 | /** 25 | * Adds an element at the beginning of the list. 26 | * @param element 27 | */ 28 | public void unshift(T element) { 29 | 30 | //unshift 31 | list.add(0,element); 32 | 33 | //process removal 34 | if(list.size() > limit) { 35 | list.remove(limit); 36 | } 37 | } 38 | 39 | 40 | public List getList() { 41 | return list; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/datalist/multiselect.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Multiple Selection DataList - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Multiple Selection DataList

          14 |

          The multiple selection allows the user to select multiple items in a datalist.

          15 |
          16 |
          21 |
          22 | 23 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tabs/fluid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Fluid Tabs - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Fluid Tabs

          14 |

          This example shows how to set the width of Tabs to a percentage of its parent container.

          15 |
          16 |
          17 |
          18 |

          The tabs has a width of 100%.

          19 |
          20 |
          21 |
          22 |
          23 | 24 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/login/service/CompanyServiceTest.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.login.service; 2 | 3 | import org.junit.Test; 4 | 5 | import com.whayer.wx.base.UnitTestBase; 6 | import com.whayer.wx.common.X; 7 | import com.whayer.wx.login.vo.Company; 8 | import com.whayer.wx.login.vo.Role; 9 | 10 | public class CompanyServiceTest extends UnitTestBase{ 11 | 12 | public CompanyServiceTest() { 13 | super("classpath:IOC.xml"); 14 | } 15 | 16 | @Test 17 | public void testSave() { 18 | CompanyService companyService = super.getBean("companyServiceImpl"); 19 | String name = "索贝数码"; 20 | String code = X.uuidPure8Bit(); 21 | Company company = new Company(); 22 | company.setId(X.uuidPure()); 23 | company.setName(name.trim()); 24 | company.setCode(code); 25 | 26 | Role role = new Role(); 27 | role.setId(X.uuidPure()); 28 | role.setName(name.trim()); 29 | role.setCode(code); 30 | 31 | int count = companyService.save(company, role); 32 | System.out.println(count); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/wechat/util/TokenThread.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.wechat.util; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | 6 | @Deprecated 7 | public class TokenThread implements Runnable { 8 | private static Logger log = LoggerFactory.getLogger(TokenThread.class); 9 | 10 | public void run() { 11 | while (true) { 12 | try { 13 | Constant.ACCESS_TOKEN = WechatUtil.getAccessToken(Constant.APPID, Constant.APPSECRET); 14 | if (null != Constant.ACCESS_TOKEN) { 15 | log.info("微信公众号access_token:过期时间:{}, token:{} ", Constant.ACCESS_TOKEN.getExpiresIn(), Constant.ACCESS_TOKEN.getToken()); 16 | Thread.sleep((Constant.ACCESS_TOKEN.getExpiresIn() - 200) * 1000); 17 | } else { 18 | Thread.sleep(60 * 1000); 19 | } 20 | } catch (InterruptedException e) { 21 | try { 22 | Thread.sleep(60 * 1000); 23 | } catch (InterruptedException e1) { 24 | log.error("{}", e1); 25 | } 26 | log.error("{}", e); 27 | } 28 | } 29 | } 30 | } 31 | 32 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/combotree/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic ComboTree - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Basic ComboTree

          14 |

          Click the right arrow button to show the tree panel.

          15 |
          16 |
          17 |
          18 | 19 |
          20 |
          21 | 22 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/datalist/checkbox.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Checkbox in DataList - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Checkbox in DataList

          14 |

          Each item in the DataList has a checkbox.

          15 |
          16 |
          23 |
          24 | 25 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/timer/MyTimerTask.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.timer; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.Calendar; 5 | import java.util.TimerTask; 6 | 7 | /** 8 | * 业务线程(提供给Timer后台线程进行调度) 9 | * @author duyu 10 | */ 11 | public class MyTimerTask extends TimerTask{ 12 | 13 | //私有变量 14 | private String name; 15 | private int count = 0; //计数器 16 | 17 | //构造函数 18 | public MyTimerTask(String name) { 19 | this.name = name; 20 | } 21 | 22 | @Override 23 | public void run() { 24 | if(count < 3){ 25 | Calendar calendar = Calendar.getInstance(); 26 | SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 27 | 28 | System.out.println("【"+name+"】任务执行时间:" + sf.format(calendar.getTime())); 29 | }else{ 30 | //cancel方法继承于TimerTask类 31 | cancel(); 32 | System.out.println("当前任务【"+ name +"】已取消"); 33 | } 34 | } 35 | 36 | public String getName() { 37 | return name; 38 | } 39 | 40 | public void setName(String name) { 41 | this.name = name; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tagbox/format.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Format TagBox - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Format TagBox

          14 |

          This example shows how to format the tagbox values.

          15 |
          16 |
          17 | 22 |
          23 | 24 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/socket/util/CommandTranser.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.socket.util; 2 | 3 | import java.io.Serializable; 4 | 5 | public class CommandTranser implements Serializable { 6 | 7 | private static final long serialVersionUID = 3524672778779248803L; 8 | private String cmd;// 当前操作的命令 9 | private Object data;// 发送的数据 10 | private boolean flag;// 操作是否成功 11 | private String result;// 返回的结果 12 | 13 | public String getCmd() { 14 | return cmd; 15 | } 16 | 17 | public void setCmd(String cmd) { 18 | this.cmd = cmd; 19 | } 20 | 21 | public Object getData() { 22 | return data; 23 | } 24 | 25 | public void setData(Object data) { 26 | this.data = data; 27 | } 28 | 29 | public boolean isFlag() { 30 | return flag; 31 | } 32 | 33 | public void setFlag(boolean flag) { 34 | this.flag = flag; 35 | } 36 | 37 | public String getResult() { 38 | return result; 39 | } 40 | 41 | public void setResult(String result) { 42 | this.result = result; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/dialog/fluid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Fluid Dialog - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Fluid Dialog

          14 |

          This example shows how to set the width of Dialog to a percentage of its parent container.

          15 |
          16 |
          21 |

          width: 80%; height: 200px

          22 |
          23 | 24 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/window/fluid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Fluid Window - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Fluid Window

          14 |

          This example shows how to set the width of Window to a percentage of its parent container.

          15 |
          16 |
          21 |

          The window has a width of 80%.

          22 |
          23 | 24 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/pay/util/Constant.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.pay.util; 2 | 3 | public class Constant { 4 | public static final String DOMAIN = ""; 5 | 6 | //唯一id 7 | public static final String APP_ID = ""; 8 | 9 | //应用密匙(API接口密码) 10 | public static final String APP_SECRET = ""; 11 | 12 | //签名密钥 13 | public static final String APP_KEY = ""; 14 | 15 | public static final String MCH_ID = ""; //商户号 16 | 17 | public static final String URL_UNIFIED_ORDER = "https://api.mch.weixin.qq.com/pay/unifiedorder"; 18 | 19 | public static final String URL_OPENID = "https://api.weixin.qq.com/sns/jscode2session"; 20 | 21 | public static final String URL_ORDER_QUERY = "https://api.mch.weixin.qq.com/pay/orderquery"; 22 | 23 | public static final String URL_NOTIFY = DOMAIN + ""; 24 | 25 | public static final String URL_BARCODE = DOMAIN + "/gift/gift.html"; 26 | 27 | public static final String TIME_FORMAT = "yyyyMMddHHmmss"; 28 | 29 | public static final int TIME_EXPIRE = 2; 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/upload/fileuploader/limiter/RequestUploadProcessingConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.upload.fileuploader.limiter; 2 | 3 | 4 | public class RequestUploadProcessingConfiguration extends UploadProcessingConfiguration { 5 | 6 | /** 7 | * Boolean specifying whether the upload is processing or not. 8 | */ 9 | private volatile boolean isProcessing; 10 | 11 | /** 12 | * Boolean specifying whether the client uploading the file is telling the server that it should not process the stream read. 13 | */ 14 | private volatile boolean paused; 15 | 16 | 17 | public boolean isProcessing() { 18 | return isProcessing; 19 | } 20 | 21 | 22 | public void setProcessing(boolean isProcessing) { 23 | this.isProcessing = isProcessing; 24 | } 25 | 26 | 27 | public void pause() { 28 | this.paused = true; 29 | } 30 | 31 | public void resume() { 32 | this.paused = false; 33 | } 34 | 35 | public boolean isPaused() { 36 | return this.paused; 37 | } 38 | 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/calendar/disabledate.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Disable Calendar Date - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Disable Calendar Date

          14 |

          This example shows how to disable specified dates, only allows the user to select Mondays.

          15 |
          16 | 17 |
          26 | 27 | 28 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/datetimebox/initvalue.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Initialize Value for DateTime - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Initialize Value for DateTime

          14 |

          The value is initialized when DateTimeBox has been created.

          15 |
          16 |
          17 |
          18 | 19 |
          20 |
          21 | 22 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tagbox/button.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TagBox with Button - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          TagBox with Button

          14 |

          The button can be attached to a tagbox.

          15 |
          16 |
          17 | 23 |
          24 | 25 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/gift/dao/GiftDao.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.gift.dao; 2 | 3 | import java.util.List; 4 | 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import com.whayer.wx.common.mvc.DAO; 9 | import com.whayer.wx.gift.vo.Gift; 10 | import com.whayer.wx.gift.vo.GiftRelease; 11 | 12 | @Repository 13 | public interface GiftDao extends DAO{ 14 | 15 | public List getGiftList(@Param("isExpired") int isExpired); 16 | 17 | public Gift findById(@Param("id") String id); 18 | 19 | public int update(Gift gift); 20 | 21 | public int deleteById(@Param("id") String id); 22 | 23 | public int save(Gift gift); 24 | 25 | public int saveGiftRelease(GiftRelease giftRelease); 26 | 27 | public int updateGiftRelease(@Param("id") String id, @Param("isMailed") int isMailed); 28 | 29 | public GiftRelease getGiftReleaseById(@Param("orderId") String orderId); 30 | 31 | public List getGiftReleaseList(@Param("isMailed") Integer isMailed, @Param("name") String name); 32 | } 33 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/timespinner/range.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Time Range - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Time Range

          14 |

          The time value is constrained in specified range.

          15 |
          16 | From 08:30 to 18:00 17 |
          18 |
          19 |
          20 | 21 |
          22 |
          23 | 24 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/coupon/dao/CouponDao.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.coupon.dao; 2 | 3 | import java.util.List; 4 | 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import com.whayer.wx.common.mvc.DAO; 9 | import com.whayer.wx.coupon.vo.Coupon; 10 | 11 | @Repository 12 | public interface CouponDao extends DAO { 13 | 14 | public List getCouponListByUid(@Param("userId") String userId); 15 | 16 | public Coupon getCouponById(@Param("id") String id); 17 | 18 | public int saveCoupon(Coupon coupon); 19 | 20 | public int updateCoupon(Coupon coupon); 21 | 22 | public int deleteCoupontById(@Param("id") String id); 23 | 24 | public Coupon validate(@Param("userId") String userId, @Param("code") String code); 25 | 26 | public int updateStateByIds(@Param("ids") String... ids); 27 | 28 | public int updateStateRollBackById(@Param("ids") String... ids); 29 | 30 | /** 31 | * 更新为已过期 32 | * @param id 33 | * @return 34 | */ 35 | public int updateExpired(@Param("id") String id); 36 | } 37 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/calendar/fluid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Fluid Calendar - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Fluid Calendar

          14 |

          This example shows how to set the width of calendar to a percentage of its parent container.

          15 |
          16 |
          17 |

          width: 50%, height: 250px

          18 |
          19 |

          width: 30%, height: 40%

          20 |
          21 |
          22 | 23 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/combotree/initvalue.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Initialize Value for ComboTree - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Initialize Value for ComboTree

          14 |

          Initialize Value when ComboTree is created.

          15 |
          16 |
          17 |
          18 | 19 |
          20 |
          21 | 22 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tree/customcheckbox.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Custom CheckBox Tree - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

          Custom CheckBox Tree

          14 |

          Tree nodes with customized check boxes.

          15 |
          16 |
          17 |
            27 |
            28 | 29 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/tree/editable.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Editable Tree - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

            Editable Tree

            14 |

            Click the node to begin edit, press enter key to stop edit or esc key to cancel edit.

            15 |
            16 |
            17 |
              25 |
              26 | 27 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/socket/entity/Users.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.socket.entity; 2 | 3 | import java.io.Serializable; 4 | 5 | public class Users implements Serializable { 6 | 7 | private static final long serialVersionUID = -7751437846681691870L; 8 | private int id; 9 | private String username; 10 | private String password; 11 | 12 | public int getId() { 13 | return id; 14 | } 15 | 16 | public void setId(int id) { 17 | this.id = id; 18 | } 19 | 20 | public String getUsername() { 21 | return username; 22 | } 23 | 24 | public void setUsername(String username) { 25 | this.username = username; 26 | } 27 | 28 | public String getPassword() { 29 | return password; 30 | } 31 | 32 | public void setPassword(String password) { 33 | this.password = password; 34 | } 35 | 36 | public Users(int id, String username, String password) { 37 | super(); 38 | this.id = id; 39 | this.username = username; 40 | this.password = password; 41 | } 42 | 43 | public Users() { 44 | 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/panel/loadcontent.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Load Panel Content - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

              Load Panel Content

              14 |

              Click the refresh button on top right of panel to load content.

              15 |
              16 |
              25 |
              26 | 27 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/searchbox/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic SearchBox - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

              Basic SearchBox

              14 |

              Click search button or press enter key in input box to do searching.

              15 |
              16 |
              17 | 18 |
              19 | 24 | 25 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/async/service/impl/LongTimeAsyncCallService.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.async.service.impl; 2 | 3 | import java.util.concurrent.Executors; 4 | import java.util.concurrent.ScheduledExecutorService; 5 | import java.util.concurrent.TimeUnit; 6 | 7 | import com.whayer.wx.async.service.LongTimeTaskCallback; 8 | 9 | /** 10 | * 任务线程 11 | * @author duyu 12 | * 13 | */ 14 | public class LongTimeAsyncCallService { 15 | private final int CorePoolSize = 4; 16 | private final int NeedSeconds = 10; 17 | //创建线程池 18 | private ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(CorePoolSize); 19 | public void makeRemoteCallAndUnknownWhenFinish(final LongTimeTaskCallback callback){ 20 | System.out.println("完成此任务需要 : " + NeedSeconds + " 秒"); 21 | scheduler.schedule(new Runnable() { 22 | @Override 23 | public void run() { 24 | //在此处手动回调 25 | callback.callback("长时间异步调用完成."); 26 | } 27 | }, NeedSeconds, TimeUnit.SECONDS); 28 | 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/vouchers/service/VoucherServiceTest.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.vouchers.service; 2 | 3 | import org.junit.Test; 4 | 5 | import com.github.pagehelper.PageInfo; 6 | import com.whayer.wx.base.UnitTestBase; 7 | import com.whayer.wx.common.mvc.Pagination; 8 | import com.whayer.wx.common.mvc.ResponseCondition; 9 | import com.whayer.wx.vouchers.vo.Voucher; 10 | 11 | public class VoucherServiceTest extends UnitTestBase{ 12 | 13 | public VoucherServiceTest() { 14 | super("classpath:IOC.xml"); 15 | } 16 | 17 | @Test 18 | public void testVoucherService() { 19 | VoucherService voucherService = super.getBean("voucherServiceImpl"); 20 | PageInfo pi = voucherService.getVoucherListByUid("00010102", new Pagination()); 21 | ResponseCondition res = new ResponseCondition(); 22 | res.setIsSuccess(true); 23 | res.setList(pi.getList()); 24 | res.setPageIndex(pi.getPageNum()); 25 | res.setPageSize(pi.getPageSize()); 26 | res.setTotal(pi.getTotal()); 27 | res.setPages(pi.getPages()); 28 | System.out.println(res.toString()); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/reflect/MethodDemo4.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.reflect; 2 | 3 | import java.lang.reflect.Method; 4 | import java.util.ArrayList; 5 | 6 | public class MethodDemo4 { 7 | public static void main(String[] args) { 8 | ArrayList list = new ArrayList(); 9 | 10 | ArrayList list1 = new ArrayList(); 11 | list1.add("hello"); 12 | //list1.add(20);错误的 13 | Class c1 = list.getClass(); 14 | Class c2 = list1.getClass(); 15 | System.out.println(c1 == c2); 16 | //反射的操作都是编译之后的操作 17 | 18 | /* 19 | * c1==c2结果返回true说明编译之后集合的泛型是去泛型化的 20 | * Java中集合的泛型,是防止错误输入的,只在编译阶段有效, 21 | * 绕过编译就无效了 22 | * 验证:我们可以通过方法的反射来操作,绕过编译 23 | */ 24 | try { 25 | Method m = c2.getMethod("add", Object.class); 26 | m.invoke(list1, 20);//绕过编译操作就绕过了泛型 27 | System.out.println(list1.size()); 28 | System.out.println(list1); 29 | /*for (String string : list1) { 30 | System.out.println(string); 31 | }*///现在不能这样遍历 32 | } catch (Exception e) { 33 | e.printStackTrace(); 34 | } 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/timer/CancelTaskTest.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.timer; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.Calendar; 5 | import java.util.Date; 6 | import java.util.Timer; 7 | 8 | public class CancelTaskTest { 9 | public static void main(String[] args) throws InterruptedException { 10 | // 1.创建Timer实例 11 | Timer timer = new Timer(); 12 | // 2.创建MyTimerTask任务线程实例 13 | MyTimerTask task1 = new MyTimerTask("任务1"); 14 | MyTimerTask task2 = new MyTimerTask("任务2"); 15 | 16 | Calendar calendar = Calendar.getInstance(); 17 | SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 18 | System.out.println("当前时间为:" + sf.format(calendar.getTime())); 19 | 20 | //task1首次执行是距离当前时间3秒后执行,之后每隔2秒执行一次 21 | //task1首次执行是距离当前时间2秒后执行,之后每隔1秒执行一次 22 | timer.schedule(task1, 3000, 2000); 23 | timer.schedule(task2, 2000, 1000); 24 | 25 | //休眠5秒 26 | Thread.sleep(5000); 27 | 28 | System.out.println("定时器取消时间为:" + sf.format(new Date())); 29 | 30 | timer.cancel(); 31 | 32 | System.out.println("所有任务已取消!"); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/vouchers/dao/VoucherDao.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.vouchers.dao; 2 | 3 | import java.util.List; 4 | 5 | import org.apache.ibatis.annotations.Param; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import com.whayer.wx.common.mvc.DAO; 9 | import com.whayer.wx.vouchers.vo.Voucher; 10 | 11 | @Repository 12 | public interface VoucherDao extends DAO{ 13 | 14 | public List getVoucherListByUid(@Param("userId") String userId); 15 | 16 | public Voucher getVoucherById(@Param("id") String id); 17 | 18 | public int saveVoucher(Voucher voucher); 19 | 20 | public int updateVoucher(Voucher voucher); 21 | 22 | public int deleteVoucherById(@Param("id") String id); 23 | 24 | public Voucher validate(@Param("userId") String userId, @Param("code") String code); 25 | 26 | public int updateStateByIds(@Param("ids") String... ids); 27 | 28 | public int updateStateRollBackById(@Param("ids") String... ids); 29 | 30 | /** 31 | * 更新为已过期 32 | * @param id 33 | * @return 34 | */ 35 | public int updateExpired(@Param("id") String id); 36 | } 37 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/numberspinner/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic NumberSpinner - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

              Basic NumberSpinner

              14 |

              Click spinner button to change value.

              15 |
              16 |
              17 | 22 |
              23 | Value: 24 |
              25 |
              26 | 27 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/pay2/service/PayV2Service.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.pay2.service; 2 | 3 | import java.util.Map; 4 | 5 | import com.alibaba.fastjson.JSONObject; 6 | import com.whayer.wx.order.vo.Order; 7 | import com.whayer.wx.pay.vo.PayInfo; 8 | 9 | public interface PayV2Service { 10 | /** 11 | * 获取openid 12 | * @param code 13 | * @return 14 | */ 15 | public Map getOpenIdAndSessionKey(String code); 16 | 17 | /** 18 | * 获取openid 19 | * @param code 20 | * @return 21 | */ 22 | public String getOpenId(String code); 23 | 24 | /** 25 | * 创建预支付对象 26 | * @param openId 27 | * @param clientIP 28 | * @param randomNonceStr 29 | * @param order 30 | * @return 31 | */ 32 | public PayInfo createPayInfo(String openId, String clientIP, String randomNonceStr, Order order); 33 | 34 | /** 35 | * 获取预支付签名 36 | * @param payInfo 37 | * @return 38 | */ 39 | public String getPrepaySign(PayInfo payInfo); 40 | 41 | /** 42 | * 获取正式支付签名 43 | * @param repayId 44 | * @return 45 | */ 46 | public JSONObject getPaySign(String repayId); 47 | } 48 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/draggable/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Draggable - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

              Basic Draggable

              14 |

              Move the boxes below by clicking on it with mouse.

              15 |
              16 |
              17 |
              18 |
              Title
              19 |
              20 | 21 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/gray/accordion.css: -------------------------------------------------------------------------------- 1 | .accordion { 2 | overflow: hidden; 3 | border-width: 1px; 4 | border-style: solid; 5 | } 6 | .accordion .accordion-header { 7 | border-width: 0 0 1px; 8 | cursor: pointer; 9 | } 10 | .accordion .accordion-body { 11 | border-width: 0 0 1px; 12 | } 13 | .accordion-noborder { 14 | border-width: 0; 15 | } 16 | .accordion-noborder .accordion-header { 17 | border-width: 0 0 1px; 18 | } 19 | .accordion-noborder .accordion-body { 20 | border-width: 0 0 1px; 21 | } 22 | .accordion-collapse { 23 | background: url('images/accordion_arrows.png') no-repeat 0 0; 24 | } 25 | .accordion-expand { 26 | background: url('images/accordion_arrows.png') no-repeat -16px 0; 27 | } 28 | .accordion { 29 | background: #ffffff; 30 | border-color: #D3D3D3; 31 | } 32 | .accordion .accordion-header { 33 | background: #f3f3f3; 34 | filter: none; 35 | } 36 | .accordion .accordion-header-selected { 37 | background: #0092DC; 38 | } 39 | .accordion .accordion-header-selected .panel-title { 40 | color: #fff; 41 | } 42 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/themes/default/accordion.css: -------------------------------------------------------------------------------- 1 | .accordion { 2 | overflow: hidden; 3 | border-width: 1px; 4 | border-style: solid; 5 | } 6 | .accordion .accordion-header { 7 | border-width: 0 0 1px; 8 | cursor: pointer; 9 | } 10 | .accordion .accordion-body { 11 | border-width: 0 0 1px; 12 | } 13 | .accordion-noborder { 14 | border-width: 0; 15 | } 16 | .accordion-noborder .accordion-header { 17 | border-width: 0 0 1px; 18 | } 19 | .accordion-noborder .accordion-body { 20 | border-width: 0 0 1px; 21 | } 22 | .accordion-collapse { 23 | background: url('images/accordion_arrows.png') no-repeat 0 0; 24 | } 25 | .accordion-expand { 26 | background: url('images/accordion_arrows.png') no-repeat -16px 0; 27 | } 28 | .accordion { 29 | background: #ffffff; 30 | border-color: #95B8E7; 31 | } 32 | .accordion .accordion-header { 33 | background: #E0ECFF; 34 | filter: none; 35 | } 36 | .accordion .accordion-header-selected { 37 | background: #ffe48d; 38 | } 39 | .accordion .accordion-header-selected .panel-title { 40 | color: #000000; 41 | } 42 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/switchbutton/action.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SwitchButton Actions - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

              SwitchButton Actions

              14 |

              Click the buttons below to perform actions.

              15 |
              16 | 17 |
              18 | Disable 19 | Enable 20 |
              21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/window/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Window - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

              Basic Window

              14 |

              Window can be dragged freely on screen.

              15 |
              16 | Open 17 | Close 18 |
              19 |
              20 | The window content. 21 |
              22 | 23 | -------------------------------------------------------------------------------- /src/test/java/com/whayer/wx/socket/entity/File.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.socket.entity; 2 | 3 | import java.io.Serializable; 4 | 5 | public class File implements Serializable { 6 | 7 | private static final long serialVersionUID = 1254554707571682105L; 8 | private int fid; 9 | private String fname; 10 | private byte[] focntent; 11 | 12 | public int getFid() { 13 | return fid; 14 | } 15 | 16 | public void setFid(int fid) { 17 | this.fid = fid; 18 | } 19 | 20 | public String getFname() { 21 | return fname; 22 | } 23 | 24 | public void setFname(String fname) { 25 | this.fname = fname; 26 | } 27 | 28 | public byte[] getFocntent() { 29 | return focntent; 30 | } 31 | 32 | public void setFocntent(byte[] focntent) { 33 | this.focntent = focntent; 34 | } 35 | 36 | public File(int fid, String fname, byte[] focntent) { 37 | this.fid = fid; 38 | this.fname = fname; 39 | this.focntent = focntent; 40 | } 41 | 42 | public File(String fname, byte[] focntent) { 43 | this.fname = fname; 44 | this.focntent = focntent; 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/com/whayer/wx/product/vo/Product2Role.java: -------------------------------------------------------------------------------- 1 | package com.whayer.wx.product.vo; 2 | 3 | import java.io.Serializable; 4 | 5 | public class Product2Role implements Serializable { 6 | 7 | private static final long serialVersionUID = -606518019946090455L; 8 | 9 | private String id; 10 | private String productId; //产品id 11 | private String userCode; //用户类型编码 12 | 13 | public Product2Role(){ 14 | 15 | } 16 | 17 | public String getId() { 18 | return id; 19 | } 20 | public void setId(String id) { 21 | this.id = id; 22 | } 23 | public String getProductId() { 24 | return productId; 25 | } 26 | public void setProductId(String productId) { 27 | this.productId = productId; 28 | } 29 | public String getUserCode() { 30 | return userCode; 31 | } 32 | public void setUserCode(String userCode) { 33 | this.userCode = userCode; 34 | } 35 | public static long getSerialversionuid() { 36 | return serialVersionUID; 37 | } 38 | @Override 39 | public String toString() { 40 | return "Product2Role [id=" + id + ", productId=" + productId + ", userCode=" + userCode + "]"; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/webapp/easyui/demo/dialog/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Dialog - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

              Basic Dialog

              14 |

              Click below button to open or close dialog.

              15 |
              16 | Open 17 | Close 18 |
              19 |
              20 | The dialog content. 21 |
              22 | 23 | --------------------------------------------------------------------------------