├── .gitignore ├── .settings ├── org.eclipse.wst.jsdt.ui.superType.name ├── org.eclipse.wst.jsdt.ui.superType.container ├── org.eclipse.core.resources.prefs ├── org.eclipse.jdt.core.prefs ├── org.eclipse.wst.common.project.facet.core.xml ├── org.eclipse.wst.common.component └── .jsdtscope ├── WebContent ├── plunge │ └── jQuery-File-Upload │ │ ├── server │ │ ├── node │ │ │ ├── tmp │ │ │ │ └── .gitignore │ │ │ ├── .gitignore │ │ │ ├── public │ │ │ │ └── files │ │ │ │ │ └── .gitignore │ │ │ └── package.json │ │ ├── gae-go │ │ │ ├── static │ │ │ │ ├── robots.txt │ │ │ │ └── favicon.ico │ │ │ └── app.yaml │ │ ├── php │ │ │ ├── files │ │ │ │ ├── .gitignore │ │ │ │ └── .htaccess │ │ │ └── index.php │ │ └── gae-python │ │ │ ├── static │ │ │ ├── robots.txt │ │ │ └── favicon.ico │ │ │ └── app.yaml │ │ ├── .gitignore │ │ ├── img │ │ ├── loading.gif │ │ └── progressbar.gif │ │ ├── css │ │ ├── style.css │ │ ├── jquery.fileupload-ui-noscript.css │ │ ├── demo-ie8.css │ │ ├── jquery.fileupload-noscript.css │ │ ├── jquery.fileupload.css │ │ ├── jquery.fileupload-ui.css │ │ └── demo.css │ │ ├── cors │ │ ├── result.html │ │ └── postmessage.html │ │ ├── Gruntfile.js │ │ ├── blueimp-file-upload.jquery.json │ │ ├── package.json │ │ ├── bower.json │ │ ├── CONTRIBUTING.md │ │ └── js │ │ └── main.js ├── META-INF │ └── MANIFEST.MF ├── favicon.ico ├── WEB-INF │ └── lib │ │ ├── json.jar │ │ ├── mail.jar │ │ ├── jstl-1.2.jar │ │ ├── jstl-impl.jar │ │ ├── gson-2.8.2.jar │ │ ├── commons-dbcp-1.4.jar │ │ ├── commons-email-1.4.jar │ │ ├── commons-pool-1.6.jar │ │ ├── xwork-core-2.2.1.jar │ │ ├── struts2-json-plugin-2.2.1.jar │ │ └── mysql-connector-java-5.1.18-bin.jar ├── client │ └── reg │ │ ├── images │ │ └── 2.jpg │ │ └── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 ├── mutualResource │ ├── js │ │ ├── lrtk.js │ │ └── html5.js │ ├── images │ │ ├── a2.jpg │ │ ├── logo.png │ │ ├── user.png │ │ ├── xtbg.png │ │ ├── cloud.png │ │ ├── image.png │ │ ├── login.png │ │ ├── overlay.png │ │ ├── r1_c2.jpg │ │ ├── light---.png │ │ ├── login_bgx.gif │ │ ├── loginbg1.png │ │ ├── loginbg2.png │ │ ├── icon_error_s.png │ │ ├── icon_right_s.png │ │ ├── login_m_bg.png │ │ ├── loginbg3---.png │ │ ├── star-off-big.png │ │ ├── star-on-big.png │ │ ├── icon_warning_s.png │ │ └── indexhead_sprite.png │ ├── myImg │ │ ├── ye.png │ │ ├── chuan2.png │ │ ├── pencil2.jpg │ │ ├── timg--.jpg │ │ ├── background.png │ │ ├── clientTop.png │ │ ├── doctorTop.png │ │ ├── clientTop--.png │ │ └── doctorTop--.png │ ├── products │ │ ├── ad.jpg │ │ ├── cp.jpg │ │ ├── 分组.png │ │ ├── ad1.jpg │ │ ├── ad2.jpg │ │ ├── ad3.jpg │ │ ├── p_1.jpg │ │ ├── p_11.jpg │ │ ├── p_12.jpg │ │ ├── p_13.jpg │ │ ├── p_15.jpg │ │ ├── p_16.jpg │ │ ├── p_17.jpg │ │ ├── p_18.jpg │ │ ├── p_19.jpg │ │ ├── p_2.jpg │ │ ├── p_21.jpg │ │ ├── p_22.jpg │ │ ├── p_23.jpg │ │ ├── p_24.jpg │ │ ├── p_25.jpg │ │ ├── p_29.jpg │ │ ├── p_3.jpg │ │ ├── p_31.jpg │ │ ├── p_32.jpg │ │ ├── p_33.jpg │ │ ├── p_34.jpg │ │ ├── p_36.jpg │ │ ├── p_37.jpg │ │ ├── p_39.jpg │ │ ├── p_4.jpg │ │ ├── p_40.jpg │ │ ├── p_41.jpg │ │ ├── p_42.jpg │ │ ├── p_43.jpg │ │ ├── p_44.jpg │ │ ├── p_45.jpg │ │ ├── p_46.jpg │ │ ├── p_47.jpg │ │ ├── p_5.jpg │ │ ├── p_50.jpg │ │ ├── p_51.jpg │ │ ├── p_52.jpg │ │ ├── p_53.jpg │ │ ├── p_54.jpg │ │ ├── p_55.jpg │ │ ├── p_56.jpg │ │ ├── p_57.jpg │ │ ├── p_58.jpg │ │ ├── p_6.jpg │ │ ├── p_65.jpg │ │ ├── p_67.jpg │ │ ├── p_68.jpg │ │ ├── p_7.jpg │ │ ├── p_8.jpg │ │ ├── p_9.jpg │ │ └── logo │ │ │ ├── 34.jpg │ │ │ ├── 42.jpg │ │ │ ├── 1089.jpg │ │ │ ├── 1145.jpg │ │ │ ├── 1208.jpg │ │ │ ├── 1252.jpg │ │ │ ├── 1270.jpg │ │ │ ├── 1309.jpg │ │ │ ├── 1396.jpg │ │ │ ├── 152.jpg │ │ │ ├── 156.jpg │ │ │ ├── 1663.jpg │ │ │ ├── 199.jpg │ │ │ ├── 245.jpg │ │ │ ├── 339.jpg │ │ │ ├── 458.jpg │ │ │ ├── 6116.jpg │ │ │ ├── 618.jpg │ │ │ ├── 644.jpg │ │ │ ├── 690.jpg │ │ │ ├── 740.jpg │ │ │ ├── 741.png │ │ │ ├── logo.jpg │ │ │ ├── logo1.jpg │ │ │ └── logo2.jpg │ ├── Widget │ │ ├── icheck │ │ │ ├── Thumbs.db │ │ │ ├── aero.png │ │ │ ├── blue.png │ │ │ ├── green.png │ │ │ ├── grey.png │ │ │ ├── pink.png │ │ │ ├── red.png │ │ │ ├── minimal.png │ │ │ ├── orange.png │ │ │ ├── purple.png │ │ │ └── yellow.png │ │ └── My97DatePicker │ │ │ ├── skin │ │ │ ├── Thumbs.db │ │ │ ├── twoer │ │ │ │ ├── img.gif │ │ │ │ ├── img.png │ │ │ │ └── datepicker.css │ │ │ ├── datePicker.gif │ │ │ ├── default │ │ │ │ ├── img.gif │ │ │ │ └── datepicker.css │ │ │ ├── whyGreen │ │ │ │ ├── bg.jpg │ │ │ │ └── img.gif │ │ │ └── WdatePicker.css │ │ │ └── lang │ │ │ ├── en.js │ │ │ ├── zh-cn.js │ │ │ └── zh-tw.js │ ├── assets │ │ ├── avatars │ │ │ ├── user.jpg │ │ │ ├── avatar.png │ │ │ ├── avatar1.png │ │ │ ├── avatar2.png │ │ │ ├── avatar3.png │ │ │ ├── avatar4.png │ │ │ ├── avatar5.png │ │ │ └── profile-pic.jpg │ │ ├── dist │ │ │ ├── .DS_Store │ │ │ └── theme │ │ │ │ └── default.js │ │ ├── font │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ ├── css │ │ │ ├── images │ │ │ │ └── loading.gif │ │ │ ├── jquery-ui-1.10.3.full.min.css │ │ │ ├── jquery.gritter.css │ │ │ ├── jquery-ui-1.10.3.custom.min.css │ │ │ ├── colorpicker.css │ │ │ └── bootstrap-timepicker.css │ │ ├── laydate │ │ │ └── skins │ │ │ │ ├── molv │ │ │ │ └── icon.png │ │ │ │ ├── dahong │ │ │ │ └── icon.png │ │ │ │ └── default │ │ │ │ └── icon.png │ │ ├── layer │ │ │ └── skin │ │ │ │ ├── default │ │ │ │ ├── icon.png │ │ │ │ ├── icon-ext.png │ │ │ │ ├── loading-0.gif │ │ │ │ ├── loading-1.gif │ │ │ │ └── loading-2.gif │ │ │ │ └── layer.ext.css │ │ └── js │ │ │ ├── jquery.ui.touch-punch.min.js │ │ │ ├── jquery.hotkeys.min.js │ │ │ ├── flot │ │ │ └── jquery.flot.resize.min.js │ │ │ ├── fuelux │ │ │ ├── fuelux.wizard.min.js │ │ │ ├── fuelux.spinner.min.js │ │ │ └── fuelux.tree.min.js │ │ │ ├── jquery.autosize.min.js │ │ │ ├── jquery.easy-pie-chart.min.js │ │ │ ├── bootstrap-tag.min.js │ │ │ ├── jquery.maskedinput.min.js │ │ │ └── bootstrap-wysiwyg.min.js │ ├── font │ │ └── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ └── css │ │ └── easyui_style.css ├── indexAll.jsp ├── 404.html └── 500.html ├── src ├── pool.properties ├── config.properties ├── test │ └── TestJDBCPool.java ├── utils │ ├── jdbc │ │ ├── PoolProperties.java │ │ └── Pool.java │ ├── mail │ │ ├── Mail.java │ │ └── MailSend.java │ ├── filter │ │ ├── CharacterEncodingFilter.java │ │ ├── MessageSendFilter.java │ │ ├── MessageBoardFilter.java │ │ ├── AdminLoginFilter.java │ │ ├── ClientLoginFilter.java │ │ └── DoctorLoginFilter.java │ ├── ResultDate.java │ ├── ConfigProperties.java │ └── UploadResult.java ├── model │ └── service │ │ ├── AdminService.java │ │ ├── MessageBoardService.java │ │ ├── AnnouncmentService.java │ │ └── ClientService.java ├── bean │ ├── Question.java │ ├── MessageBoard.java │ ├── Announcement.java │ ├── Admin.java │ └── Client.java └── servlet │ ├── DownloadFile.java │ ├── admin │ └── AdminLoginServlet.java │ ├── doctor │ └── DoctorLoginServlet.java │ ├── client │ ├── ClientLoginServlet.java │ ├── ClientRegisterServlet.java │ └── ClientServlet.java │ └── QuestionServlet.java ├── .project ├── .classpath └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.jsdt.ui.superType.name: -------------------------------------------------------------------------------- 1 | Window -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/node/tmp/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /WebContent/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.pyc 3 | node_modules 4 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/node/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/node/public/files/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.jsdt.ui.superType.container: -------------------------------------------------------------------------------- 1 | org.eclipse.wst.jsdt.launching.baseBrowserLibrary -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/gae-go/static/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/php/files/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | !.htaccess 4 | -------------------------------------------------------------------------------- /WebContent/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/favicon.ico -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/gae-python/static/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /WebContent/WEB-INF/lib/json.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/WEB-INF/lib/json.jar -------------------------------------------------------------------------------- /WebContent/WEB-INF/lib/mail.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/WEB-INF/lib/mail.jar -------------------------------------------------------------------------------- /WebContent/client/reg/images/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/client/reg/images/2.jpg -------------------------------------------------------------------------------- /WebContent/WEB-INF/lib/jstl-1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/WEB-INF/lib/jstl-1.2.jar -------------------------------------------------------------------------------- /WebContent/WEB-INF/lib/jstl-impl.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/WEB-INF/lib/jstl-impl.jar -------------------------------------------------------------------------------- /WebContent/mutualResource/js/lrtk.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/js/lrtk.js -------------------------------------------------------------------------------- /WebContent/WEB-INF/lib/gson-2.8.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/WEB-INF/lib/gson-2.8.2.jar -------------------------------------------------------------------------------- /WebContent/mutualResource/images/a2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/a2.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/myImg/ye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/myImg/ye.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/logo.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/user.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/xtbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/xtbg.png -------------------------------------------------------------------------------- /WebContent/mutualResource/products/ad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/ad.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/cp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/cp.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/分组.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/分组.png -------------------------------------------------------------------------------- /WebContent/WEB-INF/lib/commons-dbcp-1.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/WEB-INF/lib/commons-dbcp-1.4.jar -------------------------------------------------------------------------------- /WebContent/WEB-INF/lib/commons-email-1.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/WEB-INF/lib/commons-email-1.4.jar -------------------------------------------------------------------------------- /WebContent/WEB-INF/lib/commons-pool-1.6.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/WEB-INF/lib/commons-pool-1.6.jar -------------------------------------------------------------------------------- /WebContent/WEB-INF/lib/xwork-core-2.2.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/WEB-INF/lib/xwork-core-2.2.1.jar -------------------------------------------------------------------------------- /WebContent/client/reg/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/client/reg/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /WebContent/mutualResource/images/cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/cloud.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/image.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/login.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/overlay.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/r1_c2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/r1_c2.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/myImg/chuan2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/myImg/chuan2.png -------------------------------------------------------------------------------- /WebContent/mutualResource/myImg/pencil2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/myImg/pencil2.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/myImg/timg--.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/myImg/timg--.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/ad1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/ad1.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/ad2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/ad2.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/ad3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/ad3.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_1.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_11.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_12.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_13.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_15.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_16.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_17.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_18.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_19.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_2.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_21.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_22.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_23.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_24.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_25.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_29.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_3.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_31.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_32.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_33.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_34.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_36.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_36.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_37.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_37.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_39.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_39.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_4.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_40.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_41.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_41.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_42.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_42.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_43.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_43.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_44.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_44.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_45.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_45.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_46.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_46.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_47.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_47.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_5.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_50.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_50.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_51.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_51.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_52.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_52.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_53.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_53.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_54.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_54.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_55.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_55.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_56.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_56.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_57.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_57.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_58.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_58.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_6.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_65.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_65.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_67.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_67.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_68.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_68.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_7.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_8.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/p_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/p_9.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/images/light---.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/light---.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/login_bgx.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/login_bgx.gif -------------------------------------------------------------------------------- /WebContent/mutualResource/images/loginbg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/loginbg1.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/loginbg2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/loginbg2.png -------------------------------------------------------------------------------- /WebContent/mutualResource/myImg/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/myImg/background.png -------------------------------------------------------------------------------- /WebContent/mutualResource/myImg/clientTop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/myImg/clientTop.png -------------------------------------------------------------------------------- /WebContent/mutualResource/myImg/doctorTop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/myImg/doctorTop.png -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/34.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/42.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/42.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/icheck/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/icheck/Thumbs.db -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/icheck/aero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/icheck/aero.png -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/icheck/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/icheck/blue.png -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/icheck/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/icheck/green.png -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/icheck/grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/icheck/grey.png -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/icheck/pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/icheck/pink.png -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/icheck/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/icheck/red.png -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/avatars/user.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/avatars/user.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/dist/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/dist/.DS_Store -------------------------------------------------------------------------------- /WebContent/mutualResource/images/icon_error_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/icon_error_s.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/icon_right_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/icon_right_s.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/login_m_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/login_m_bg.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/loginbg3---.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/loginbg3---.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/star-off-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/star-off-big.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/star-on-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/star-on-big.png -------------------------------------------------------------------------------- /WebContent/mutualResource/myImg/clientTop--.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/myImg/clientTop--.png -------------------------------------------------------------------------------- /WebContent/mutualResource/myImg/doctorTop--.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/myImg/doctorTop--.png -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/1089.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/1089.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/1145.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/1145.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/1208.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/1208.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/1252.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/1252.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/1270.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/1270.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/1309.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/1309.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/1396.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/1396.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/152.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/152.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/156.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/156.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/1663.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/1663.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/199.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/199.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/245.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/245.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/339.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/339.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/458.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/458.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/6116.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/6116.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/618.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/618.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/644.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/644.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/690.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/690.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/740.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/740.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/741.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/741.png -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/logo.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/logo1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/logo1.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/products/logo/logo2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/products/logo/logo2.jpg -------------------------------------------------------------------------------- /WebContent/client/reg/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/client/reg/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /WebContent/client/reg/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/client/reg/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/icheck/minimal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/icheck/minimal.png -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/icheck/orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/icheck/orange.png -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/icheck/purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/icheck/purple.png -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/icheck/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/icheck/yellow.png -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/avatars/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/avatars/avatar.png -------------------------------------------------------------------------------- /WebContent/mutualResource/images/icon_warning_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/icon_warning_s.png -------------------------------------------------------------------------------- /WebContent/WEB-INF/lib/struts2-json-plugin-2.2.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/WEB-INF/lib/struts2-json-plugin-2.2.1.jar -------------------------------------------------------------------------------- /WebContent/client/reg/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/client/reg/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /WebContent/client/reg/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/client/reg/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/avatars/avatar1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/avatars/avatar1.png -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/avatars/avatar2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/avatars/avatar2.png -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/avatars/avatar3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/avatars/avatar3.png -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/avatars/avatar4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/avatars/avatar4.png -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/avatars/avatar5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/avatars/avatar5.png -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/font/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/font/FontAwesome.otf -------------------------------------------------------------------------------- /WebContent/mutualResource/font/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/font/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /WebContent/mutualResource/images/indexhead_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/images/indexhead_sprite.png -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/plunge/jQuery-File-Upload/img/loading.gif -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/avatars/profile-pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/avatars/profile-pic.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/css/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/css/images/loading.gif -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/img/progressbar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/plunge/jQuery-File-Upload/img/progressbar.gif -------------------------------------------------------------------------------- /WebContent/WEB-INF/lib/mysql-connector-java-5.1.18-bin.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/WEB-INF/lib/mysql-connector-java-5.1.18-bin.jar -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/font/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/font/fontawesome-webfont.eot -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/font/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/font/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/laydate/skins/molv/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/laydate/skins/molv/icon.png -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/layer/skin/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/layer/skin/default/icon.png -------------------------------------------------------------------------------- /WebContent/mutualResource/font/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/font/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /WebContent/mutualResource/font/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/font/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /WebContent/mutualResource/font/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/font/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/skin/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/My97DatePicker/skin/Thumbs.db -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/font/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/font/fontawesome-webfont.woff -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/font/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/font/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/laydate/skins/dahong/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/laydate/skins/dahong/icon.png -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/laydate/skins/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/laydate/skins/default/icon.png -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/layer/skin/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/layer/skin/default/icon-ext.png -------------------------------------------------------------------------------- /WebContent/mutualResource/font/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/font/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/config.properties=utf-8 3 | encoding//src/pool.properties=UTF-8 4 | encoding/=UTF-8 5 | -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/skin/twoer/img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/My97DatePicker/skin/twoer/img.gif -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/skin/twoer/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/My97DatePicker/skin/twoer/img.png -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/css/jquery-ui-1.10.3.full.min.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/css/jquery-ui-1.10.3.full.min.css -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/layer/skin/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/layer/skin/default/loading-0.gif -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/layer/skin/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/layer/skin/default/loading-1.gif -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/layer/skin/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/assets/layer/skin/default/loading-2.gif -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/skin/datePicker.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/My97DatePicker/skin/datePicker.gif -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/skin/default/img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/My97DatePicker/skin/default/img.gif -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/skin/whyGreen/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/My97DatePicker/skin/whyGreen/bg.jpg -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/skin/whyGreen/img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/mutualResource/Widget/My97DatePicker/skin/whyGreen/img.gif -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/gae-go/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/plunge/jQuery-File-Upload/server/gae-go/static/favicon.ico -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/gae-python/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/renshen052/mindSubscribe/HEAD/WebContent/plunge/jQuery-File-Upload/server/gae-python/static/favicon.ico -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/skin/WdatePicker.css: -------------------------------------------------------------------------------- 1 | .Wdate{ 2 | background:#fff url(datePicker.gif) no-repeat right; 3 | } 4 | .Wdate::-ms-clear{display:none;} 5 | 6 | .WdateFmtErr{ 7 | font-weight:bold; 8 | color:red; 9 | } -------------------------------------------------------------------------------- /src/pool.properties: -------------------------------------------------------------------------------- 1 | driver=com.mysql.jdbc.Driver 2 | url=jdbc:mysql://localhost:3306/mind_sub?useUnicode=true&characterEncoding=UTF-8 3 | username=root 4 | password=123456 5 | 6 | 7 | #连接池的最大数据库连接数。设为0表示无限制 8 | maxActive=30 9 | 10 | #最小连接数 11 | minSize=10 12 | 13 | #初始连接数 14 | initialSize=15 -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/dist/theme/default.js: -------------------------------------------------------------------------------- 1 | /** 2 | * echarts默认主题,开发中 3 | * 4 | * @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。 5 | * @author Kener (@Kener-林峰, kener.linfeng@gmail.com) 6 | * 7 | */ 8 | define(function() { 9 | var config = { 10 | }; 11 | 12 | return config; 13 | }); -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/gae-go/app.yaml: -------------------------------------------------------------------------------- 1 | application: jquery-file-upload 2 | version: 2 3 | runtime: go 4 | api_version: go1 5 | 6 | handlers: 7 | - url: /(favicon\.ico|robots\.txt) 8 | static_files: static/\1 9 | upload: static/(.*) 10 | expiration: '1d' 11 | - url: /.* 12 | script: _go_app 13 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/gae-python/app.yaml: -------------------------------------------------------------------------------- 1 | application: jquery-file-upload 2 | version: 1 3 | runtime: python27 4 | api_version: 1 5 | threadsafe: true 6 | 7 | builtins: 8 | - deferred: on 9 | 10 | handlers: 11 | - url: /(favicon\.ico|robots\.txt) 12 | static_files: static/\1 13 | upload: static/(.*) 14 | expiration: '1d' 15 | - url: /.* 16 | script: main.app 17 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/css/style.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /* 3 | * jQuery File Upload Plugin CSS Example 8.8.2 4 | * https://github.com/blueimp/jQuery-File-Upload 5 | * 6 | * Copyright 2013, Sebastian Tschan 7 | * https://blueimp.net 8 | * 9 | * Licensed under the MIT license: 10 | * http://www.opensource.org/licenses/MIT 11 | */ 12 | 13 | body { 14 | padding-top: 60px; 15 | } 16 | -------------------------------------------------------------------------------- /.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 4 | org.eclipse.jdt.core.compiler.compliance=1.8 5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 7 | org.eclipse.jdt.core.compiler.source=1.8 8 | -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.common.project.facet.core.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/php/index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/css/jquery.fileupload-noscript.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /* 3 | * jQuery File Upload Plugin NoScript CSS 1.2.0 4 | * https://github.com/blueimp/jQuery-File-Upload 5 | * 6 | * Copyright 2013, Sebastian Tschan 7 | * https://blueimp.net 8 | * 9 | * Licensed under the MIT license: 10 | * http://www.opensource.org/licenses/MIT 11 | */ 12 | 13 | .fileinput-button input { 14 | position: static; 15 | opacity: 1; 16 | filter: none; 17 | font-size: inherit; 18 | direction: inherit; 19 | } 20 | .fileinput-button span { 21 | display: none; 22 | } 23 | -------------------------------------------------------------------------------- /src/utils/jdbc/PoolProperties.java: -------------------------------------------------------------------------------- 1 | package utils.jdbc; 2 | 3 | import java.io.IOException; 4 | import java.io.InputStream; 5 | import java.util.Properties; 6 | 7 | /** 8 | * @author h w j 9 | * @instruction 10 | * 读取连接池配置 11 | */ 12 | public class PoolProperties { 13 | public static Properties properties = new Properties(); 14 | 15 | static { 16 | InputStream in = PoolProperties.class.getClassLoader().getResourceAsStream("pool.properties"); 17 | try { 18 | properties.load(in); 19 | } catch (IOException e) { 20 | e.printStackTrace(); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /.settings/.jsdtscope: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/cors/result.html: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | 16 | 17 | jQuery Iframe Transport Plugin Redirect Page 18 | 19 | 20 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /WebContent/indexAll.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 |

4 | 来访者注册 5 |

6 | 7 |

8 | 来访者登录 9 |

10 | 来访者测试账号:15035141926
11 | 密码:123456 12 | 13 |

14 | 管理员登录 15 |

16 | 管理员测试账号:root
17 | 密码:root 18 | 19 | 20 |

21 | 咨询师登录 22 |

23 | 咨询师测试账号:15035141926
24 | 密码:123456 25 | 26 | 27 |

28 | ps:机器比较小,访问速度慢,见谅 29 | 30 | -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/lang/en.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "Invalid date or the date out of range,redo or not?", 3 | aWeekStr: ["wk", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 4 | aLongWeekStr:["wk","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], 5 | aMonStr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 6 | aLongMonStr: ["January","February","March","April","May","June","July","August","September","October","November","December"], 7 | clearStr: "Clear", 8 | todayStr: "Today", 9 | okStr: "OK", 10 | updateStr: "OK", 11 | timeStr: "Time", 12 | quickStr: "Quick Selection", 13 | err_1: 'MinDate Cannot be bigger than MaxDate!' 14 | } -------------------------------------------------------------------------------- /src/utils/mail/Mail.java: -------------------------------------------------------------------------------- 1 | package utils.mail; 2 | 3 | /** 4 | * 邮件类 5 | */ 6 | public class Mail { 7 | 8 | String title;//邮件标题 9 | String content;//邮件内容 10 | String to;//邮件接收人 11 | 12 | 13 | public Mail() { 14 | 15 | } 16 | 17 | public Mail(String title, String content, String to) { 18 | this.title = title; 19 | this.content = content; 20 | this.to = to; 21 | } 22 | 23 | 24 | public String getTitle() { 25 | return title; 26 | } 27 | public void setTitle(String title) { 28 | this.title = title; 29 | } 30 | public String getContent() { 31 | return content; 32 | } 33 | public void setContent(String content) { 34 | this.content = content; 35 | } 36 | public String getTo() { 37 | return to; 38 | } 39 | public void setTo(String to) { 40 | this.to = to; 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/css/jquery.fileupload.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /* 3 | * jQuery File Upload Plugin CSS 1.3.0 4 | * https://github.com/blueimp/jQuery-File-Upload 5 | * 6 | * Copyright 2013, Sebastian Tschan 7 | * https://blueimp.net 8 | * 9 | * Licensed under the MIT license: 10 | * http://www.opensource.org/licenses/MIT 11 | */ 12 | 13 | .fileinput-button { 14 | position: relative; 15 | overflow: hidden; 16 | } 17 | .fileinput-button input { 18 | position: absolute; 19 | top: 0; 20 | right: 0; 21 | margin: 0; 22 | opacity: 0; 23 | -ms-filter: 'alpha(opacity=0)'; 24 | font-size: 200px; 25 | direction: ltr; 26 | cursor: pointer; 27 | } 28 | 29 | /* Fixes for IE < 8 */ 30 | @media screen\9 { 31 | .fileinput-button input { 32 | filter: alpha(opacity=0); 33 | font-size: 100%; 34 | height: 100%; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/php/files/.htaccess: -------------------------------------------------------------------------------- 1 | # The following directives force the content-type application/octet-stream 2 | # and force browsers to display a download dialog for non-image files. 3 | # This prevents the execution of script files in the context of the website: 4 | ForceType application/octet-stream 5 | Header set Content-Disposition attachment 6 | 7 | ForceType none 8 | Header unset Content-Disposition 9 | 10 | 11 | # The following directive prevents browsers from MIME-sniffing the content-type. 12 | # This is an important complement to the ForceType directive above: 13 | Header set X-Content-Type-Options nosniff 14 | 15 | # Uncomment the following lines to prevent unauthorized download of files: 16 | #AuthName "Authorization required" 17 | #AuthType Basic 18 | #require valid-user 19 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/Gruntfile.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery File Upload Gruntfile 3 | * https://github.com/blueimp/jQuery-File-Upload 4 | * 5 | * Copyright 2013, Sebastian Tschan 6 | * https://blueimp.net 7 | * 8 | * Licensed under the MIT license: 9 | * http://www.opensource.org/licenses/MIT 10 | */ 11 | 12 | /*global module */ 13 | 14 | module.exports = function (grunt) { 15 | 'use strict'; 16 | 17 | grunt.initConfig({ 18 | jshint: { 19 | options: { 20 | jshintrc: '.jshintrc' 21 | }, 22 | all: [ 23 | 'Gruntfile.js', 24 | 'js/cors/*.js', 25 | 'js/*.js', 26 | 'server/node/server.js', 27 | 'test/test.js' 28 | ] 29 | } 30 | }); 31 | 32 | grunt.loadNpmTasks('grunt-contrib-jshint'); 33 | grunt.loadNpmTasks('grunt-bump-build-git'); 34 | grunt.registerTask('test', ['jshint']); 35 | grunt.registerTask('default', ['test']); 36 | 37 | }; 38 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | mindSubscribe 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.wst.common.project.facet.core.builder 15 | 16 | 17 | 18 | 19 | org.eclipse.wst.validation.validationbuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.jem.workbench.JavaEMFNature 26 | org.eclipse.wst.common.modulecore.ModuleCoreNature 27 | org.eclipse.wst.common.project.facet.core.nature 28 | org.eclipse.jdt.core.javanature 29 | org.eclipse.wst.jsdt.core.jsNature 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/utils/filter/CharacterEncodingFilter.java: -------------------------------------------------------------------------------- 1 | package utils.filter; 2 | 3 | import java.io.IOException; 4 | 5 | import javax.servlet.Filter; 6 | import javax.servlet.FilterChain; 7 | import javax.servlet.FilterConfig; 8 | import javax.servlet.ServletException; 9 | import javax.servlet.ServletRequest; 10 | import javax.servlet.ServletResponse; 11 | 12 | /** 13 | * @author h w j 14 | * @instruction 15 | * 字符过滤器(全部设置为UTF-8) 16 | */ 17 | public class CharacterEncodingFilter implements Filter{ 18 | 19 | @Override 20 | public void destroy() { 21 | // TODO Auto-generated method stub 22 | 23 | } 24 | 25 | @Override 26 | public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 27 | throws IOException, ServletException { 28 | 29 | request.setCharacterEncoding("UTF-8"); 30 | 31 | response.setCharacterEncoding("UTF-8"); 32 | 33 | //过滤器链 34 | chain.doFilter(request, response); 35 | 36 | } 37 | 38 | @Override 39 | public void init(FilterConfig filterConfig) throws ServletException { 40 | // TODO Auto-generated method stub 41 | 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/lang/zh-cn.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u8303\u56F4,\u9700\u8981\u64A4\u9500\u5417?", 3 | aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"], 4 | aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"], 5 | aMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00","\u5341\u4E8C"], 6 | aLongMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"], 7 | clearStr: "\u6E05\u7A7A", 8 | todayStr: "\u4ECA\u5929", 9 | okStr: "\u786E\u5B9A", 10 | updateStr: "\u786E\u5B9A", 11 | timeStr: "\u65F6\u95F4", 12 | quickStr: "\u5FEB\u901F\u9009\u62E9", 13 | err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u4E8E\u6700\u5927\u65E5\u671F!' 14 | } -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/lang/zh-tw.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u7BC4\u570D,\u9700\u8981\u64A4\u92B7\u55CE?", 3 | aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"], 4 | aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"], 5 | aMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00","\u5341\u4E8C"], 6 | aLongMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"], 7 | clearStr: "\u6E05\u7A7A", 8 | todayStr: "\u4ECA\u5929", 9 | okStr: "\u78BA\u5B9A", 10 | updateStr: "\u78BA\u5B9A", 11 | timeStr: "\u6642\u9593", 12 | quickStr: "\u5FEB\u901F\u9078\u64C7", 13 | err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u65BC\u6700\u5927\u65E5\u671F!' 14 | } -------------------------------------------------------------------------------- /src/utils/ResultDate.java: -------------------------------------------------------------------------------- 1 | package utils; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * @author h w j 8 | * @instruction 9 | * 响应结果 10 | */ 11 | public class ResultDate { 12 | 13 | /** 14 | * 是否成功 15 | */ 16 | private boolean isSuccess; 17 | 18 | /** 19 | * 返回消息 20 | */ 21 | private String msg; 22 | 23 | /** 24 | * 响应数据 25 | * @return 26 | */ 27 | private List dataList = new ArrayList<>(); 28 | 29 | 30 | 31 | public List getDataList() { 32 | return dataList; 33 | } 34 | 35 | public void setDataList(List dataList) { 36 | this.dataList = dataList; 37 | } 38 | 39 | public boolean isSuccess() { 40 | return isSuccess; 41 | } 42 | 43 | public boolean getIsSuccess() { 44 | return isSuccess; 45 | } 46 | 47 | public void setSuccess(boolean isSuccess) { 48 | this.isSuccess = isSuccess; 49 | } 50 | public void setIsSuccess(boolean isSuccess) { 51 | this.isSuccess = isSuccess; 52 | } 53 | 54 | public String getMsg() { 55 | return msg; 56 | } 57 | 58 | public void setMsg(String msg) { 59 | this.msg = msg; 60 | } 61 | 62 | 63 | } 64 | -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/js/jquery.ui.touch-punch.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Touch Punch 0.2.2 3 | * 4 | * Copyright 2011, Dave Furfero 5 | * Dual licensed under the MIT or GPL Version 2 licenses. 6 | * 7 | * Depends: 8 | * jquery.ui.widget.js 9 | * jquery.ui.mouse.js 10 | */ 11 | (function(b){b.support.touch="ontouchend" in document;if(!b.support.touch){return;}var c=b.ui.mouse.prototype,e=c._mouseInit,a;function d(g,h){if(g.originalEvent.touches.length>1){return;}g.preventDefault();var i=g.originalEvent.changedTouches[0],f=document.createEvent("MouseEvents");f.initMouseEvent(h,true,true,window,1,i.screenX,i.screenY,i.clientX,i.clientY,false,false,false,false,0,null);g.target.dispatchEvent(f);}c._touchStart=function(g){var f=this;if(a||!f._mouseCapture(g.originalEvent.changedTouches[0])){return;}a=true;f._touchMoved=false;d(g,"mouseover");d(g,"mousemove");d(g,"mousedown");};c._touchMove=function(f){if(!a){return;}this._touchMoved=true;d(f,"mousemove");};c._touchEnd=function(f){if(!a){return;}d(f,"mouseup");d(f,"mouseout");if(!this._touchMoved){d(f,"click");}a=false;};c._mouseInit=function(){var f=this;f.element.bind("touchstart",b.proxy(f,"_touchStart")).bind("touchmove",b.proxy(f,"_touchMove")).bind("touchend",b.proxy(f,"_touchEnd"));e.call(f);};})(jQuery); -------------------------------------------------------------------------------- /src/model/service/AdminService.java: -------------------------------------------------------------------------------- 1 | package model.service; 2 | 3 | import bean.Admin; 4 | import model.dao.AdminDao; 5 | 6 | /** 7 | * @author h w j 8 | * @instruction 9 | * 管理员的Service 10 | */ 11 | public class AdminService { 12 | 13 | AdminDao adminDao = new AdminDao(); 14 | 15 | /** 16 | * 根据账号查询管理员(或者电话号码) 17 | * @param adminName 管理员账号 18 | * @return adminName 查询到的管理员 19 | */ 20 | public Admin getAdmin(String adminName) { 21 | return adminDao.getAdmin(adminName); 22 | } 23 | 24 | /** 25 | * 修改管理员密码 26 | * @param adminId 管理员id 27 | * @param newPwd 新密码 28 | * @return 执行update后受影响行数 29 | */ 30 | public int updateAdminPwd(Integer adminId, String newPwd) { 31 | return adminDao.updateAdminPwd(adminId, newPwd); 32 | } 33 | 34 | /** 35 | * 修改管理员信息,根据管理员id 36 | * @param admin 管理员的新信息 37 | * @param adminId 管理员id 38 | * @return 执行update后受影响行数 39 | */ 40 | public int updateAdminBase(Admin admin, Integer adminId) { 41 | return adminDao.updateAdminBase(admin, adminId); 42 | } 43 | 44 | /** 45 | * 根据Id查询管理员个人信息 46 | * 47 | * @param adminId 管理员id 48 | * @return 查询到的管理员对象 49 | */ 50 | public Admin getAdminById(Integer adminId) { 51 | return adminDao.getAdminById(adminId); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/server/node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "blueimp-file-upload-node", 3 | "version": "2.1.0", 4 | "title": "jQuery File Upload Node.js example", 5 | "description": "Node.js implementation example of a file upload handler for jQuery File Upload.", 6 | "keywords": [ 7 | "file", 8 | "upload", 9 | "cross-domain", 10 | "cross-site", 11 | "node" 12 | ], 13 | "homepage": "https://github.com/blueimp/jQuery-File-Upload", 14 | "author": { 15 | "name": "Sebastian Tschan", 16 | "url": "https://blueimp.net" 17 | }, 18 | "maintainers": [ 19 | { 20 | "name": "Sebastian Tschan", 21 | "url": "https://blueimp.net" 22 | } 23 | ], 24 | "repository": { 25 | "type": "git", 26 | "url": "git://github.com/blueimp/jQuery-File-Upload.git" 27 | }, 28 | "bugs": "https://github.com/blueimp/jQuery-File-Upload/issues", 29 | "licenses": [ 30 | { 31 | "type": "MIT", 32 | "url": "http://www.opensource.org/licenses/MIT" 33 | } 34 | ], 35 | "dependencies": { 36 | "formidable": ">=1.0.11", 37 | "node-static": ">=0.6.5", 38 | "imagemagick": ">=0.1.3" 39 | }, 40 | "main": "server.js" 41 | } 42 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/css/jquery.fileupload-ui.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /* 3 | * jQuery File Upload UI Plugin CSS 9.0.0 4 | * https://github.com/blueimp/jQuery-File-Upload 5 | * 6 | * Copyright 2010, Sebastian Tschan 7 | * https://blueimp.net 8 | * 9 | * Licensed under the MIT license: 10 | * http://www.opensource.org/licenses/MIT 11 | */ 12 | 13 | .fileupload-buttonbar .btn, 14 | .fileupload-buttonbar .toggle { 15 | margin-bottom: 5px; 16 | } 17 | .progress-animated .progress-bar, 18 | .progress-animated .bar { 19 | background: url("../img/progressbar.gif") !important; 20 | filter: none; 21 | } 22 | .fileupload-process { 23 | float: right; 24 | display: none; 25 | } 26 | .fileupload-processing .fileupload-process, 27 | .files .processing .preview { 28 | display: block; 29 | width: 32px; 30 | height: 32px; 31 | background: url("../img/loading.gif") center no-repeat; 32 | background-size: contain; 33 | } 34 | .files audio, 35 | .files video { 36 | max-width: 300px; 37 | } 38 | 39 | @media (max-width: 767px) { 40 | .fileupload-buttonbar .toggle, 41 | .files .toggle, 42 | .files .btn span { 43 | display: none; 44 | } 45 | .files .name { 46 | width: 80px; 47 | word-wrap: break-word; 48 | } 49 | .files audio, 50 | .files video { 51 | max-width: 80px; 52 | } 53 | .files img, 54 | .files canvas { 55 | max-width: 100%; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/utils/jdbc/Pool.java: -------------------------------------------------------------------------------- 1 | package utils.jdbc; 2 | 3 | import java.sql.Connection; 4 | import java.sql.SQLException; 5 | 6 | import javax.sql.DataSource; 7 | 8 | import org.apache.commons.dbcp.BasicDataSourceFactory; 9 | 10 | /** 11 | * @author h w j 12 | * @instruction 13 | * 数据库连接池 14 | */ 15 | public class Pool { 16 | 17 | private static DataSource ds = null; 18 | 19 | static { 20 | try { 21 | Class.forName("com.mysql.jdbc.Driver").newInstance(); 22 | ds = BasicDataSourceFactory.createDataSource(PoolProperties.properties); 23 | 24 | } catch (Exception e) { 25 | e.printStackTrace(); 26 | } 27 | } 28 | 29 | 30 | /** 31 | * 从数据源中获取数据库连接 32 | * @return 连接 33 | */ 34 | public static Connection getConnection()throws SQLException{ 35 | 36 | return ds.getConnection(); 37 | 38 | } 39 | 40 | 41 | 42 | /** 43 | * 释放连接 44 | * @param conn 连接 45 | */ 46 | public static void release(Connection conn){ 47 | 48 | 49 | if(conn!=null){ 50 | 51 | 52 | try{ 53 | 54 | 55 | //将Connection连接对象还给数据库连接池 56 | 57 | conn.close(); 58 | 59 | 60 | }catch (Exception e) { 61 | 62 | e.printStackTrace(); 63 | 64 | } 65 | 66 | 67 | } 68 | 69 | } 70 | 71 | 72 | } 73 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/css/demo.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /* 3 | * jQuery File Upload Demo CSS 1.1.0 4 | * https://github.com/blueimp/jQuery-File-Upload 5 | * 6 | * Copyright 2013, Sebastian Tschan 7 | * https://blueimp.net 8 | * 9 | * Licensed under the MIT license: 10 | * http://www.opensource.org/licenses/MIT 11 | */ 12 | 13 | body { 14 | max-width: 750px; 15 | margin: 0 auto; 16 | padding: 1em; 17 | font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, sans-serif; 18 | font-size: 1em; 19 | line-height: 1.4em; 20 | background: #222; 21 | color: #fff; 22 | -webkit-text-size-adjust: 100%; 23 | -ms-text-size-adjust: 100%; 24 | } 25 | a { 26 | color: orange; 27 | text-decoration: none; 28 | } 29 | img { 30 | border: 0; 31 | vertical-align: middle; 32 | } 33 | h1 { 34 | line-height: 1em; 35 | } 36 | blockquote { 37 | padding: 0 0 0 15px; 38 | margin: 0 0 20px; 39 | border-left: 5px solid #eee; 40 | } 41 | table { 42 | width: 100%; 43 | margin: 10px 0; 44 | } 45 | 46 | .fileupload-progress { 47 | margin: 10px 0; 48 | } 49 | .fileupload-progress .progress-extended { 50 | margin-top: 5px; 51 | } 52 | .error { 53 | color: red; 54 | } 55 | 56 | @media (min-width: 481px) { 57 | .navigation { 58 | list-style: none; 59 | padding: 0; 60 | } 61 | .navigation li { 62 | display: inline-block; 63 | } 64 | .navigation li:not(:first-child):before { 65 | content: "| "; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/bean/Question.java: -------------------------------------------------------------------------------- 1 | package bean; 2 | 3 | /** 4 | * @author h w j 5 | * @instruction 6 | * 问卷 question ,对应的实体类 7 | */ 8 | public class Question { 9 | 10 | /** 11 | * 一个问卷题目的id 12 | */ 13 | private Integer questionId; 14 | 15 | /** 16 | * 题目题号 17 | */ 18 | private Integer questionNum; 19 | 20 | /** 21 | * 题目内容 22 | */ 23 | private String context; 24 | 25 | /** 26 | * 题目回答是的分值 27 | */ 28 | private Integer answerYesScore; 29 | 30 | /** 31 | * 题目回答否的分值 32 | */ 33 | private Integer answerNoScore; 34 | 35 | public Integer getQuestionId() { 36 | return questionId; 37 | } 38 | 39 | public void setQuestionId(Integer questionId) { 40 | this.questionId = questionId; 41 | } 42 | 43 | public Integer getQuestionNum() { 44 | return questionNum; 45 | } 46 | 47 | public void setQuestionNum(Integer questionNum) { 48 | this.questionNum = questionNum; 49 | } 50 | 51 | public String getContext() { 52 | return context; 53 | } 54 | 55 | public void setContext(String context) { 56 | this.context = context; 57 | } 58 | 59 | public Integer getAnswerYesScore() { 60 | return answerYesScore; 61 | } 62 | 63 | public void setAnswerYesScore(Integer answerYesScore) { 64 | this.answerYesScore = answerYesScore; 65 | } 66 | 67 | public Integer getAnswerNoScore() { 68 | return answerNoScore; 69 | } 70 | 71 | public void setAnswerNoScore(Integer answerNoScore) { 72 | this.answerNoScore = answerNoScore; 73 | } 74 | 75 | } 76 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/blueimp-file-upload.jquery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "blueimp-file-upload", 3 | "version": "9.7.2", 4 | "title": "jQuery File Upload", 5 | "author": { 6 | "name": "Sebastian Tschan", 7 | "url": "https://blueimp.net" 8 | }, 9 | "licenses": [ 10 | { 11 | "type": "MIT", 12 | "url": "http://www.opensource.org/licenses/MIT" 13 | } 14 | ], 15 | "dependencies": { 16 | "jquery": ">=1.6" 17 | }, 18 | "description": "File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.", 19 | "keywords": [ 20 | "jquery", 21 | "file", 22 | "upload", 23 | "widget", 24 | "multiple", 25 | "selection", 26 | "drag", 27 | "drop", 28 | "progress", 29 | "preview", 30 | "cross-domain", 31 | "cross-site", 32 | "chunk", 33 | "resume", 34 | "gae", 35 | "go", 36 | "python", 37 | "php", 38 | "bootstrap" 39 | ], 40 | "homepage": "https://github.com/blueimp/jQuery-File-Upload", 41 | "docs": "https://github.com/blueimp/jQuery-File-Upload/wiki", 42 | "demo": "https://blueimp.github.io/jQuery-File-Upload/", 43 | "bugs": "https://github.com/blueimp/jQuery-File-Upload/issues", 44 | "maintainers": [ 45 | { 46 | "name": "Sebastian Tschan", 47 | "url": "https://blueimp.net" 48 | } 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "blueimp-file-upload", 3 | "version": "9.7.2", 4 | "title": "jQuery File Upload", 5 | "description": "File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.", 6 | "keywords": [ 7 | "jquery", 8 | "file", 9 | "upload", 10 | "widget", 11 | "multiple", 12 | "selection", 13 | "drag", 14 | "drop", 15 | "progress", 16 | "preview", 17 | "cross-domain", 18 | "cross-site", 19 | "chunk", 20 | "resume", 21 | "gae", 22 | "go", 23 | "python", 24 | "php", 25 | "bootstrap" 26 | ], 27 | "homepage": "https://github.com/blueimp/jQuery-File-Upload", 28 | "author": { 29 | "name": "Sebastian Tschan", 30 | "url": "https://blueimp.net" 31 | }, 32 | "maintainers": [ 33 | { 34 | "name": "Sebastian Tschan", 35 | "url": "https://blueimp.net" 36 | } 37 | ], 38 | "repository": { 39 | "type": "git", 40 | "url": "git://github.com/blueimp/jQuery-File-Upload.git" 41 | }, 42 | "bugs": "https://github.com/blueimp/jQuery-File-Upload/issues", 43 | "licenses": [ 44 | { 45 | "type": "MIT", 46 | "url": "http://www.opensource.org/licenses/MIT" 47 | } 48 | ], 49 | "devDependencies": { 50 | "grunt": "~0.4.5", 51 | "grunt-bump-build-git": "~1.1.1", 52 | "grunt-contrib-jshint": "~0.10.0" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/utils/mail/MailSend.java: -------------------------------------------------------------------------------- 1 | package utils.mail; 2 | 3 | import org.apache.commons.mail.SimpleEmail; 4 | 5 | import utils.ConfigProperties; 6 | 7 | /** 8 | * @author h w j 9 | * @instruction 10 | * 发送邮件工具 11 | */ 12 | public class MailSend { 13 | 14 | public static void sendMail(final Mail mail){ 15 | 16 | Thread thread = new Thread(new Runnable() { 17 | 18 | @Override 19 | public void run() { 20 | 21 | send(mail); 22 | 23 | } 24 | }); 25 | 26 | thread.start(); 27 | 28 | } 29 | 30 | @SuppressWarnings("deprecation") 31 | public static boolean send(Mail mail){ 32 | 33 | System.out.println(mail.getContent() + "邮件内容"); 34 | 35 | SimpleEmail email = new SimpleEmail(); 36 | 37 | email.setHostName(ConfigProperties.getHostName()); 38 | 39 | email.setAuthentication(ConfigProperties.getAuthenticationEmail(),ConfigProperties.getAuthenticationPwd()); //发送者邮箱的用户名和鉴权码 40 | 41 | email.setCharset("UTF-8"); 42 | 43 | try { 44 | 45 | email.setFrom(ConfigProperties.getAuthenticationEmail());//发件人邮箱 46 | 47 | email.addTo(mail.getTo());//收件人邮箱 48 | 49 | email.setSubject(mail.getTitle());//邮件标题 50 | 51 | //email.setMsg(mail.getContent());//邮件内容 52 | 53 | //设置内容为html 54 | email.setContent(mail.getContent(), SimpleEmail.TEXT_HTML); 55 | 56 | email.setSSL(true);//使用ssl(Secure Sockets Layer 安全套接层) 57 | 58 | email.send();//发送 59 | 60 | System.out.println("邮件发送成功"); 61 | 62 | } catch (Exception e) { 63 | e.printStackTrace(); 64 | System.out.println("邮件发送失败"); 65 | return false; 66 | } 67 | 68 | return true; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/js/jquery.hotkeys.min.js: -------------------------------------------------------------------------------- 1 | (function(b){b.hotkeys={version:"0.8",specialKeys:{8:"backspace",9:"tab",10:"return",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",186:";",191:"/",220:"\\",222:"'",224:"meta"},shiftNums:{"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"}};function a(d){if(typeof d.data=="undefined"){return}if(typeof d.data==="string"){d.data={keys:d.data}}if(!d.data||!d.data.keys||typeof d.data.keys!=="string"){return}var c=d.handler,e=d.data.keys.toLowerCase().split(" "),f=["text","password","number","email","url","range","date","month","week","time","datetime","datetime-local","search","color","tel"];d.handler=function(k){if(this!==k.target&&(/textarea|select/i.test(k.target.nodeName)||b.inArray(k.target.type,f)>-1)){return}var h=b.hotkeys.specialKeys[k.keyCode],m=(k.type==="keydown"||k.type==="keypress")&&String.fromCharCode(k.which).toLowerCase();modif="",possible={};if(k.altKey&&h!=="alt"){modif+="alt+"}if(k.ctrlKey&&h!=="ctrl"){modif+="ctrl+"}if(k.metaKey&&!k.ctrlKey&&h!=="meta"){modif+="meta+"}if(k.shiftKey&&h!=="shift"){modif+="shift+"}if(h){possible[modif+h]=true}if(m){possible[modif+m]=true;possible[modif+b.hotkeys.shiftNums[m]]=true;if(modif==="shift+"){possible[b.hotkeys.shiftNums[m]]=true}}for(var j=0,g=e.length;j currentUser = MessageServlet.getCurrentUser(request); 45 | 46 | String str = ""; 52 | java.io.PrintWriter writer = response.getWriter(); 53 | writer.println(str); 54 | writer.close(); 55 | return ; 56 | } 57 | 58 | chain.doFilter(request, response); 59 | } 60 | 61 | /** 62 | * @see Filter#init(FilterConfig) 63 | */ 64 | public void init(FilterConfig fConfig) throws ServletException { 65 | // TODO Auto-generated method stub 66 | } 67 | 68 | } 69 | -------------------------------------------------------------------------------- /src/utils/UploadResult.java: -------------------------------------------------------------------------------- 1 | package utils; 2 | /** 3 | * @author h w j 4 | * @instruction 5 | * 文档上传结果 6 | */ 7 | public class UploadResult { 8 | 9 | /** 10 | * 逻辑文件名 11 | */ 12 | private String logicFileName; 13 | 14 | /** 15 | * 源文件名 16 | */ 17 | private String sourceFileName; 18 | 19 | /** 20 | * 上传结果 21 | */ 22 | private boolean result = false; 23 | 24 | /** 25 | * 上传结果消息 26 | */ 27 | private String msg; 28 | 29 | /** 30 | * 是否因大小,类型不合法而拒绝 31 | */ 32 | private boolean isRefuse = false; 33 | 34 | 35 | 36 | /** 37 | * 文件的大小 38 | */ 39 | private long size; 40 | 41 | 42 | 43 | 44 | 45 | public boolean isRefuse() { 46 | return isRefuse; 47 | } 48 | 49 | public boolean getIsRefuse() { 50 | return isRefuse; 51 | } 52 | 53 | public void setRefuse(boolean isRefuse) { 54 | this.isRefuse = isRefuse; 55 | } 56 | 57 | 58 | public String getLogicFileName() { 59 | return logicFileName; 60 | } 61 | 62 | 63 | public void setLogicFileName(String logicFileName) { 64 | this.logicFileName = logicFileName; 65 | } 66 | 67 | 68 | public String getSourceFileName() { 69 | return sourceFileName; 70 | } 71 | 72 | 73 | public void setSourceFileName(String sourceFileName) { 74 | this.sourceFileName = sourceFileName; 75 | } 76 | 77 | 78 | public boolean isSuccess() { 79 | return result; 80 | } 81 | 82 | public boolean getResult() { 83 | return result; 84 | } 85 | 86 | public void setResult(boolean result) { 87 | this.result = result; 88 | } 89 | 90 | 91 | public String getMsg() { 92 | return msg; 93 | } 94 | 95 | 96 | public void setMsg(String msg) { 97 | this.msg = msg; 98 | } 99 | 100 | 101 | public long getSize() { 102 | return size; 103 | } 104 | 105 | 106 | public void setSize(long size) { 107 | this.size = size; 108 | } 109 | 110 | } 111 | -------------------------------------------------------------------------------- /src/utils/filter/MessageBoardFilter.java: -------------------------------------------------------------------------------- 1 | package utils.filter; 2 | 3 | import java.io.IOException; 4 | import java.util.Map; 5 | 6 | import javax.servlet.Filter; 7 | import javax.servlet.FilterChain; 8 | import javax.servlet.FilterConfig; 9 | import javax.servlet.ServletException; 10 | import javax.servlet.ServletRequest; 11 | import javax.servlet.ServletResponse; 12 | import javax.servlet.http.HttpServletRequest; 13 | import javax.servlet.http.HttpServletResponse; 14 | 15 | import servlet.MessageServlet; 16 | 17 | /** 18 | * @author h w j 19 | * @instruction 20 | * 留言模块过滤器(必须登录) 21 | */ 22 | public class MessageBoardFilter implements Filter { 23 | 24 | /** 25 | * Default constructor. 26 | */ 27 | public MessageBoardFilter() { 28 | // TODO Auto-generated constructor stub 29 | } 30 | 31 | /** 32 | * @see Filter#destroy() 33 | */ 34 | public void destroy() { 35 | // TODO Auto-generated method stub 36 | } 37 | 38 | /** 39 | * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) 40 | */ 41 | public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { 42 | 43 | HttpServletRequest request = (HttpServletRequest) req; 44 | 45 | HttpServletResponse response = (HttpServletResponse) res; 46 | 47 | //得到当前登录的用户 48 | Map currentUser = MessageServlet.getCurrentUser(request); 49 | 50 | String str = ""; 56 | java.io.PrintWriter writer = response.getWriter(); 57 | writer.println(str); 58 | writer.close(); 59 | return ; 60 | } 61 | 62 | chain.doFilter(request, response); 63 | } 64 | 65 | /** 66 | * @see Filter#init(FilterConfig) 67 | */ 68 | public void init(FilterConfig fConfig) throws ServletException { 69 | // TODO Auto-generated method stub 70 | } 71 | 72 | } 73 | -------------------------------------------------------------------------------- /src/servlet/DownloadFile.java: -------------------------------------------------------------------------------- 1 | package servlet; 2 | 3 | import java.io.FileInputStream; 4 | import java.io.IOException; 5 | import java.io.InputStream; 6 | import java.io.OutputStream; 7 | 8 | import javax.servlet.ServletException; 9 | import javax.servlet.http.HttpServlet; 10 | import javax.servlet.http.HttpServletRequest; 11 | import javax.servlet.http.HttpServletResponse; 12 | 13 | import utils.ConfigProperties; 14 | 15 | /** 16 | * @author h w j 17 | * @instruction 18 | * 咨询文档下载模块 19 | */ 20 | public class DownloadFile extends HttpServlet { 21 | private static final long serialVersionUID = 1L; 22 | 23 | 24 | /** 25 | * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse 26 | * response) 27 | */ 28 | protected void service(HttpServletRequest request, HttpServletResponse response) 29 | throws ServletException, IOException { 30 | 31 | String m = request.getParameter("m"); 32 | if("downloadSubDoc".equals(m)) { 33 | 34 | // 接受参数 35 | String subDocPath = request.getParameter("subDocPath"); 36 | String fileName = request.getParameter("filename"); 37 | 38 | fileName += "_" + subDocPath.substring(subDocPath.length()-10, subDocPath.length()); 39 | 40 | response.setHeader("content-disposition","attachment;filename=\"" + new String(fileName.getBytes("GBK"),"ISO8859-1") + "\""); 41 | 42 | 43 | 44 | InputStream is = null; 45 | OutputStream os = null; 46 | 47 | try { 48 | 49 | is = new FileInputStream(ConfigProperties.getUploadPath() + "\\" + subDocPath); 50 | os = response.getOutputStream(); 51 | 52 | byte[] bytes = new byte[2048]; 53 | int len = -1; 54 | while ((len = is.read(bytes)) != -1) { 55 | os.write(bytes); 56 | } 57 | 58 | } catch (Exception e) { 59 | e.printStackTrace(); 60 | }finally { 61 | if(os != null) { 62 | os.close(); 63 | } 64 | if(is != null) { 65 | is.close(); 66 | } 67 | } 68 | 69 | } 70 | 71 | 72 | 73 | 74 | } 75 | 76 | } 77 | -------------------------------------------------------------------------------- /src/utils/filter/AdminLoginFilter.java: -------------------------------------------------------------------------------- 1 | package utils.filter; 2 | 3 | import java.io.IOException; 4 | 5 | import javax.servlet.Filter; 6 | import javax.servlet.FilterChain; 7 | import javax.servlet.FilterConfig; 8 | import javax.servlet.ServletException; 9 | import javax.servlet.ServletRequest; 10 | import javax.servlet.ServletResponse; 11 | import javax.servlet.http.HttpServletRequest; 12 | import javax.servlet.http.HttpServletResponse; 13 | import javax.servlet.http.HttpSession; 14 | 15 | import bean.Admin; 16 | import servlet.admin.AdminLoginServlet; 17 | import servlet.admin.AdminServlet; 18 | 19 | /** 20 | * @author h w j 21 | * @instruction 22 | * 管理员登录的过滤器 23 | */ 24 | public class AdminLoginFilter implements Filter { 25 | 26 | @Override 27 | public void destroy() { 28 | 29 | } 30 | 31 | @Override 32 | public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 33 | throws IOException, ServletException { 34 | 35 | HttpServletRequest request = (HttpServletRequest) req; 36 | 37 | HttpServletResponse response = (HttpServletResponse) res; 38 | 39 | HttpSession session = request.getSession(); 40 | 41 | String path = request.getRequestURI(); 42 | 43 | if (path.endsWith("/admin/login")) { 44 | // 过滤器链 45 | chain.doFilter(req, res); 46 | return; 47 | } 48 | 49 | 50 | 51 | 52 | Admin admin = (Admin) session.getAttribute(AdminLoginServlet.LOGIN_ADMIN); 53 | 54 | if (admin == null) { 55 | 56 | System.out.println("AdminLoginFilter:管理员未登录,被拦截:" + path); 57 | 58 | // 未登录 59 | // 重定向到登录页面 60 | java.io.PrintWriter writer = response.getWriter(); 61 | 62 | writer.println(""); 65 | writer.close(); 66 | return; 67 | } 68 | 69 | // 过滤器链 70 | chain.doFilter(req, res); 71 | 72 | } 73 | 74 | @Override 75 | public void init(FilterConfig arg0) throws ServletException { 76 | 77 | } 78 | 79 | } 80 | -------------------------------------------------------------------------------- /WebContent/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 很抱歉,此页面暂时找不到! 7 | 8 | 82 | 83 | 84 | 85 | 86 |
88 |

抱歉,找不到此页面~

89 |

Sorry, the site now can not be accessed.

90 | 你请求访问的页面,暂时找不到!

91 |
92 | 93 | 94 | -------------------------------------------------------------------------------- /WebContent/500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 很抱歉,此页面暂时找不到! 7 | 8 | 82 | 83 | 84 | 85 | 86 |
88 |

抱歉,发生了一个错误~

89 |

Sorry, the site now can not be accessed.

90 | 你请求访问的页面,我们正在努力修复!

91 |
92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /src/bean/Announcement.java: -------------------------------------------------------------------------------- 1 | package bean; 2 | 3 | import java.util.Date; 4 | 5 | import org.apache.struts2.json.annotations.JSON; 6 | 7 | /** 8 | * @author h w j 9 | * @instruction 10 | * 公告 announcement表,对应的实体类 11 | * 12 | */ 13 | public class Announcement { 14 | 15 | /** 16 | * 一条的公告主键 17 | */ 18 | private Integer announcementId; 19 | 20 | 21 | /** 22 | * 公告标题 23 | */ 24 | private String title; 25 | 26 | /** 27 | * 公告内容 28 | */ 29 | private String context; 30 | 31 | 32 | 33 | /** 34 | * 创建该公告的管理员id 35 | */ 36 | private Integer createrId; 37 | 38 | /** 39 | * 创建时间 40 | */ 41 | private Date createTime; 42 | 43 | /** 44 | * 是否显示,0 不显示,1 显示 45 | */ 46 | private Integer isActive; 47 | 48 | 49 | /** 50 | * 创建公告的管理员 51 | */ 52 | private Admin admin; 53 | 54 | 55 | public Integer getAnnouncementId() { 56 | return announcementId; 57 | } 58 | 59 | public void setAnnouncementId(Integer announcementId) { 60 | this.announcementId = announcementId; 61 | } 62 | 63 | public String getContext() { 64 | return context; 65 | } 66 | 67 | public void setContext(String context) { 68 | this.context = context; 69 | } 70 | 71 | public Integer getCreaterId() { 72 | return createrId; 73 | } 74 | 75 | public void setCreaterId(Integer createrId) { 76 | this.createrId = createrId; 77 | } 78 | 79 | @JSON(format="yyyy-MM-dd HH:mm:ss") 80 | public Date getCreateTime() { 81 | return createTime; 82 | } 83 | 84 | public void setCreateTime(Date createTime) { 85 | this.createTime = createTime; 86 | } 87 | 88 | public Integer getIsActive() { 89 | return isActive; 90 | } 91 | 92 | public void setIsActive(Integer isActive) { 93 | this.isActive = isActive; 94 | } 95 | 96 | public String getTitle() { 97 | return title; 98 | } 99 | 100 | public void setTitle(String title) { 101 | this.title = title; 102 | } 103 | 104 | public Admin getAdmin() { 105 | return admin; 106 | } 107 | 108 | public void setAdmin(Admin admin) { 109 | this.admin = admin; 110 | } 111 | 112 | 113 | } 114 | -------------------------------------------------------------------------------- /src/servlet/admin/AdminLoginServlet.java: -------------------------------------------------------------------------------- 1 | package servlet.admin; 2 | 3 | import java.io.IOException; 4 | import javax.servlet.ServletException; 5 | import javax.servlet.http.HttpServlet; 6 | import javax.servlet.http.HttpServletRequest; 7 | import javax.servlet.http.HttpServletResponse; 8 | 9 | import bean.Admin; 10 | import model.service.AdminService; 11 | 12 | /** 13 | * @author h w j 14 | * @instruction 15 | * 管理员登录,登出控制器 16 | */ 17 | public class AdminLoginServlet extends HttpServlet { 18 | private static final long serialVersionUID = 1L; 19 | 20 | /** 21 | * 当前登录的管理员 22 | */ 23 | public static final String LOGIN_ADMIN = "LOGIN_ADMIN"; 24 | 25 | AdminService adminService = new AdminService(); 26 | 27 | /** 28 | * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse 29 | * response) 30 | */ 31 | protected void service(HttpServletRequest request, HttpServletResponse response) 32 | throws ServletException, IOException { 33 | 34 | String m = request.getParameter("m"); 35 | 36 | if ("saveLogin".equals(m)) { 37 | 38 | String adminName = request.getParameter("adminName"); 39 | 40 | String adminPwd = request.getParameter("adminPwd"); 41 | 42 | // 向数据库查询管理员 43 | Admin admin = adminService.getAdmin(adminName); 44 | 45 | if (admin == null || !(admin.getAdminPwd().equals(adminPwd))) { 46 | 47 | // 登录失败 48 | 49 | request.setAttribute("msg", "用户名或密码错误!"); 50 | 51 | request.getRequestDispatcher("/admin/login.jsp").forward(request, response); 52 | 53 | } else if (admin.getIs_active() == 0) { 54 | 55 | request.setAttribute("msg", "当前账户不可用!"); 56 | 57 | request.getRequestDispatcher("/admin/login.jsp").forward(request, response); 58 | 59 | } else { 60 | 61 | // 登录成功 62 | 63 | request.getSession().setAttribute(LOGIN_ADMIN, admin); 64 | 65 | response.sendRedirect(request.getContextPath() + "/admin/index.jsp"); 66 | 67 | } 68 | 69 | } else if ("logOutAdmin".equals(m)) { 70 | 71 | request.getSession().removeAttribute(LOGIN_ADMIN); 72 | 73 | request.getRequestDispatcher("/admin/login.jsp").forward(request, response); 74 | 75 | } else { 76 | 77 | request.getRequestDispatcher("/admin/login.jsp").forward(request, response); 78 | } 79 | 80 | } 81 | 82 | } 83 | -------------------------------------------------------------------------------- /src/servlet/doctor/DoctorLoginServlet.java: -------------------------------------------------------------------------------- 1 | package servlet.doctor; 2 | 3 | import java.io.IOException; 4 | import javax.servlet.ServletException; 5 | import javax.servlet.http.HttpServlet; 6 | import javax.servlet.http.HttpServletRequest; 7 | import javax.servlet.http.HttpServletResponse; 8 | 9 | import bean.Client; 10 | import bean.Doctor; 11 | import model.service.DoctorService; 12 | 13 | /** 14 | * @author h w j 15 | * @instruction 16 | * 咨询师登录,登出控制器 17 | */ 18 | public class DoctorLoginServlet extends HttpServlet { 19 | private static final long serialVersionUID = 1L; 20 | 21 | public final static String LOGIN_DOCTOR = "LOGIN_DOCTOR"; 22 | 23 | DoctorService doctorService = new DoctorService(); 24 | 25 | /** 26 | * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response) 27 | */ 28 | protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 29 | 30 | String m = request.getParameter("m"); 31 | 32 | if ("saveLogin".equals(m)) { 33 | 34 | String doctorName = request.getParameter("doctorName"); 35 | 36 | String doctorPwd = request.getParameter("doctorPwd"); 37 | 38 | // 向数据库查询来访者 39 | Doctor doctor = doctorService.getDoctor(doctorName); 40 | 41 | if (doctor == null || !(doctor.getDoctorPwd().equals(doctorPwd))) { 42 | 43 | // 登录失败 44 | 45 | request.setAttribute("msg", "用户名或密码错误!"); 46 | 47 | request.getRequestDispatcher("/doctor/login.jsp").forward(request, response); 48 | 49 | }else if(doctor.getIsActive() == 0) { 50 | 51 | // 登录失败 52 | 53 | request.setAttribute("msg", "当前账户不可用!"); 54 | 55 | request.getRequestDispatcher("/doctor/login.jsp").forward(request, response); 56 | 57 | } 58 | else { 59 | 60 | // 登录成功 61 | 62 | request.getSession().setAttribute(LOGIN_DOCTOR, doctor); 63 | 64 | response.sendRedirect(request.getContextPath() + "/doctor/index.jsp"); 65 | 66 | } 67 | 68 | }else if("logOutClient".equals(m)){ 69 | 70 | request.getSession().removeAttribute(LOGIN_DOCTOR); 71 | 72 | request.getRequestDispatcher("/doctor/login.jsp").forward(request, response); 73 | 74 | }else { 75 | 76 | request.getRequestDispatcher("/doctor/login.jsp").forward(request, response); 77 | } 78 | 79 | } 80 | 81 | } 82 | -------------------------------------------------------------------------------- /src/utils/filter/ClientLoginFilter.java: -------------------------------------------------------------------------------- 1 | package utils.filter; 2 | 3 | import java.io.IOException; 4 | import javax.servlet.Filter; 5 | import javax.servlet.FilterChain; 6 | import javax.servlet.FilterConfig; 7 | import javax.servlet.ServletException; 8 | import javax.servlet.ServletRequest; 9 | import javax.servlet.ServletResponse; 10 | import javax.servlet.http.HttpServletRequest; 11 | import javax.servlet.http.HttpServletResponse; 12 | import javax.servlet.http.HttpSession; 13 | 14 | import bean.Admin; 15 | import bean.Client; 16 | import servlet.admin.AdminLoginServlet; 17 | import servlet.client.ClientLoginServlet; 18 | 19 | /** 20 | * @author h w j 21 | * @instruction 22 | * 来访者登录过滤器 23 | */ 24 | public class ClientLoginFilter implements Filter { 25 | 26 | /** 27 | * Default constructor. 28 | */ 29 | public ClientLoginFilter() { 30 | // TODO Auto-generated constructor stub 31 | } 32 | 33 | /** 34 | * @see Filter#destroy() 35 | */ 36 | public void destroy() { 37 | // TODO Auto-generated method stub 38 | } 39 | 40 | /** 41 | * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) 42 | */ 43 | public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 44 | throws IOException, ServletException { 45 | 46 | HttpServletRequest request = (HttpServletRequest) req; 47 | 48 | HttpServletResponse response = (HttpServletResponse) res; 49 | 50 | HttpSession session = request.getSession(); 51 | 52 | String path = request.getRequestURI(); 53 | 54 | 55 | Client client = (Client) session.getAttribute(ClientLoginServlet.LOGIN_CLIENT); 56 | 57 | if (client == null) { 58 | 59 | System.out.println("ClientLoginFilter:来访者未登录,被拦截:" + path); 60 | 61 | // 未登录 62 | // 重定向到登录页面 63 | java.io.PrintWriter writer = response.getWriter(); 64 | 65 | writer.println(""); 68 | writer.close(); 69 | return; 70 | } 71 | 72 | // 过滤器链 73 | chain.doFilter(req, res); 74 | 75 | } 76 | 77 | /** 78 | * @see Filter#init(FilterConfig) 79 | */ 80 | public void init(FilterConfig fConfig) throws ServletException { 81 | // TODO Auto-generated method stub 82 | } 83 | 84 | } 85 | -------------------------------------------------------------------------------- /src/utils/filter/DoctorLoginFilter.java: -------------------------------------------------------------------------------- 1 | package utils.filter; 2 | 3 | import java.io.IOException; 4 | import javax.servlet.Filter; 5 | import javax.servlet.FilterChain; 6 | import javax.servlet.FilterConfig; 7 | import javax.servlet.ServletException; 8 | import javax.servlet.ServletRequest; 9 | import javax.servlet.ServletResponse; 10 | import javax.servlet.http.HttpServletRequest; 11 | import javax.servlet.http.HttpServletResponse; 12 | import javax.servlet.http.HttpSession; 13 | 14 | import bean.Admin; 15 | import bean.Doctor; 16 | import servlet.admin.AdminLoginServlet; 17 | import servlet.doctor.DoctorLoginServlet; 18 | 19 | /** 20 | * @author h w j 21 | * @instruction 22 | * 咨询师登录过滤器 23 | */ 24 | public class DoctorLoginFilter implements Filter { 25 | 26 | /** 27 | * Default constructor. 28 | */ 29 | public DoctorLoginFilter() { 30 | // TODO Auto-generated constructor stub 31 | } 32 | 33 | /** 34 | * @see Filter#destroy() 35 | */ 36 | public void destroy() { 37 | // TODO Auto-generated method stub 38 | } 39 | 40 | /** 41 | * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) 42 | */ 43 | public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 44 | throws IOException, ServletException { 45 | 46 | HttpServletRequest request = (HttpServletRequest) req; 47 | 48 | HttpServletResponse response = (HttpServletResponse) res; 49 | 50 | HttpSession session = request.getSession(); 51 | 52 | String path = request.getRequestURI(); 53 | 54 | 55 | Doctor doctor = (Doctor) session.getAttribute(DoctorLoginServlet.LOGIN_DOCTOR); 56 | 57 | if (doctor == null) { 58 | 59 | System.out.println("DoctorLoginFilter:咨询师未登录,被拦截:" + path); 60 | 61 | // 未登录 62 | // 重定向到登录页面 63 | java.io.PrintWriter writer = response.getWriter(); 64 | 65 | writer.println(""); 68 | writer.close(); 69 | return; 70 | } 71 | 72 | // 过滤器链 73 | chain.doFilter(req, res); 74 | 75 | } 76 | 77 | /** 78 | * @see Filter#init(FilterConfig) 79 | */ 80 | public void init(FilterConfig fConfig) throws ServletException { 81 | // TODO Auto-generated method stub 82 | } 83 | 84 | } 85 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/cors/postmessage.html: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | 16 | 17 | jQuery File Upload Plugin postMessage API 18 | 19 | 20 | 21 | 74 | 75 | -------------------------------------------------------------------------------- /src/servlet/client/ClientLoginServlet.java: -------------------------------------------------------------------------------- 1 | package servlet.client; 2 | 3 | import java.io.IOException; 4 | import javax.servlet.ServletException; 5 | import javax.servlet.http.HttpServlet; 6 | import javax.servlet.http.HttpServletRequest; 7 | import javax.servlet.http.HttpServletResponse; 8 | 9 | import bean.Admin; 10 | import bean.Client; 11 | import model.service.ClientService; 12 | 13 | /** 14 | * @author h w j 15 | * @instruction 16 | * 来访者登录,登出控制器 17 | */ 18 | public class ClientLoginServlet extends HttpServlet { 19 | private static final long serialVersionUID = 1L; 20 | 21 | /** 22 | * 当前登录的来访者 23 | */ 24 | public final static String LOGIN_CLIENT = "LOGIN_CLIENT"; 25 | 26 | ClientService clientService = new ClientService(); 27 | 28 | /** 29 | * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response) 30 | */ 31 | protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 32 | 33 | String m = request.getParameter("m"); 34 | 35 | if ("saveLogin".equals(m)) { 36 | 37 | String clientName = request.getParameter("clientName"); 38 | 39 | String clientPwd = request.getParameter("clientPwd"); 40 | 41 | // 向数据库查询来访者 42 | Client client = clientService.getClient(clientName); 43 | 44 | if (client == null || !(client.getClientPwd().equals(clientPwd))) { 45 | 46 | // 登录失败 47 | 48 | request.setAttribute("msg", "用户名或密码错误!"); 49 | 50 | 51 | request.getRequestDispatcher("/client/login.jsp").forward(request, response); 52 | 53 | }else if(client.getIsActive() == 0) { 54 | 55 | request.setAttribute("msg", "当前账户不可用!"); 56 | 57 | request.getRequestDispatcher("/client/login.jsp").forward(request, response); 58 | } 59 | else { 60 | 61 | // 登录成功 62 | 63 | request.getSession().setAttribute(LOGIN_CLIENT, client); 64 | 65 | response.sendRedirect(request.getContextPath() + "/client/index.jsp"); 66 | 67 | } 68 | 69 | }else if("logOutClient".equals(m)){ 70 | 71 | request.getSession().removeAttribute(LOGIN_CLIENT); 72 | 73 | request.getRequestDispatcher("/client/login.jsp").forward(request, response); 74 | 75 | }else { 76 | 77 | request.getRequestDispatcher("/client/login.jsp").forward(request, response); 78 | } 79 | 80 | } 81 | 82 | } 83 | -------------------------------------------------------------------------------- /WebContent/mutualResource/js/html5.js: -------------------------------------------------------------------------------- 1 | /* 2 | HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); 5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; 6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| 7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f); 8 | if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d=1.6", 51 | "blueimp-tmpl": ">=2.5.3", 52 | "blueimp-load-image": ">=1.11.0", 53 | "blueimp-canvas-to-blob": ">=2.1.0" 54 | }, 55 | "main": [ 56 | "css/jquery.fileupload.css", 57 | "css/jquery.fileupload-ui.css", 58 | "css/jquery.fileupload-noscript.css", 59 | "css/jquery.fileupload-ui-noscript.css", 60 | "js/cors/jquery.postmessage-transport.js", 61 | "js/cors/jquery.xdr-transport.js", 62 | "js/vendor/jquery.ui.widget.js", 63 | "js/jquery.fileupload.js", 64 | "js/jquery.fileupload-process.js", 65 | "js/jquery.fileupload-validate.js", 66 | "js/jquery.fileupload-image.js", 67 | "js/jquery.fileupload-audio.js", 68 | "js/jquery.fileupload-video.js", 69 | "js/jquery.fileupload-ui.js", 70 | "js/jquery.fileupload-jquery-ui.js", 71 | "js/jquery.fileupload-angular.js", 72 | "js/jquery.iframe-transport.js" 73 | ], 74 | "ignore": [ 75 | "/*.*", 76 | "/cors", 77 | "css/demo-ie8.css", 78 | "css/demo.css", 79 | "css/style.css", 80 | "js/app.js", 81 | "js/main.js", 82 | "server", 83 | "test" 84 | ] 85 | } 86 | -------------------------------------------------------------------------------- /src/servlet/client/ClientServlet.java: -------------------------------------------------------------------------------- 1 | package servlet.client; 2 | 3 | import java.io.IOException; 4 | import java.util.HashMap; 5 | import java.util.List; 6 | import java.util.Map; 7 | 8 | import javax.servlet.ServletException; 9 | import javax.servlet.http.HttpServlet; 10 | import javax.servlet.http.HttpServletRequest; 11 | import javax.servlet.http.HttpServletResponse; 12 | 13 | import bean.Client; 14 | import bean.Doctor; 15 | import model.service.ClientService; 16 | 17 | /** 18 | * @author h w j 19 | * @instruction 20 | * 管理员端,管理来访者控制器 21 | */ 22 | public class ClientServlet extends HttpServlet { 23 | private static final long serialVersionUID = 1L; 24 | 25 | ClientService clientService = new ClientService(); 26 | 27 | /** 28 | * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse 29 | * response) 30 | */ 31 | protected void service(HttpServletRequest request, HttpServletResponse response) 32 | throws ServletException, IOException { 33 | 34 | String m = request.getParameter("m"); 35 | 36 | if ("listClient".equals(m)) { 37 | 38 | // 接受查询条件 39 | String name = request.getParameter("name"); 40 | String sex = request.getParameter("sex"); 41 | String startAge = request.getParameter("startAge"); 42 | String endAge = request.getParameter("endAge"); 43 | String phone = request.getParameter("phone"); 44 | String email = request.getParameter("email"); 45 | String startRegionTime = request.getParameter("startRegionTime"); 46 | String endRegionTime = request.getParameter("endRegionTime"); 47 | 48 | // 将条件封装到search中 49 | Map search = new HashMap(); 50 | search.put("name", name); 51 | search.put("startAge", startAge); 52 | search.put("endAge", endAge); 53 | search.put("phone", phone); 54 | search.put("email", email); 55 | search.put("sex", sex); 56 | search.put("startRegionTime", startRegionTime); 57 | search.put("endRegionTime", endRegionTime); 58 | 59 | 60 | 61 | // 查询符合条件的来访者 62 | List list = clientService .listSearch(search); 63 | 64 | request.setAttribute("search", search); 65 | 66 | request.setAttribute("clientList", list); 67 | 68 | request.getRequestDispatcher("/admin/clientList.jsp").forward(request, response); 69 | 70 | }else if("updateActive".equals(m)){ 71 | 72 | //停用和启用切换 73 | 74 | String clientId = request.getParameter("id"); 75 | 76 | String action = request.getParameter("action"); 77 | 78 | clientService.toggleClientActive(Integer.parseInt(clientId),Integer.parseInt(action),response); 79 | 80 | 81 | } 82 | 83 | } 84 | 85 | } 86 | -------------------------------------------------------------------------------- /src/bean/Admin.java: -------------------------------------------------------------------------------- 1 | package bean; 2 | 3 | /** 4 | * @author h w j 5 | * @instruction 6 | * 管理员admin表,对应的实体类 7 | * 8 | */ 9 | public class Admin { 10 | 11 | /** 12 | * 管理员id 13 | */ 14 | private Integer adminId; 15 | 16 | /** 17 | * 登录账户 18 | */ 19 | private String adminName; 20 | 21 | /** 22 | * 登录密码 23 | */ 24 | private String adminPwd; 25 | 26 | 27 | /** 28 | * 用户姓名 29 | */ 30 | private String name; 31 | 32 | /** 33 | * 性别 34 | */ 35 | private Integer sex; 36 | 37 | /** 38 | * 年龄 39 | */ 40 | private Integer age; 41 | 42 | /** 43 | * 电话 44 | */ 45 | private String phone; 46 | 47 | /** 48 | * 电子邮件 49 | */ 50 | private String email; 51 | 52 | 53 | /** 54 | * 账户是否激活 55 | */ 56 | private Integer is_active; 57 | 58 | public Integer getAdminId() { 59 | return adminId; 60 | } 61 | 62 | public void setAdminId(Integer adminId) { 63 | this.adminId = adminId; 64 | } 65 | 66 | public String getAdminName() { 67 | return adminName; 68 | } 69 | 70 | public void setAdminName(String adminName) { 71 | this.adminName = adminName; 72 | } 73 | 74 | public String getAdminPwd() { 75 | return adminPwd; 76 | } 77 | 78 | public void setAdminPwd(String adminPwd) { 79 | this.adminPwd = adminPwd; 80 | } 81 | 82 | public String getName() { 83 | return name; 84 | } 85 | 86 | public void setName(String name) { 87 | this.name = name; 88 | } 89 | 90 | public Integer getSex() { 91 | return sex; 92 | } 93 | 94 | public void setSex(Integer sex) { 95 | this.sex = sex; 96 | } 97 | 98 | public Integer getAge() { 99 | return age; 100 | } 101 | 102 | public void setAge(Integer age) { 103 | this.age = age; 104 | } 105 | 106 | public String getPhone() { 107 | return phone; 108 | } 109 | 110 | public void setPhone(String phone) { 111 | this.phone = phone; 112 | } 113 | 114 | public String getEmail() { 115 | return email; 116 | } 117 | 118 | public void setEmail(String email) { 119 | this.email = email; 120 | } 121 | 122 | public Integer getIs_active() { 123 | return is_active; 124 | } 125 | 126 | public void setIs_active(Integer is_active) { 127 | this.is_active = is_active; 128 | } 129 | 130 | @Override 131 | public String toString() { 132 | return "Admin [adminId=" + adminId + ", adminName=" + adminName + ", adminPwd=" + adminPwd + ", name=" + name 133 | + ", sex=" + sex + ", age=" + age + ", phone=" + phone + ", email=" + email + ", is_active=" + is_active 134 | + "]"; 135 | } 136 | 137 | 138 | } 139 | -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Issue Guidelines 2 | 3 | The issues tracker should only be used for **bugs** or **feature requests**. 4 | 5 | Please post **support requests** and **general discussions** about this project to the [support forum](https://groups.google.com/d/forum/jquery-fileupload). 6 | 7 | ## Bugs 8 | 9 | Please follow these guidelines before reporting a bug: 10 | 11 | 1. **Update to the latest version** — Check if you can reproduce the issue with the latest version from the `master` branch. 12 | 13 | 2. **Use the GitHub issue search** — check if the issue has already been reported. If it has been, please comment on the existing issue. 14 | 15 | 3. **Isolate the demonstrable problem** — Try to reproduce the problem with the [Demo](https://blueimp.github.io/jQuery-File-Upload/) or with a reduced test case that includes the least amount of code necessary to reproduce the problem. 16 | 17 | 4. **Provide a means to reproduce the problem** — Please provide as much details as possible, e.g. server information, browser and operating system versions, steps to reproduce the problem. If possible, provide a link to your reduced test case, e.g. via [JSFiddle](http://jsfiddle.net/). 18 | 19 | 20 | ## Feature requests 21 | 22 | Please follow the bug guidelines above for feature requests, i.e. update to the latest version and search for exising issues before posting a new request. 23 | 24 | Generally, feature requests might be accepted if the implementation would benefit a broader use case or the project could be considered incomplete without that feature. 25 | 26 | If you need help integrating this project into another framework, please post your request to the [support forum](https://groups.google.com/d/forum/jquery-fileupload). 27 | 28 | ## Pull requests 29 | 30 | [Pull requests](https://help.github.com/articles/using-pull-requests) are welcome and the preferred way of accepting code contributions. 31 | 32 | However, if you add a server-side upload handler implementation for another framework, please continue to maintain this version in your own fork without sending a pull request. You are welcome to add a link and possibly documentation about your implementation to the [Wiki](https://github.com/blueimp/jQuery-File-Upload/wiki). 33 | 34 | Please follow these guidelines before sending a pull request: 35 | 36 | 1. Update your fork to the latest upstream version. 37 | 38 | 2. Follow the coding conventions of the original repository. Changes to one of the JavaScript source files are required to pass the [JSHint](http://www.jshint.com/) validation tool. 39 | 40 | 3. Keep your commits as atomar as possible, i.e. create a new commit for every single bug fix or feature added. 41 | 42 | 4. Always add meaningfull commit messages. 43 | -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/css/jquery-ui-1.10.3.custom.min.css: -------------------------------------------------------------------------------- 1 | /*! jQuery UI - v1.10.3 - 2013-07-07 2 | * http://jqueryui.com 3 | * Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css 4 | * Copyright 2013 jQuery Foundation and other contributors Licensed MIT */ 5 | 6 | .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0} -------------------------------------------------------------------------------- /WebContent/plunge/jQuery-File-Upload/js/main.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery File Upload Plugin JS Example 8.9.1 3 | * https://github.com/blueimp/jQuery-File-Upload 4 | * 5 | * Copyright 2010, Sebastian Tschan 6 | * https://blueimp.net 7 | * 8 | * Licensed under the MIT license: 9 | * http://www.opensource.org/licenses/MIT 10 | */ 11 | 12 | /* global $, window */ 13 | 14 | $(function () { 15 | 'use strict'; 16 | 17 | // Initialize the jQuery File Upload widget: 18 | $('#fileupload').fileupload({ 19 | // Uncomment the following to send cross-domain cookies: 20 | //xhrFields: {withCredentials: true}, 21 | url: 'server/php/' 22 | }); 23 | 24 | // Enable iframe cross-domain access via redirect option: 25 | $('#fileupload').fileupload( 26 | 'option', 27 | 'redirect', 28 | window.location.href.replace( 29 | /\/[^\/]*$/, 30 | '/cors/result.html?%s' 31 | ) 32 | ); 33 | 34 | if (window.location.hostname === 'blueimp.github.io') { 35 | // Demo settings: 36 | $('#fileupload').fileupload('option', { 37 | url: '//jquery-file-upload.appspot.com/', 38 | // Enable image resizing, except for Android and Opera, 39 | // which actually support image resizing, but fail to 40 | // send Blob objects via XHR requests: 41 | disableImageResize: /Android(?!.*Chrome)|Opera/ 42 | .test(window.navigator.userAgent), 43 | maxFileSize: 5000000, 44 | acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i 45 | }); 46 | // Upload server status check for browsers with CORS support: 47 | if ($.support.cors) { 48 | $.ajax({ 49 | url: '//jquery-file-upload.appspot.com/', 50 | type: 'HEAD' 51 | }).fail(function () { 52 | $('
') 53 | .text('Upload server currently unavailable - ' + 54 | new Date()) 55 | .appendTo('#fileupload'); 56 | }); 57 | } 58 | } else { 59 | // Load existing files: 60 | $('#fileupload').addClass('fileupload-processing'); 61 | $.ajax({ 62 | // Uncomment the following to send cross-domain cookies: 63 | //xhrFields: {withCredentials: true}, 64 | url: $('#fileupload').fileupload('option', 'url'), 65 | dataType: 'json', 66 | context: $('#fileupload')[0] 67 | }).always(function () { 68 | $(this).removeClass('fileupload-processing'); 69 | }).done(function (result) { 70 | $(this).fileupload('option', 'done') 71 | .call(this, $.Event('done'), {result: result}); 72 | }); 73 | } 74 | 75 | }); 76 | -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/layer/skin/layer.ext.css: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | @Name: layer拓展样式 4 | @Date: 2012.12.13 5 | @Author: 贤心 6 | @blog: sentsin.com 7 | 8 | */.layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span{text-overflow:ellipsis;white-space:nowrap}.layui-layer-iconext{background:url(default/icon-ext.png) no-repeat}html #layui_layer_skinlayerextcss{display:none;position:absolute;width:1989px}.layui-layer-prompt .layui-layer-input{display:block;width:220px;height:30px;margin:0 auto;line-height:30px;padding:0 5px;border:1px solid #ccc;box-shadow:1px 1px 5px rgba(0,0,0,.1) inset;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;border-bottom:1px solid #ccc;background-color:#eee;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;cursor:default;overflow:hidden}.layui-layer-tab .layui-layer-title span.layui-layer-tabnow{height:43px;border-left:1px solid #ccc;border-right:1px solid #ccc;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.xubox_tab_layer{display:block}.xubox_tabclose{position:absolute;right:10px;top:5px;cursor:pointer}.layui-layer-photos{-webkit-animation-duration:1s;animation-duration:1s}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgbar,.layui-layer-imguide{display:none}.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal} -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/js/fuelux/fuelux.wizard.min.js: -------------------------------------------------------------------------------- 1 | (function(b,c){var a=function(f,e){var d;this.$element=b(f);this.options=b.extend({},b.fn.wizard.defaults,e);this.currentStep=1;this.numSteps=this.$element.find("li").length;this.$prevBtn=this.$element.find("button.btn-prev");this.$nextBtn=this.$element.find("button.btn-next");d=this.$nextBtn.children().detach();this.nextText=b.trim(this.$nextBtn.text());this.$nextBtn.append(d);this.$prevBtn.on("click",b.proxy(this.previous,this));this.$nextBtn.on("click",b.proxy(this.next,this));this.$element.on("click","li.complete",b.proxy(this.stepclicked,this));this.$stepContainer=this.$element.data("target")||"body";this.$stepContainer=b(this.$stepContainer)};a.prototype={constructor:a,setState:function(){var n=(this.currentStep>1);var o=(this.currentStep===1);var d=(this.currentStep===this.numSteps);this.$prevBtn.attr("disabled",(o===true||n===false));var h=this.$nextBtn.data();if(h&&h.last){this.lastText=h.last;if(typeof this.lastText!=="undefined"){var l=(d!==true)?this.nextText:this.lastText;var f=this.$nextBtn.children().detach();this.$nextBtn.text(l).append(f)}}var j=this.$element.find("li");j.removeClass("active").removeClass("complete");j.find("span.badge").removeClass("badge-info").removeClass("badge-success");var m="li:lt("+(this.currentStep-1)+")";var g=this.$element.find(m);g.addClass("complete");g.find("span.badge").addClass("badge-success");var e="li:eq("+(this.currentStep-1)+")";var k=this.$element.find(e);k.addClass("active");k.find("span.badge").addClass("badge-info");var i=k.data().target;this.$stepContainer.find(".step-pane").removeClass("active");b(i).addClass("active");this.$element.trigger("changed")},stepclicked:function(h){var d=b(h.currentTarget);var g=this.$element.find("li").index(d);var f=b.Event("stepclick");this.$element.trigger(f,{step:g+1});if(f.isDefaultPrevented()){return}this.currentStep=(g+1);this.setState()},previous:function(){var d=(this.currentStep>1);if(d){var f=b.Event("change");this.$element.trigger(f,{step:this.currentStep,direction:"previous"});if(f.isDefaultPrevented()){return}this.currentStep-=1;this.setState()}},next:function(){var g=(this.currentStep+1<=this.numSteps);var d=(this.currentStep===this.numSteps);if(g){var f=b.Event("change");this.$element.trigger(f,{step:this.currentStep,direction:"next"});if(f.isDefaultPrevented()){return}this.currentStep+=1;this.setState()}else{if(d){this.$element.trigger("finished")}}},selectedItem:function(d){return{step:this.currentStep}}};b.fn.wizard=function(e,g){var f;var d=this.each(function(){var j=b(this);var i=j.data("wizard");var h=typeof e==="object"&&e;if(!i){j.data("wizard",(i=new a(this,h)))}if(typeof e==="string"){f=i[e](g)}});return(f===c)?d:f};b.fn.wizard.defaults={};b.fn.wizard.Constructor=a;b(function(){b("body").on("mousedown.wizard.data-api",".wizard",function(){var d=b(this);if(d.data("wizard")){return}d.wizard(d.data())})})})(window.jQuery); -------------------------------------------------------------------------------- /src/bean/Client.java: -------------------------------------------------------------------------------- 1 | package bean; 2 | 3 | import java.util.Date; 4 | 5 | /** 6 | * @author h w j 7 | * @instruction 8 | * 来访者client表,对应的实体类 9 | * 10 | */ 11 | public class Client { 12 | 13 | private Integer clientId; 14 | 15 | /** 16 | * 登录账户 17 | */ 18 | private String clientName; 19 | 20 | /** 21 | * 登录密码 22 | */ 23 | private String clientPwd; 24 | 25 | 26 | /** 27 | * 用户姓名 28 | */ 29 | private String name; 30 | 31 | 32 | private Integer sex; 33 | 34 | private Integer age; 35 | 36 | private String phone; 37 | 38 | private String email; 39 | 40 | private Integer isActive; 41 | 42 | /** 43 | * 注册时间 44 | */ 45 | private Date regionTime; 46 | 47 | public Integer getClientId() { 48 | return clientId; 49 | } 50 | 51 | public void setClientId(Integer clientId) { 52 | this.clientId = clientId; 53 | } 54 | 55 | public String getClientName() { 56 | return clientName; 57 | } 58 | 59 | public void setClientName(String clientName) { 60 | this.clientName = clientName; 61 | } 62 | 63 | public String getClientPwd() { 64 | return clientPwd; 65 | } 66 | 67 | public void setClientPwd(String clientPwd) { 68 | this.clientPwd = clientPwd; 69 | } 70 | 71 | public String getName() { 72 | return name; 73 | } 74 | 75 | public void setName(String name) { 76 | this.name = name; 77 | } 78 | 79 | public Integer getSex() { 80 | return sex; 81 | } 82 | 83 | public void setSex(Integer sex) { 84 | this.sex = sex; 85 | } 86 | 87 | public Integer getAge() { 88 | return age; 89 | } 90 | 91 | public void setAge(Integer age) { 92 | this.age = age; 93 | } 94 | 95 | public String getPhone() { 96 | return phone; 97 | } 98 | 99 | public void setPhone(String phone) { 100 | this.phone = phone; 101 | } 102 | 103 | public String getEmail() { 104 | return email; 105 | } 106 | 107 | public void setEmail(String email) { 108 | this.email = email; 109 | } 110 | 111 | public Integer getIsActive() { 112 | return isActive; 113 | } 114 | 115 | public void setIsActive(Integer isActive) { 116 | this.isActive = isActive; 117 | } 118 | 119 | public Date getRegionTime() { 120 | return regionTime; 121 | } 122 | 123 | public void setRegionTime(Date regionTime) { 124 | this.regionTime = regionTime; 125 | } 126 | 127 | @Override 128 | public String toString() { 129 | return "Client [clientId=" + clientId + ", clientName=" + clientName + ", clientPwd=" + clientPwd + ", name=" 130 | + name + ", sex=" + sex + ", age=" + age + ", phone=" + phone + ", email=" + email + ", isActive=" 131 | + isActive + ", regionTime=" + regionTime + "]"; 132 | } 133 | 134 | 135 | } 136 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 心理咨询预约管理系统 2 | 3 | 4 | 5 | 个人毕业设计用的一个玩具项目,无框架。 6 | 7 | MVC模式,普通Servlet控制器,jsp视图,前台Bootstrap 8 | 9 | 工具版本:mysql5.7,JDK1.8,Tomcat8.5 10 | 11 | ## 主要功能模块 12 | 13 | 分为三个端:管理员、来访者(需要预约的人),咨询师 14 | 15 | **管理员**端 16 | 17 | * 首页 18 | 19 | 系统近况(咨询师和注册来访者数量,预约数量) 20 | 显示最新的消息、留言和公告(最新十条) 21 | 22 | * 主要功能 23 | 24 | 咨询师管理(添加、修改、删除,账号激活停用) 25 | 26 | 来访者管理(账号激活停用) 27 | 28 | 预约问卷管理(添加、修改、删除) 29 | 30 | * 公共和个人信息模块 31 | 32 | 消息、公告和留言管理(发送接受消息,发布公告,控制留言显示和隐藏) 33 | 34 | 个人信息管理(修改基本信息和密码) 35 | 36 | **咨询师端** 37 | 38 | - 首页 39 | 显示最新的消息、留言和公告(最新十条) 40 | 41 | - 主要功能 42 | 43 | 查看预约详情,安排咨询申请(安排咨询时间或驳回) 44 | 45 | 咨询完毕建立咨询档案 46 | 47 | 查看所有咨询历史 48 | 49 | - 公共和个人信息模块 50 | 51 | 消息、公告和留言管理(发送接受消息,查看公告,留言) 52 | 53 | 个人信息管理(修改基本信息和密码) 54 | 55 | **来访者端** 56 | 57 | - 首页 58 | 显示最新的消息、留言和公告(最新十条) 59 | 60 | - 主要功能 61 | 62 | 发起预约申请,等待安排 63 | 64 | 在我的及时了解预约状态(待安排、准备咨询、被取消) 65 | 66 | 查看所有咨询历史 67 | 68 | - 公共和个人信息模块 69 | 70 | 消息、公告和留言管理(发送接受消息,查看公告,留言) 71 | 72 | 个人信息管理(修改基本信息和密码) 73 | 74 | 预约状态变动时邮件和站内消息通知来访者 75 | 76 | 77 | 78 | **其他** 79 | 80 | 来访者注册 81 | 82 | 管理员、咨询师和来访者登录 83 | 84 | 85 | 86 | **预约流程** 87 | 88 | 1. 来访者申请预约 89 | 90 | *来访者向某位咨询师申请预约,并填写预约申请表(期望时间地点和评估问卷)* 91 | 92 | 2. 咨询师安排咨询 93 | *处理咨询申请,通过申请安排咨询,取消咨询* 94 | 95 | 3. 咨询档案 96 | *咨询完成,咨询师上传咨询档案;每次咨询都会记录(可在我的咨询中查看)* 97 | 98 | 4. 来访者评价 99 | *咨询完成,来访者对本次咨询进行评价* 100 | 101 | 102 | 103 | 104 | 105 | ## 项目工程文件 106 | 107 | **src** 108 | 109 | bean是数据库表对应实体类 110 | 111 | model包下分别是dao层和service层 112 | 113 | servlet下的是公共模块部分,admin,client,doctor分别是三个端对应的控制器 114 | 115 | test是测试包,无用 116 | 117 | utils.filter过滤器,登录过滤,字符过滤等等 118 | 119 | utils.jdbc数据库工具类,配置和得到连接池的连接 120 | 121 | utils.mail是邮件模块 122 | 123 | utils下的ConfigProperties是读入配置文件,ResultDate和UploadResult分别是请求响应结果和文件上传结果对象,Util封装了常用的工具 124 | 125 | config.properties 配置参数,配置邮件发送,文件上传大小类型限制等 126 | 127 | pool.properties 是连接池配置文件 128 | 129 | **WebContext** 130 | 131 | amidn,client,doctor分别是三个端对应的页面 132 | 133 | plunge是用到的插件 134 | 135 | mutualResource 是js,css样式模版目录 136 | 137 | 138 | 139 | **mind_sub.sql是数据库表脚本** 140 | 141 | 数据库名:mind_sub 142 | 143 | 144 | 145 | ## 运行项目 146 | 147 | * 新建数据库mind_sub,运行脚本mind_sub.sql 148 | 149 | * 修改pool.properties中的username和password 150 | 151 | * 修改config.properties中的邮件服务器为你自己的 152 | 153 | HostName ,AuthenticationEmail,AuthenticationPwd 154 | 155 | (我这里用的qq的) 156 | 157 | 修改upload_path路径 158 | 159 | * 在要部署的Tomcat中修改它的server.xml,在Host标签下 160 | 161 | 增加一行 `` 162 | 163 | 这是文件和图片上传存放的位置 164 | 165 | **注意要与你config.properties中upload_path路径一致** 166 | 167 | 168 | 169 | 然后把项目部署到Tomcat运行即可 -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/js/fuelux/fuelux.spinner.min.js: -------------------------------------------------------------------------------- 1 | (function(b,c){var a=function(e,d){this.$element=b(e);this.options=b.extend({},b.fn.spinner.defaults,d);this.$input=this.$element.find(".spinner-input");this.$element.on("keyup",this.$input,b.proxy(this.change,this));if(this.options.hold){this.$element.on("mousedown",".spinner-up",b.proxy(function(){this.startSpin(true)},this));this.$element.on("mouseup",".spinner-up, .spinner-down",b.proxy(this.stopSpin,this));this.$element.on("mouseout",".spinner-up, .spinner-down",b.proxy(this.stopSpin,this));this.$element.on("mousedown",".spinner-down",b.proxy(function(){this.startSpin(false)},this))}else{this.$element.on("click",".spinner-up",b.proxy(function(){this.step(true)},this));this.$element.on("click",".spinner-down",b.proxy(function(){this.step(false)},this))}this.switches={count:1,enabled:true};if(this.options.speed==="medium"){this.switches.speed=300}else{if(this.options.speed==="fast"){this.switches.speed=100}else{this.switches.speed=500}}this.lastValue=null;this.render();if(this.options.disabled){this.disable()}};a.prototype={constructor:a,render:function(){this.$input.val(this.options.value);this.$input.attr("maxlength",(this.options.max+"").split("").length)},change:function(){var d=this.$input.val();if(d/1){this.options.value=d/1}else{d=d.replace(/[^0-9]/g,"");this.$input.val(d);this.options.value=d/1}this.triggerChangedEvent()},stopSpin:function(){clearTimeout(this.switches.timeout);this.switches.count=1;this.triggerChangedEvent()},triggerChangedEvent:function(){var d=this.value();if(d===this.lastValue){return}this.lastValue=d;this.$element.trigger("changed",d);this.$element.trigger("change")},startSpin:function(d){if(!this.options.disabled){var e=this.switches.count;if(e===1){this.step(d);e=1}else{if(e<3){e=1.5}else{if(e<8){e=2.5}else{e=4}}}this.switches.timeout=setTimeout(b.proxy(function(){this.iterator(d)},this),this.switches.speed/e);this.switches.count++}},iterator:function(d){this.step(d);this.startSpin(d)},step:function(e){var g=this.options.value;var f=e?this.options.max:this.options.min;if((e?gf)){var d=g+(e?1:-1)*this.options.step;if(e?d>f:d',n=["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","textTransform","wordSpacing","textIndent"],s=e(i).data("autosize",!0)[0];s.style.lineHeight="99px","99px"===e(s).css("lineHeight")&&n.push("lineHeight"),s.style.lineHeight="",e.fn.autosize=function(i){return i=e.extend({},o,i||{}),s.parentNode!==document.body&&e(document.body).append(s),this.each(function(){function o(){var t,o;"getComputedStyle"in window?(t=window.getComputedStyle(h),o=h.getBoundingClientRect().width,e.each(["paddingLeft","paddingRight","borderLeftWidth","borderRightWidth"],function(e,i){o-=parseInt(t[i],10)}),s.style.width=o+"px"):s.style.width=Math.max(p.width(),0)+"px"}function a(){var a={};if(t=h,s.className=i.className,d=parseInt(p.css("maxHeight"),10),e.each(n,function(e,t){a[t]=p.css(t)}),e(s).css(a),o(),window.chrome){var r=h.style.width;h.style.width="0px",h.offsetWidth,h.style.width=r}}function r(){var e,n;t!==h?a():o(),s.value=h.value+i.append,s.style.overflowY=h.style.overflowY,n=parseInt(h.style.height,10),s.scrollTop=0,s.scrollTop=9e4,e=s.scrollTop,d&&e>d?(h.style.overflowY="scroll",e=d):(h.style.overflowY="hidden",c>e&&(e=c)),e+=f,n!==e&&(h.style.height=e+"px",w&&i.callback.call(h,h))}function l(){clearTimeout(u),u=setTimeout(function(){var e=p.width();e!==y&&(y=e,r())},parseInt(i.resizeDelay,10))}var d,c,u,h=this,p=e(h),f=0,w=e.isFunction(i.callback),z={height:h.style.height,overflow:h.style.overflow,overflowY:h.style.overflowY,wordWrap:h.style.wordWrap,resize:h.style.resize},y=p.width();p.data("autosize")||(p.data("autosize",!0),("border-box"===p.css("box-sizing")||"border-box"===p.css("-moz-box-sizing")||"border-box"===p.css("-webkit-box-sizing"))&&(f=p.outerHeight()-p.height()),c=Math.max(parseInt(p.css("minHeight"),10)-f||0,p.height()),p.css({overflow:"hidden",overflowY:"hidden",wordWrap:"break-word",resize:"none"===p.css("resize")||"vertical"===p.css("resize")?"none":"horizontal"}),"onpropertychange"in h?"oninput"in h?p.on("input.autosize keyup.autosize",r):p.on("propertychange.autosize",function(){"value"===event.propertyName&&r()}):p.on("input.autosize",r),i.resizeDelay!==!1&&e(window).on("resize.autosize",l),p.on("autosize.resize",r),p.on("autosize.resizeIncludeStyle",function(){t=null,r()}),p.on("autosize.destroy",function(){t=null,clearTimeout(u),e(window).off("resize",l),p.off("autosize").off(".autosize").css(z).removeData("autosize")}),r())})}}); -------------------------------------------------------------------------------- /src/model/service/MessageBoardService.java: -------------------------------------------------------------------------------- 1 | package model.service; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | import java.util.Map; 6 | 7 | import javax.servlet.http.HttpServletResponse; 8 | 9 | import bean.MessageBoard; 10 | import model.dao.MessageBoardDao; 11 | import utils.ResultDate; 12 | import utils.Util; 13 | 14 | /** 15 | * @author h w j 16 | * @instruction 17 | * 留言板Service 18 | */ 19 | public class MessageBoardService { 20 | 21 | MessageBoardDao messageBoardDao = new MessageBoardDao(); 22 | 23 | /** 24 | * 查询符合条件的留言 25 | * 26 | * @param search 查询条件 27 | * @return 留言对象集合 28 | */ 29 | public List listSearch(Map search) { 30 | 31 | return messageBoardDao.listSearch(search); 32 | } 33 | 34 | /** 35 | * 切换留言的显示和隐藏,0隐藏,1显示 36 | * @param messageBoardId 留言id 37 | * @param action 要更新为的值 38 | * @param response 响应对象 39 | */ 40 | public void toggleMessageBoardActive(String messageBoardId, String action, HttpServletResponse response) { 41 | 42 | int i = messageBoardDao.toggleMessageBoardActive(messageBoardId, action); 43 | 44 | ResultDate rd = new ResultDate(); 45 | if (i == 1) { 46 | // 修改成功 47 | rd.setIsSuccess(true); 48 | rd.setMsg("修改成功"); 49 | 50 | } else { 51 | 52 | // 修改失败 53 | rd.setIsSuccess(false); 54 | rd.setMsg("失败,请刷新页面后重试"); 55 | 56 | } 57 | 58 | // 响应,JSON格式数据 59 | Util.responseJson(rd, response); 60 | 61 | } 62 | 63 | /** 64 | * 根据留言的id查询,并且给出响应 65 | * 66 | * @param messageBoardId 留言id 67 | * @param response响应对象 68 | */ 69 | public void getMessageBoardToResponse(int messageBoardId, HttpServletResponse response) { 70 | MessageBoard messageBoard = messageBoardDao.getMessageBoard(messageBoardId); 71 | 72 | ResultDate rd = new ResultDate(); 73 | if (messageBoard != null) { 74 | // 成功 75 | rd.setIsSuccess(true); 76 | rd.setMsg("查询成功"); 77 | rd.getDataList().add(messageBoard); 78 | 79 | } else { 80 | 81 | // 查询失败 82 | rd.setIsSuccess(false); 83 | rd.setMsg("失败,请刷新页面后重试"); 84 | 85 | } 86 | 87 | // 响应,JSON格式数据 88 | Util.responseJson(rd, response); 89 | 90 | } 91 | 92 | /** 93 | * 增加一条留言 94 | * @param messageBoard 封装好的留言对象 95 | * @param response 响应对象 96 | */ 97 | public void addMessageBoard(MessageBoard messageBoard, HttpServletResponse response) { 98 | 99 | int i = messageBoardDao.addMessageBoard(messageBoard); 100 | 101 | ResultDate rd = new ResultDate(); 102 | if (i == 1) { 103 | // 留言成功 104 | rd.setIsSuccess(true); 105 | rd.setMsg("留言成功"); 106 | 107 | } else { 108 | 109 | // 修改失败 110 | rd.setIsSuccess(false); 111 | rd.setMsg("失败,请刷新页面后重试"); 112 | 113 | } 114 | 115 | // 响应,JSON格式数据 116 | Util.responseJson(rd, response); 117 | 118 | } 119 | 120 | /** 121 | * 得到最新的num条留言 122 | * @param num 留言数量 123 | * @return 最新的num条留言对象集合 124 | */ 125 | public ArrayList getMessageBoardNum(int num) { 126 | 127 | return messageBoardDao.getMessageBoardNum(num); 128 | } 129 | 130 | } 131 | -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/js/fuelux/fuelux.tree.min.js: -------------------------------------------------------------------------------- 1 | (function(a,c){var b=function(e,d){this.$element=a(e);this.options=a.extend({},a.fn.tree.defaults,d);this.$element.on("click",".tree-item",a.proxy(function(f){this.selectItem(f.currentTarget)},this));this.$element.on("click",".tree-folder-header",a.proxy(function(f){this.selectFolder(f.currentTarget)},this));this.render()};b.prototype={constructor:b,render:function(){this.populate(this.$element)},populate:function(f){var e=this;var d=f.parent().find(".tree-loader:eq(0)");d.show();this.options.dataSource.data(f.data(),function(g){d.hide();a.each(g.data,function(h,j){var i;if(j.type==="folder"){i=e.$element.find(".tree-folder:eq(0)").clone().show();i.find(".tree-folder-name").html(j.name);i.find(".tree-loader").html(e.options.loadingHTML);var k=i.find(".tree-folder-header");k.data(j);if("icon-class" in j){k.find('[class*="icon-"]').addClass(j["icon-class"])}}else{if(j.type==="item"){i=e.$element.find(".tree-item:eq(0)").clone().show();i.find(".tree-item-name").html(j.name);i.data(j);if("additionalParameters" in j&&"item-selected" in j.additionalParameters&&j.additionalParameters["item-selected"]==true){i.addClass("tree-selected");i.find("i").removeClass(e.options["unselected-icon"]).addClass(e.options["selected-icon"])}}}if(f.hasClass("tree-folder-header")){f.parent().find(".tree-folder-content:eq(0)").append(i)}else{f.append(i)}});e.$element.trigger("loaded")})},selectItem:function(e){if(this.options.selectable==false){return}var d=a(e);var g=this.$element.find(".tree-selected");var f=[];if(this.options.multiSelect){a.each(g,function(i,j){var h=a(j);if(h[0]!==d[0]){f.push(a(j).data())}})}else{if(g[0]!==d[0]){g.removeClass("tree-selected").find("i").removeClass(this.options["selected-icon"]).addClass(this.options["unselected-icon"]);f.push(d.data())}}if(d.hasClass("tree-selected")){d.removeClass("tree-selected");d.find("i").removeClass(this.options["selected-icon"]).addClass(this.options["unselected-icon"])}else{d.addClass("tree-selected");d.find("i").removeClass(this.options["unselected-icon"]).addClass(this.options["selected-icon"]);if(this.options.multiSelect){f.push(d.data())}}if(f.length){this.$element.trigger("selected",{info:f})}},selectFolder:function(e){var d=a(e);var f=d.parent();if(d.find("."+this.options["close-icon"]).length){if(f.find(".tree-folder-content").children().length){f.find(".tree-folder-content:eq(0)").show()}else{this.populate(d)}f.find("."+this.options["close-icon"]+":eq(0)").removeClass(this.options["close-icon"]).addClass(this.options["open-icon"]);this.$element.trigger("opened",d.data())}else{if(this.options.cacheItems){f.find(".tree-folder-content:eq(0)").hide()}else{f.find(".tree-folder-content:eq(0)").empty()}f.find("."+this.options["open-icon"]+":eq(0)").removeClass(this.options["open-icon"]).addClass(this.options["close-icon"]);this.$element.trigger("closed",d.data())}},selectedItems:function(){var e=this.$element.find(".tree-selected");var d=[];a.each(e,function(f,g){d.push(a(g).data())});return d}};a.fn.tree=function(e,g){var f;var d=this.each(function(){var j=a(this);var i=j.data("tree");var h=typeof e==="object"&&e;if(!i){j.data("tree",(i=new b(this,h)))}if(typeof e==="string"){f=i[e](g)}});return(f===c)?d:f};a.fn.tree.defaults={multiSelect:false,loadingHTML:"
Loading...
",cacheItems:true};a.fn.tree.Constructor=b})(window.jQuery); -------------------------------------------------------------------------------- /src/model/service/AnnouncmentService.java: -------------------------------------------------------------------------------- 1 | package model.service; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | import java.util.Map; 6 | 7 | import javax.servlet.http.HttpServletResponse; 8 | 9 | import bean.Announcement; 10 | import bean.Doctor; 11 | import model.dao.AnnouncmentDao; 12 | import utils.ResultDate; 13 | import utils.Util; 14 | 15 | /** 16 | * @author h w j 17 | * @instruction 18 | * 公告的Service 19 | */ 20 | public class AnnouncmentService { 21 | 22 | AnnouncmentDao announcmentDao = new AnnouncmentDao(); 23 | 24 | 25 | /** 26 | * 查询符合条件的公告 27 | * 28 | * @param search 封装了查询条件的Map集合 29 | * @return 查询到的公告列表 30 | */ 31 | public List listSearch(Map search) { 32 | 33 | return announcmentDao.listSearch(search); 34 | } 35 | 36 | 37 | /** 38 | * 切换公告的显示和隐藏,0隐藏,1显示 39 | * @param announcmentId 要切换的公告id 40 | * @param action 要更新到的状态 41 | * @param response 响应对象 42 | */ 43 | public void toggleDoctorActive(String announcmentId, String action, HttpServletResponse response) { 44 | 45 | 46 | int i = announcmentDao.toggleClientActive(announcmentId, action); 47 | 48 | ResultDate rd = new ResultDate(); 49 | if (i == 1) { 50 | // 修改成功 51 | rd.setIsSuccess(true); 52 | rd.setMsg("修改成功"); 53 | 54 | } else { 55 | 56 | // 修改失败 57 | rd.setIsSuccess(false); 58 | rd.setMsg("失败,请刷新页面后重试"); 59 | 60 | } 61 | 62 | // 响应,JSON格式数据 63 | Util.responseJson(rd, response); 64 | 65 | 66 | } 67 | 68 | 69 | /** 70 | * 根据announcementId,返回一条公告,响应给客户端 71 | * @param announcementId 公告id 72 | * @param response 响应对象 73 | */ 74 | public void getAnnouncementToResponse(int announcementId, HttpServletResponse response) { 75 | Announcement announcement = announcmentDao.getAnnouncement(announcementId); 76 | 77 | ResultDate rd = new ResultDate(); 78 | if (announcement != null) { 79 | // 成功 80 | rd.setIsSuccess(true); 81 | rd.setMsg("查询成功"); 82 | rd.getDataList().add(announcement); 83 | 84 | } else { 85 | 86 | // 查询失败 87 | rd.setIsSuccess(false); 88 | rd.setMsg("失败,请刷新页面后重试"); 89 | 90 | } 91 | 92 | // 响应,JSON格式数据 93 | Util.responseJson(rd, response); 94 | 95 | } 96 | 97 | 98 | /** 99 | * 增加一条公告 100 | * @param announcement 要增加的公告对象 101 | * @param response 响应对象 102 | */ 103 | public void addAnnouncement(Announcement announcement, HttpServletResponse response) { 104 | 105 | int i = announcmentDao.addAnnouncement(announcement); 106 | 107 | ResultDate rd = new ResultDate(); 108 | if (i == 1) { 109 | // 创建公告成功 110 | rd.setIsSuccess(true); 111 | rd.setMsg("创建公告成功"); 112 | 113 | } else { 114 | 115 | // 修改失败 116 | rd.setIsSuccess(false); 117 | rd.setMsg("失败,请刷新页面后重试"); 118 | 119 | } 120 | 121 | // 响应,JSON格式数据 122 | Util.responseJson(rd, response); 123 | 124 | } 125 | 126 | 127 | /** 128 | * 查询所有显示的公告(最新num条) 129 | * @param num 查询的公告数量 130 | * @return 最新的num条公告的列表 131 | */ 132 | public ArrayList getAnnouncmentNum(int num) { 133 | 134 | return announcmentDao.getAnnouncmentNum(num); 135 | } 136 | 137 | } 138 | -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/skin/default/datepicker.css: -------------------------------------------------------------------------------- 1 | body,th,td,button,input,select,textarea{font-family:"Microsoft Yahei","Hiragino Sans GB","Helvetica Neue",Helvetica,tahoma,arial,"WenQuanYi Micro Hei",Verdana,sans-serif,"\5B8B\4F53";font-size:12px;color: #333;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing:grayscale}.WdateDiv{width:180px;background-color:#fff;border:#bbb 1px solid;padding:2px}.WdateDiv2{width:360px}.WdateDiv *{font-size:9pt}.WdateDiv .NavImg a{display:block;cursor:pointer;height:16px;width:16px}.WdateDiv .NavImgll a{float:left;background:transparent url(img.gif) no-repeat scroll 0 0}.WdateDiv .NavImgl a{float:left;background:transparent url(img.gif) no-repeat scroll -16px 0}.WdateDiv .NavImgr a{float:right;background:transparent url(img.gif) no-repeat scroll -32px 0}.WdateDiv .NavImgrr a{float:right;background:transparent url(img.gif) no-repeat scroll -48px 0}.WdateDiv #dpTitle{height:24px;margin-bottom:2px;padding:1px}.WdateDiv .yminput{margin-top:2px;text-align:center;height:20px;border:0;width:50px;cursor:pointer}.WdateDiv .yminputfocus{margin-top:2px;text-align:center;font-weight:bold;height:20px;color:blue;border:#ccc 1px solid;width:50px}.WdateDiv .menuSel{z-index:1;position:absolute;background-color:#fff;border:#ddd 1px solid;display:none}.WdateDiv .menu{cursor:pointer;background-color:#fff}.WdateDiv .menuOn{cursor:pointer;background-color:#beebee}.WdateDiv .invalidMenu{color:#aaa}.WdateDiv .YMenu{margin-top:20px}.WdateDiv .MMenu{margin-top:20px;*width:62px}.WdateDiv .hhMenu{margin-top:-90px;margin-left:26px}.WdateDiv .mmMenu{margin-top:-46px;margin-left:26px}.WdateDiv .ssMenu{margin-top:-24px;margin-left:26px}.WdateDiv .Wweek{text-align:center;background:#daf3f5;border-right:#ddd 1px solid}.WdateDiv .MTitle{background-color:#5a98de;color:#fff}.WdateDiv .MTitle td{ color:#fff}.WdateDiv .WdayTable2{border-collapse:collapse;border:#c5d9e8 1px solid}.WdateDiv .WdayTable2 table{border:0}.WdateDiv .WdayTable{line-height:20px;border:#c5d9e8 1px solid}.WdateDiv .WdayTable td{text-align:center;}.WdateDiv .Wday{cursor:pointer}.WdateDiv .WdayOn{cursor:pointer;background-color:#5a98de;color:#fff}.WdateDiv .Wwday{cursor:pointer;color:#ff2f2f}.WdateDiv .WwdayOn{cursor:pointer;color:#fff;background-color:#5a98de}.WdateDiv .Wtoday{cursor:pointer;color:blue}.WdateDiv .Wselday{background-color:#5a98de;color:#fff}.WdateDiv .WspecialDay{background-color:#66f4df}.WdateDiv .WotherDay{cursor:pointer;color:#428bca}.WdateDiv .WotherDayOn{cursor:pointer;background-color:#5a98de;color:#fff}.WdateDiv .WinvalidDay{color:#aaa}.WdateDiv #dpTime{float:left;margin-top:3px;margin-right:30px}.WdateDiv #dpTime #dpTimeStr{margin-left:1px}.WdateDiv #dpTime input{width:18px;height:20px;text-align:center;border:#ccc 1px solid}.WdateDiv #dpTime .tB{border-right:0}.WdateDiv #dpTime .tE{border-left:0;border-right:0}.WdateDiv #dpTime .tm{width:7px;border-left:0;border-right:0}.WdateDiv #dpTime #dpTimeUp{height:10px;width:13px;border:0;background:url(img.gif) no-repeat -32px -16px}.WdateDiv #dpTime #dpTimeDown{height:10px;width:13px;border:0;background:url(img.gif) no-repeat -48px -16px}.WdateDiv #dpQS{float:left;margin-right:3px;margin-top:3px;background:url(img.gif) no-repeat 0 -16px;width:20px;height:20px;cursor:pointer}.WdateDiv #dpControl{text-align:right}.WdateDiv .dpButton{height:20px;width:45px;border:#ccc 1px solid;margin-top:2px;margin-right:1px} -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/js/jquery.easy-pie-chart.min.js: -------------------------------------------------------------------------------- 1 | (function(a){a.easyPieChart=function(d,l){var f,g,i,j,c,k,e,b,h=this;this.el=d;this.$el=a(d);this.$el.data("easyPieChart",this);this.init=function(){var n,m;h.options=a.extend({},a.easyPieChart.defaultOptions,l);n=parseInt(h.$el.data("percent"),10);h.percentage=0;h.canvas=a("").get(0);h.$el.append(h.canvas);if(typeof G_vmlCanvasManager!=="undefined"&&G_vmlCanvasManager!==null){G_vmlCanvasManager.initElement(h.canvas)}h.ctx=h.canvas.getContext("2d");if(window.devicePixelRatio>1){m=window.devicePixelRatio;a(h.canvas).css({width:h.options.size,height:h.options.size});h.canvas.width*=m;h.canvas.height*=m;h.ctx.scale(m,m)}h.ctx.translate(h.options.size/2,h.options.size/2);h.ctx.rotate(h.options.rotate*Math.PI/180);h.$el.addClass("easyPieChart");h.$el.css({width:h.options.size,height:h.options.size,lineHeight:""+h.options.size+"px"});h.update(n);return h};this.update=function(m){m=parseFloat(m)||0;if(h.options.animate===false){i(m)}else{if(h.options.delay){g(h.percentage,0);setTimeout(function(){return g(h.percentage,m)},h.options.delay)}else{g(h.percentage,m)}}return h};e=function(){var n,o,m;h.ctx.fillStyle=h.options.scaleColor;h.ctx.lineWidth=1;m=[];for(n=o=0;o<=24;n=++o){m.push(f(n))}return m};f=function(m){var n;n=m%6===0?0:h.options.size*0.017;h.ctx.save();h.ctx.rotate(m*Math.PI/12);h.ctx.fillRect(h.options.size/2-n,0,-h.options.size*0.05+n,1);h.ctx.restore()};b=function(){var m;m=h.options.size/2-h.options.lineWidth/2;if(h.options.scaleColor!==false){m-=h.options.size*0.08}h.ctx.beginPath();h.ctx.arc(0,0,m,0,Math.PI*2,true);h.ctx.closePath();h.ctx.strokeStyle=h.options.trackColor;h.ctx.lineWidth=h.options.lineWidth;h.ctx.stroke()};k=function(){if(h.options.scaleColor!==false){e()}if(h.options.trackColor!==false){b()}};i=function(m){var n;k();h.ctx.strokeStyle=a.isFunction(h.options.barColor)?h.options.barColor(m):h.options.barColor;h.ctx.lineCap=h.options.lineCap;h.ctx.lineWidth=h.options.lineWidth;n=h.options.size/2-h.options.lineWidth/2;if(h.options.scaleColor!==false){n-=h.options.size*0.08}h.ctx.save();h.ctx.rotate(-Math.PI/2);h.ctx.beginPath();h.ctx.arc(0,0,n,0,Math.PI*2*m/100,false);h.ctx.stroke();h.ctx.restore()};c=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(m){return window.setTimeout(m,1000/60)}})();g=function(p,o){var n,m;h.options.onStart.call(h);h.percentage=o;Date.now||(Date.now=function(){return +(new Date)});m=Date.now();n=function(){var q,r;r=Math.min(Date.now()-m,h.options.animate);h.ctx.clearRect(-h.options.size/2,-h.options.size/2,h.options.size,h.options.size);k.call(h);q=[j(r,p,o-p,h.options.animate)];h.options.onStep.call(h,q);i.call(h,q);if(r>=h.options.animate){return h.options.onStop.call(h,q,o)}else{return c(n)}};c(n)};j=function(o,n,r,p){var m,q;m=function(s){return Math.pow(s,2)};q=function(s){if(s<1){return m(s)}else{return 2-m((s/2)*-2+2)}};o/=p/2;return r/2*q(o)+n};return this.init()};a.easyPieChart.defaultOptions={barColor:"#ef1e25",trackColor:"#f2f2f2",scaleColor:"#dfe0e0",lineCap:"round",rotate:0,size:110,lineWidth:3,animate:false,delay:false,onStart:a.noop,onStop:a.noop,onStep:a.noop};a.fn.easyPieChart=function(b){return a.each(this,function(d,e){var c,f;c=a(e);if(!c.data("easyPieChart")){f=a.extend({},b,c.data());return c.data("easyPieChart",new a.easyPieChart(e,f))}})};return void 0})(jQuery); -------------------------------------------------------------------------------- /WebContent/mutualResource/css/easyui_style.css: -------------------------------------------------------------------------------- 1 | root {display: block;} 2 | html, body, div, label, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, p, blockquote, th, td ,img,textarea{border: 0px;margin: 0px;outline: 0px;padding: 0px;} 3 | fieldset, img { border: 0; } 4 | img { display:inline-block; } 5 | :focus { outline: 0; } 6 | li {display: list-item;text-align: -webkit-match-parent;} 7 | em, i, u {font-style: normal;} 8 | h1, h2, h3, h4, h5, h6 {font-weight: normal; } 9 | abbr, acronym { border: 0; font-variant: normal; } 10 | input, button, textarea, select, optgroup, option { font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; } 11 | code, kbd, samp, tt { font-size:100%; } 12 | input, button, textarea, select { *font-size: 100%;font-family:"Microsoft YaHei";} 13 | ol, ul { list-style: none outside none; } 14 | table { border-collapse: collapse; border-spacing: 0; } 15 | caption, th { text-align: left; } 16 | :link, :visited, ins { text-decoration: none; } 17 | blockquote, q { quotes: none; } 18 | blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } 19 | a{ color: #333} 20 | div {display: block;} 21 | a:hover{ color:#F90} 22 | html,body{ 23 | margin: 0; 24 | padding: 0; 25 | color: #232323; 26 | font-size: 12px; 27 | font-family:"Microsoft YaHei",Arial,Helvetica,sans-serif,STHeiti; 28 | letter-spacing: 0px; 29 | height: 100%; 30 | width: 100%; 31 | } 32 | .cs-north { 33 | height:60px; 34 | } 35 | .cs-north-bg { 36 | width: 100%; 37 | height: 100%; 38 | background:url(../images/xtbg.png) repeat-x; 39 | } 40 | .cs-north-logo { 41 | height: 60px; 42 | margin: 5px 0px 0px 5px; 43 | display: inline-block; 44 | color:#ffffff; 45 | font-size:22px; 46 | font-weight:bold; 47 | text-decoration:none 48 | } 49 | .cs-west { 50 | width:200px;padding:0px; 51 | } 52 | .cs-south { 53 | height:25px;background:url('themes/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png') repeat-x;padding:0px;text-align:center; 54 | } 55 | .cs-navi-tab { 56 | padding: 5px; 57 | } 58 | .cs-tab-menu { 59 | width:120px; 60 | } 61 | .cs-home-remark { 62 | padding: 10px; 63 | } 64 | .wrapper { 65 | float: right; 66 | height: 30px; 67 | margin-left: 10px; 68 | } 69 | .ui-skin-nav { 70 | float: right; 71 | padding: 0; 72 | margin-right: 10px; 73 | list-style: none outside none; 74 | height: 30px; 75 | } 76 | 77 | .ui-skin-nav .li-skinitem { 78 | float: left; 79 | font-size: 12px; 80 | line-height: 30px; 81 | margin-left: 10px; 82 | text-align: center; 83 | } 84 | .ui-skin-nav .li-skinitem span { 85 | cursor: pointer; 86 | width:10px; 87 | height:10px; 88 | display:inline-block; 89 | } 90 | .ui-skin-nav .li-skinitem span.cs-skin-on{ 91 | border: 1px solid #FFFFFF; 92 | } 93 | 94 | .ui-skin-nav .li-skinitem span.gray{background-color:gray;} 95 | .ui-skin-nav .li-skinitem span.pepper-grinder{background-color:#BC3604;} 96 | .ui-skin-nav .li-skinitem span.blue{background-color:blue;} 97 | .ui-skin-nav .li-skinitem span.cupertino{background-color:#D7EBF9;} 98 | .ui-skin-nav .li-skinitem span.dark-hive{background-color:black;} 99 | .ui-skin-nav .li-skinitem span.sunny{background-color:#FFE57E;} 100 | 101 | -------------------------------------------------------------------------------- /WebContent/mutualResource/Widget/My97DatePicker/skin/twoer/datepicker.css: -------------------------------------------------------------------------------- 1 | .WdateDiv{position:relative;width:190px;font-size:12px;color:#333;border:solid 1px #DEDEDE;background-color:#F2F0F1;padding:5px;}.WdateDiv2{width:360px;}.WdateDiv .NavImg a,.WdateDiv .yminput,.WdateDiv .yminputfocus,.WdateDiv #dpQS{background:url(img.gif) no-repeat;}.WdateDiv .NavImg a{float:left;width:16px;height:16px;cursor:pointer;}.WdateDiv .NavImgll a{background-position:0 5px;}.WdateDiv .NavImgl a{background-position:0 -10px;}.WdateDiv .NavImgr a{background-position:0 -25px;float:right;}.WdateDiv .NavImgrr a{background-position:0 -40px;float:right;}.WdateDiv #dpTitle{line-height:0;height:23px;padding:3px 0 0;}.WdateDiv .yminput,.WdateDiv .yminputfocus{margin-left:3px;width:50px;height:20px;line-height:16px;border:solid 1px #F2F0F1;cursor:pointer;background-position:35px -68px;}.WdateDiv .yminputfocus{background-color:#fff;border:solid 1px #D8D8D8;}.WdateDiv .menuSel{z-index:1;position:absolute;background-color:#FFF;border:#A3C6C8 1px solid;display:none;}.WdateDiv .menu{background:#fff;}.WdateDiv .menuOn{color:#fff;background:#FFC600;}.WdateDiv .MMenu,.WdateDiv .YMenu{margin-top:20px;margin-left:-1px;width:68px;border:solid 1px #D9D9D9;padding:2px;}.WdateDiv .MMenu table,.WdateDiv .YMenu table{width:100%;}.WdateDiv .MMenu table td,.WdateDiv .YMenu table td{line-height:20px;text-align:center;font-size:14px;cursor:pointer;padding:0;}.WdateDiv .Wweek{text-align:center;background:#DAF3F5;border-right:#BDEBEE 1px solid;}.WdateDiv td{line-height:20px;font-size:12px;color:#999;background:#fff;cursor:pointer;padding:1px;}.WdateDiv .MTitle td{line-height:24px;color:#7D7D7D;background:#F2F0F1;cursor:default;}.WdateDiv .WdayTable2{border-collapse:collapse;border:gray 1px solid;}.WdateDiv .WdayTable2 table{border:0;}.WdateDiv .WdayTable{line-height:20px;color:#13777e;background-color:#edfbfb;}.WdateDiv .WdayTable td{text-align:center;}.WdateDiv .Wday{color:#323232;}.WdateDiv .Wwday{color:#FFC600;}.WdateDiv .Wtoday{color:#FF6D10;background:#E0EDFE;}.WdateDiv .WspecialDay{background-color:#66F4DF;}.WdateDiv .WotherDay{color:#D4D4D4;}.WdateDiv #dpTime{position:relative;margin-top:5px;}.WdateDiv #dpTime #dpTimeStr{display:inline-block;width:30px;color:#7d7d7d;}.WdateDiv #dpTime input{width:25px;height:20px;line-height:20px;text-align:center;color:#333;border:#D9D9D9 1px solid;margin:0;padding:0;}.WdateDiv #dpTime .tm{width:7px;border:none;background:#F2F0F1;}.WdateDiv #dpQS{float:left;margin-right:3px;margin-top:6px;width:16px;height:16px;cursor:pointer;background-position:0 -90px;}.WdateDiv #dpControl{text-align:right;margin-top:3px;}.WdateDiv .dpButton{margin-left:2px;line-height:16px;width:45px;background-color:#FFC600;color:#fff;border:none;cursor:pointer;}.WdateDiv .dpButton:hover{background-color:#FFC600;}.WdateDiv .hhMenu,.WdateDiv .mmMenu,.WdateDiv .ssMenu{position:absolute;font-size:12px;color:#333;border:solid 1px #DEDEDE;background-color:#F2F0F1;padding:3px;}.WdateDiv #dpTime .menu,.WdateDiv #dpTime .menuOn{width:18px;height:18px;line-height:18px;text-align:center;background:#fff;}.WdateDiv #dpTime .menuOn{background:#FFC600;}.WdateDiv #dpTime td{background:#F2F0F1;}.WdateDiv .hhMenu{top:-87px;left:32px;}.WdateDiv .mmMenu{top:-47px;left:32px;}.WdateDiv .ssMenu{top:-27px;left:32px;}.WdateDiv .invalidMenu,.WdateDiv .WinvalidDay{color:#aaa;}.WdateDiv .WdayOn,.WdateDiv .WwdayOn,.WdateDiv .Wselday,.WdateDiv .WotherDayOn{background-color:#FFC600;color:#fff;}.WdateDiv #dpTime #dpTimeUp,.WdateDiv #dpTime #dpTimeDown{display:none;} -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/js/bootstrap-tag.min.js: -------------------------------------------------------------------------------- 1 | !function(c){var b=function(e,d){this.element=c(e);this.options=c.extend(true,{},c.fn.tag.defaults,d);this.values=c.grep(c.map(this.element.val().split(","),c.trim),function(f){return f.length>0});this.show()};b.prototype={constructor:b,show:function(){var d=this;d.element.parent().prepend(d.element.detach().hide());d.element.wrap(c('
')).parent().on("click",function(){d.input.focus()});if(d.values.length){c.each(d.values,function(){d.createBadge(this)})}d.input=c('').attr("placeholder",d.options.placeholder).insertAfter(d.element).on("focus",function(){d.element.parent().addClass("tags-hover")}).on("blur",function(){if(!d.skip){d.process();d.element.parent().removeClass("tags-hover");d.element.siblings(".tag").removeClass("tag-important")}d.skip=false}).on("keydown",function(g){if(g.keyCode==188||g.keyCode==13||g.keyCode==9){if(c.trim(c(this).val())&&(!d.element.siblings(".typeahead").length||d.element.siblings(".typeahead").is(":hidden"))){if(g.keyCode!=9){g.preventDefault()}d.process()}else{if(g.keyCode==188){if(!d.element.siblings(".typeahead").length||d.element.siblings(".typeahead").is(":hidden")){g.preventDefault()}else{d.input.data("typeahead").select();g.stopPropagation();g.preventDefault()}}}}else{if(!c.trim(c(this).val())&&g.keyCode==8){var f=d.element.siblings(".tag").length;if(f){var e=d.element.siblings(".tag:eq("+(f-1)+")");if(e.hasClass("tag-important")){d.remove(f-1)}else{e.addClass("tag-important")}}}else{d.element.siblings(".tag").removeClass("tag-important")}}}).typeahead({source:d.options.source,matcher:function(e){return ~e.toLowerCase().indexOf(this.query.toLowerCase())&&(d.inValues(e)==-1||d.options.allowDuplicates)},updater:c.proxy(d.add,d)});c(d.input.data("typeahead").$menu).on("mousedown",function(){d.skip=true});this.element.trigger("shown")},inValues:function(e){if(this.options.caseInsensitive){var d=-1;c.each(this.values,function(f,g){if(g.toLowerCase()==e.toLowerCase()){d=f;return false}});return d}else{return c.inArray(e,this.values)}},createBadge:function(e){var d=this;c("",{"class":"tag"}).text(e).append(c('').on("click",function(){d.remove(d.element.siblings(".tag").index(c(this).closest(".tag")))})).insertBefore(d.element)},add:function(g){var f=this;if(!f.options.allowDuplicates){var e=f.inValues(g);if(e!=-1){var d=f.element.siblings(".tag:eq("+e+")");d.addClass("tag-warning");setTimeout(function(){c(d).removeClass("tag-warning")},500);return}}this.values.push(g);this.createBadge(g);this.element.val(this.values.join(", "));this.element.trigger("added",[g])},remove:function(d){if(d>=0){var e=this.values.splice(d,1);this.element.siblings(".tag:eq("+d+")").remove();this.element.val(this.values.join(", "));this.element.trigger("removed",[e])}},process:function(){var d=c.grep(c.map(this.input.val().split(","),c.trim),function(f){return f.length>0}),e=this;c.each(d,function(){e.add(this)});this.input.val("")},skip:false};var a=c.fn.tag;c.fn.tag=function(d){return this.each(function(){var f=c(this),g=f.data("tag"),e=typeof d=="object"&&d;if(!g){f.data("tag",(g=new b(this,e)))}if(typeof d=="string"){g[d]()}})};c.fn.tag.defaults={allowDuplicates:false,caseInsensitive:true,placeholder:"",source:[]};c.fn.tag.Constructor=b;c.fn.tag.noConflict=function(){c.fn.tag=a;return this};c(window).on("load",function(){c('[data-provide="tag"]').each(function(){var d=c(this);if(d.data("tag")){return}d.tag(d.data())})})}(window.jQuery); -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/css/bootstrap-timepicker.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Timepicker Component for Twitter Bootstrap 3 | * 4 | * Copyright 2013 Joris de Wit 5 | * 6 | * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | .bootstrap-timepicker { 12 | position: relative; 13 | } 14 | .bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu { 15 | left: auto; 16 | right: 0; 17 | } 18 | .bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:before { 19 | left: auto; 20 | right: 12px; 21 | } 22 | .bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:after { 23 | left: auto; 24 | right: 13px; 25 | } 26 | .bootstrap-timepicker .add-on { 27 | cursor: pointer; 28 | } 29 | .bootstrap-timepicker .add-on i { 30 | display: inline-block; 31 | width: 16px; 32 | height: 16px; 33 | } 34 | .bootstrap-timepicker-widget.dropdown-menu { 35 | padding: 2px 3px 2px 2px; 36 | } 37 | .bootstrap-timepicker-widget.dropdown-menu.open { 38 | display: inline-block; 39 | } 40 | .bootstrap-timepicker-widget.dropdown-menu:before { 41 | border-bottom: 7px solid rgba(0, 0, 0, 0.2); 42 | border-left: 7px solid transparent; 43 | border-right: 7px solid transparent; 44 | content: ""; 45 | display: inline-block; 46 | left: 9px; 47 | position: absolute; 48 | top: -7px; 49 | } 50 | .bootstrap-timepicker-widget.dropdown-menu:after { 51 | border-bottom: 6px solid #FFFFFF; 52 | border-left: 6px solid transparent; 53 | border-right: 6px solid transparent; 54 | content: ""; 55 | display: inline-block; 56 | left: 10px; 57 | position: absolute; 58 | top: -6px; 59 | } 60 | .bootstrap-timepicker-widget a.btn, 61 | .bootstrap-timepicker-widget input { 62 | border-radius: 4px; 63 | } 64 | .bootstrap-timepicker-widget table { 65 | width: 100%; 66 | margin: 0; 67 | } 68 | .bootstrap-timepicker-widget table td { 69 | text-align: center; 70 | height: 30px; 71 | margin: 0; 72 | padding: 2px; 73 | } 74 | .bootstrap-timepicker-widget table td:not(.separator) { 75 | min-width: 30px; 76 | } 77 | .bootstrap-timepicker-widget table td span { 78 | width: 100%; 79 | } 80 | .bootstrap-timepicker-widget table td a { 81 | border: 1px transparent solid; 82 | width: 100%; 83 | display: inline-block; 84 | margin: 0; 85 | padding: 8px 0; 86 | outline: 0; 87 | color: #333; 88 | } 89 | .bootstrap-timepicker-widget table td a:hover { 90 | text-decoration: none; 91 | background-color: #eee; 92 | -webkit-border-radius: 4px; 93 | -moz-border-radius: 4px; 94 | border-radius: 4px; 95 | border-color: #ddd; 96 | } 97 | .bootstrap-timepicker-widget table td a i { 98 | margin-top: 2px; 99 | } 100 | .bootstrap-timepicker-widget table td input { 101 | width: 25px; 102 | margin: 0; 103 | text-align: center; 104 | } 105 | .bootstrap-timepicker-widget .modal-content { 106 | padding: 4px; 107 | } 108 | @media (min-width: 767px) { 109 | .bootstrap-timepicker-widget.modal { 110 | width: 200px; 111 | margin-left: -100px; 112 | } 113 | } 114 | @media (max-width: 767px) { 115 | .bootstrap-timepicker { 116 | width: 100%; 117 | } 118 | .bootstrap-timepicker .dropdown-menu { 119 | width: 100%; 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /src/model/service/ClientService.java: -------------------------------------------------------------------------------- 1 | package model.service; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | import javax.servlet.http.HttpServletResponse; 7 | 8 | import bean.Client; 9 | import model.dao.ClientDao; 10 | import utils.ResultDate; 11 | import utils.Util; 12 | 13 | /** 14 | * @author h w j 15 | * @instruction 16 | * 来访者的Service 17 | */ 18 | public class ClientService { 19 | 20 | ClientDao clientDao = new ClientDao(); 21 | 22 | 23 | /** 24 | * 查询符合条件的用户 25 | * @param search 查询条件 26 | * @return 来访者对象集合 27 | */ 28 | public List listSearch(Map search) { 29 | 30 | return clientDao.listSearch(search); 31 | } 32 | 33 | 34 | /** 35 | * 修改client表中is_active的值,是否为激活状态 36 | * 37 | * @param clientId 来访者id 38 | * @param action 要设置的状态值 39 | */ 40 | public void toggleClientActive(Integer clientId, Integer action, HttpServletResponse response) { 41 | 42 | int i = clientDao.toggleClientActive(clientId, action); 43 | 44 | ResultDate rd = new ResultDate(); 45 | if (i == 1) { 46 | // 修改成功 47 | rd.setIsSuccess(true); 48 | rd.setMsg("修改成功"); 49 | 50 | } else { 51 | 52 | // 修改失败 53 | rd.setIsSuccess(false); 54 | rd.setMsg("失败,请刷新页面后重试"); 55 | 56 | } 57 | 58 | // 响应,JSON格式数据 59 | Util.responseJson(rd, response); 60 | 61 | } 62 | 63 | 64 | 65 | /** 66 | * 查询 共有多少来访者 67 | * @return 来访者数量 68 | */ 69 | public int getClientNum() { 70 | return clientDao.getClientNum(); 71 | } 72 | 73 | 74 | /** 75 | * 根据账号查询 来访者(支持电话) 76 | * @param clientName 账号 77 | * @return 来访者对象 78 | */ 79 | public Client getClient(String clientName) { 80 | 81 | return clientDao.getClient(clientName); 82 | 83 | } 84 | 85 | 86 | /** 87 | * 修改来访者密码 88 | * @param clientId 来访者id 89 | * @param newPwd 新密码 90 | * @return 受影响行数 91 | */ 92 | public int updateClientPwd(Integer clientId, String newPwd) { 93 | 94 | return clientDao.updateClientPwd(clientId,newPwd); 95 | } 96 | 97 | 98 | /** 99 | * 修改来访者的个人信息 100 | * @param client 来访者对象 101 | * @param clientId 来访者id 102 | * @return 受影响行数 103 | */ 104 | public int updateClientBase(Client client, Integer clientId) { 105 | return clientDao.updateClientBase(client,clientId); 106 | } 107 | 108 | 109 | /** 110 | * 得到来访者 111 | * @param clientId 来访者id 112 | * @return 来访者对象 113 | */ 114 | public Client getClientByClientId(int clientId) { 115 | return clientDao.getClientByClientId(clientId); 116 | } 117 | 118 | 119 | /** 120 | * 判断电话是否可用(是否被注册过) 121 | * @param phone 电话 122 | * @param response 响应对象 123 | */ 124 | public void checkPhoneResponse(String phone, HttpServletResponse response) { 125 | 126 | Client client = clientDao.getClient(phone); 127 | 128 | ResultDate rd = new ResultDate(); 129 | if (client == null) { 130 | // 可用 131 | rd.setIsSuccess(true); 132 | rd.setMsg("电话号码可用"); 133 | 134 | } else { 135 | 136 | // 修改失败 137 | rd.setIsSuccess(false); 138 | rd.setMsg("已经被注册过"); 139 | 140 | } 141 | 142 | // 响应,JSON格式数据 143 | Util.responseJson(rd, response); 144 | 145 | } 146 | 147 | 148 | /** 149 | * 添加一来访者 150 | * @param client 来访者对象 151 | */ 152 | public int addClient(Client client) { 153 | 154 | return clientDao.addClient(client); 155 | 156 | } 157 | 158 | } 159 | -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/js/jquery.maskedinput.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | Masked Input plugin for jQuery 3 | Copyright (c) 2007-2013 Josh Bush (digitalbush.com) 4 | Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license) 5 | Version: 1.3.1 6 | */ 7 | (function(e){function t(){var e=document.createElement("input"),t="onpaste";return e.setAttribute(t,""),"function"==typeof e[t]?"paste":"input"}var n,a=t()+".mask",r=navigator.userAgent,i=/iphone/i.test(r),o=/android/i.test(r);e.mask={definitions:{9:"[0-9]",a:"[A-Za-z]","*":"[A-Za-z0-9]"},dataName:"rawMaskFn",placeholder:"_"},e.fn.extend({caret:function(e,t){var n;if(0!==this.length&&!this.is(":hidden"))return"number"==typeof e?(t="number"==typeof t?t:e,this.each(function(){this.setSelectionRange?this.setSelectionRange(e,t):this.createTextRange&&(n=this.createTextRange(),n.collapse(!0),n.moveEnd("character",t),n.moveStart("character",e),n.select())})):(this[0].setSelectionRange?(e=this[0].selectionStart,t=this[0].selectionEnd):document.selection&&document.selection.createRange&&(n=document.selection.createRange(),e=0-n.duplicate().moveStart("character",-1e5),t=e+n.text.length),{begin:e,end:t})},unmask:function(){return this.trigger("unmask")},mask:function(t,r){var c,l,s,u,f,h;return!t&&this.length>0?(c=e(this[0]),c.data(e.mask.dataName)()):(r=e.extend({placeholder:e.mask.placeholder,completed:null},r),l=e.mask.definitions,s=[],u=h=t.length,f=null,e.each(t.split(""),function(e,t){"?"==t?(h--,u=e):l[t]?(s.push(RegExp(l[t])),null===f&&(f=s.length-1)):s.push(null)}),this.trigger("unmask").each(function(){function c(e){for(;h>++e&&!s[e];);return e}function d(e){for(;--e>=0&&!s[e];);return e}function m(e,t){var n,a;if(!(0>e)){for(n=e,a=c(t);h>n;n++)if(s[n]){if(!(h>a&&s[n].test(R[a])))break;R[n]=R[a],R[a]=r.placeholder,a=c(a)}b(),x.caret(Math.max(f,e))}}function p(e){var t,n,a,i;for(t=e,n=r.placeholder;h>t;t++)if(s[t]){if(a=c(t),i=R[t],R[t]=n,!(h>a&&s[a].test(i)))break;n=i}}function g(e){var t,n,a,r=e.which;8===r||46===r||i&&127===r?(t=x.caret(),n=t.begin,a=t.end,0===a-n&&(n=46!==r?d(n):a=c(n-1),a=46===r?c(a):a),k(n,a),m(n,a-1),e.preventDefault()):27==r&&(x.val(S),x.caret(0,y()),e.preventDefault())}function v(t){var n,a,i,l=t.which,u=x.caret();t.ctrlKey||t.altKey||t.metaKey||32>l||l&&(0!==u.end-u.begin&&(k(u.begin,u.end),m(u.begin,u.end-1)),n=c(u.begin-1),h>n&&(a=String.fromCharCode(l),s[n].test(a)&&(p(n),R[n]=a,b(),i=c(n),o?setTimeout(e.proxy(e.fn.caret,x,i),0):x.caret(i),r.completed&&i>=h&&r.completed.call(x))),t.preventDefault())}function k(e,t){var n;for(n=e;t>n&&h>n;n++)s[n]&&(R[n]=r.placeholder)}function b(){x.val(R.join(""))}function y(e){var t,n,a=x.val(),i=-1;for(t=0,pos=0;h>t;t++)if(s[t]){for(R[t]=r.placeholder;pos++a.length)break}else R[t]===a.charAt(pos)&&t!==u&&(pos++,i=t);return e?b():u>i+1?(x.val(""),k(0,h)):(b(),x.val(x.val().substring(0,i+1))),u?t:f}var x=e(this),R=e.map(t.split(""),function(e){return"?"!=e?l[e]?r.placeholder:e:void 0}),S=x.val();x.data(e.mask.dataName,function(){return e.map(R,function(e,t){return s[t]&&e!=r.placeholder?e:null}).join("")}),x.attr("readonly")||x.one("unmask",function(){x.unbind(".mask").removeData(e.mask.dataName)}).bind("focus.mask",function(){clearTimeout(n);var e;S=x.val(),e=y(),n=setTimeout(function(){b(),e==t.length?x.caret(0,e):x.caret(e)},10)}).bind("blur.mask",function(){y(),x.val()!=S&&x.change()}).bind("keydown.mask",g).bind("keypress.mask",v).bind(a,function(){setTimeout(function(){var e=y(!0);x.caret(e),r.completed&&e==x.val().length&&r.completed.call(x)},0)}),y()}))}})})(jQuery); -------------------------------------------------------------------------------- /WebContent/mutualResource/assets/js/bootstrap-wysiwyg.min.js: -------------------------------------------------------------------------------- 1 | (function(b){var a=function(e){var c=b.Deferred(),d=new FileReader();d.onload=function(f){c.resolve(f.target.result)};d.onerror=c.reject;d.onprogress=c.notify;d.readAsDataURL(e);return c.promise()};b.fn.cleanHtml=function(){var c=b(this).html();return c&&c.replace(/(
|\s|

<\/div>| )*$/,"")};b.fn.wysiwyg=function(k){var l=this,h,q,d,p=function(){if(q.activeToolbarClass){b(q.toolbarSelector).find(d).each(function(){try{var s=b(this).data(q.commandRole);if(document.queryCommandState(s)){b(this).addClass(q.activeToolbarClass)}else{b(this).removeClass(q.activeToolbarClass)}}catch(r){}})}},o=function(r,s){var u=r.split(" "),v=u.shift(),t=u.join(" ")+(s||"");document.execCommand(v,0,t);p()},f=function(r){b.each(r,function(s,t){l.keydown(s,function(u){if(l.attr("contenteditable")&&l.is(":visible")){u.preventDefault();u.stopPropagation();o(t)}}).keyup(s,function(u){if(l.attr("contenteditable")&&l.is(":visible")){u.preventDefault();u.stopPropagation()}})})},g=function(){try{var r=window.getSelection();if(r.getRangeAt&&r.rangeCount){return r.getRangeAt(0)}}catch(s){}},i=function(){h=g()},e=function(){try{var s=window.getSelection();if(h){try{s.removeAllRanges()}catch(r){document.body.createTextRange().select();document.selection.empty()}s.addRange(h)}}catch(t){}},j=function(r){l.focus();b.each(r,function(s,t){if(/^image\//.test(t.type)){b.when(a(t)).done(function(u){o("insertimage",u)}).fail(function(u){q.fileUploadError("file-reader",u)})}else{q.fileUploadError("unsupported-file-type",t.type)}})},c=function(s,r){e();if(document.queryCommandSupported("hiliteColor")){document.execCommand("hiliteColor",0,r||"transparent")}i();s.data(q.selectionMarker,r)},m=function(s,r){s.find(d).click(function(){e();l.focus();o(b(this).data(r.commandRole));i()});s.find("[data-toggle=dropdown]").click(e);s.find("input[type=text][data-"+r.commandRole+"]").on("webkitspeechchange change",function(){var t=this.value;this.value="";e();if(t){l.focus();o(b(this).data(r.commandRole),t)}i()}).on("focus",function(){var t=b(this);if(!t.data(r.selectionMarker)){c(t,r.selectionColor);t.focus()}}).on("blur",function(){var t=b(this);if(t.data(r.selectionMarker)){c(t,false)}});s.find("input[type=file][data-"+r.commandRole+"]").change(function(){e();if(this.type==="file"&&this.files&&this.files.length>0){j(this.files)}i();this.value=""})},n=function(){l.on("dragenter dragover",false).on("drop",function(s){var r=s.originalEvent.dataTransfer;s.stopPropagation();s.preventDefault();if(r&&r.files&&r.files.length>0){j(r.files)}})};q=b.extend({},b.fn.wysiwyg.defaults,k);d="a[data-"+q.commandRole+"],button[data-"+q.commandRole+"],input[type=button][data-"+q.commandRole+"]";f(q.hotKeys);if(q.dragAndDropImages){n()}m(b(q.toolbarSelector),q);l.attr("contenteditable",true).on("mouseup keyup mouseout",function(){i();p()});b(window).bind("touchend",function(u){var t=(l.is(u.target)||l.has(u.target).length>0),s=g(),r=s&&(s.startContainer===s.endContainer&&s.startOffset===s.endOffset);if(!r||t){i();p()}});return this};b.fn.wysiwyg.defaults={hotKeys:{"ctrl+b meta+b":"bold","ctrl+i meta+i":"italic","ctrl+u meta+u":"underline","ctrl+z meta+z":"undo","ctrl+y meta+y meta+shift+z":"redo","ctrl+l meta+l":"justifyleft","ctrl+r meta+r":"justifyright","ctrl+e meta+e":"justifycenter","ctrl+j meta+j":"justifyfull","shift+tab":"outdent",tab:"indent"},toolbarSelector:"[data-role=editor-toolbar]",commandRole:"edit",activeToolbarClass:"btn-info",selectionMarker:"edit-focus-marker",selectionColor:"darkgrey",dragAndDropImages:true,fileUploadError:function(d,c){console.log("File upload error",d,c)}}}(window.jQuery)); -------------------------------------------------------------------------------- /src/servlet/QuestionServlet.java: -------------------------------------------------------------------------------- 1 | package servlet; 2 | 3 | import java.io.IOException; 4 | import java.util.List; 5 | import javax.servlet.ServletException; 6 | import javax.servlet.http.HttpServlet; 7 | import javax.servlet.http.HttpServletRequest; 8 | import javax.servlet.http.HttpServletResponse; 9 | 10 | import bean.Question; 11 | import model.service.QuestionService; 12 | import utils.Util; 13 | 14 | /** 15 | * @author h w j 16 | * @instruction 17 | * 问题模块的控制器 18 | */ 19 | public class QuestionServlet extends HttpServlet { 20 | private static final long serialVersionUID = 1L; 21 | 22 | QuestionService questionService = new QuestionService(); 23 | 24 | /** 25 | * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response) 26 | */ 27 | protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 28 | 29 | String m = request.getParameter("m"); 30 | 31 | if ("listQuestion".equals(m)) { 32 | 33 | //得到查询条件 34 | String context = request.getParameter("context"); 35 | 36 | 37 | // 查询符合条件的题目 38 | List list = questionService.listQuestion(context); 39 | 40 | 41 | request.setAttribute("questionList", list); 42 | 43 | request.setAttribute("listSize", list.size()); 44 | 45 | request.getRequestDispatcher("/admin/question.jsp").forward(request, response); 46 | 47 | }else if("updateQuestion".equals(m)) { 48 | 49 | //增加或者修改 50 | 51 | //id有值就是修改,没值就是添加 52 | String questionId = request.getParameter("id"); 53 | 54 | 55 | //取得表单里的值 56 | String questionNum = request.getParameter("questionNum"); 57 | String answerYesScore = request.getParameter("answerYesScore"); 58 | String answerNoScore = request.getParameter("answerNoScore"); 59 | String context = request.getParameter("context"); 60 | 61 | 62 | //将表单对象封装为Question对象 63 | Question question = new Question(); 64 | question.setQuestionNum(Integer.parseInt(questionNum)); 65 | question.setAnswerYesScore(Integer.parseInt(answerYesScore)); 66 | question.setAnswerNoScore(Integer.parseInt(answerNoScore)); 67 | question.setContext(context); 68 | 69 | 70 | if(Util.isNotEmpty(questionId)) { 71 | //id不为空,是修改 72 | question.setQuestionId(Integer.parseInt(questionId)); 73 | 74 | //修改 75 | questionService.updateQuestion(question,response); 76 | 77 | }else { 78 | //增加 79 | questionService.addQuestion(question,response); 80 | } 81 | 82 | }else if("deletQuestion".equals(m)) { 83 | 84 | //删除 85 | 86 | //获取要删除的doctor 87 | String questionId = request.getParameter("id"); 88 | 89 | //批量删除的Id 90 | String checkeds = request.getParameter("checkeds"); 91 | 92 | //删除单个的 93 | if(Util.isNotEmpty(questionId)) { 94 | questionService.deleteQuestion(Integer.parseInt(questionId),response); 95 | } 96 | 97 | //批量删除 98 | if(Util.isNotEmpty(checkeds)) { 99 | questionService.deleteQuestionCheckeds(checkeds,response); 100 | } 101 | 102 | 103 | }else if("selecteQuestion".equals(m)) {//ajax 104 | 105 | //要查看的问题 106 | String questionId = request.getParameter("id"); 107 | 108 | //查询,并且将数据返回(JSON格式) 109 | questionService.getQuestionByQuestionIdToResponse(Integer.parseInt(questionId ),response); 110 | 111 | 112 | 113 | } 114 | 115 | } 116 | 117 | } 118 | --------------------------------------------------------------------------------