├── .mvn └── wrapper │ ├── MavenWrapperDownloader.java │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── LICENSE ├── README.md ├── mms_db.sql ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── sl │ │ └── boot │ │ └── admindemo │ │ ├── AdmindemoApplication.java │ │ ├── controller │ │ ├── ActionRecordController.java │ │ ├── AdminUserController.java │ │ ├── DoctorController.java │ │ ├── DrugAdminUserController.java │ │ ├── DrugController.java │ │ ├── HomeController.java │ │ ├── LoginController.java │ │ ├── PatientController.java │ │ └── PrescriptionController.java │ │ ├── dao │ │ ├── ActionRecordDAO.java │ │ ├── AdminUserDAO.java │ │ ├── DoctorDAO.java │ │ ├── DrugAdminUserDAO.java │ │ ├── DrugDAO.java │ │ ├── MyBatisBaseDao.java │ │ ├── PatientDAO.java │ │ ├── PrescriptionDAO.java │ │ ├── PwdUserDAO.java │ │ └── UserDao.java │ │ ├── dto │ │ ├── PatientDTO.java │ │ └── UserDTO.java │ │ ├── entity │ │ ├── ActionRecord.java │ │ ├── ActionRecordExample.java │ │ ├── AdminUser.java │ │ ├── AdminUserExample.java │ │ ├── Doctor.java │ │ ├── DoctorExample.java │ │ ├── Drug.java │ │ ├── DrugAdminUser.java │ │ ├── DrugAdminUserExample.java │ │ ├── DrugExample.java │ │ ├── Patient.java │ │ ├── PatientExample.java │ │ ├── Prescription.java │ │ ├── PrescriptionExample.java │ │ ├── PwdUser.java │ │ ├── PwdUserExample.java │ │ └── User.java │ │ ├── enums │ │ └── ResponseEnum.java │ │ ├── service │ │ ├── ActionRecordService.java │ │ ├── AdminUserService.java │ │ ├── DoctorService.java │ │ ├── DrugAdminUserService.java │ │ ├── DrugService.java │ │ ├── PatientService.java │ │ ├── PrescriptionService.java │ │ ├── UserService.java │ │ └── impl │ │ │ ├── ActionRecordServiceImpl.java │ │ │ ├── AdminUserServiceImpl.java │ │ │ ├── DoctorServiceImpl.java │ │ │ ├── DrugAdminUserServiceImpl.java │ │ │ ├── DrugServiceImpl.java │ │ │ ├── PatientServiceImpl.java │ │ │ ├── PrescriptionServiceImpl.java │ │ │ └── UserServiceImpl.java │ │ ├── tools │ │ ├── DateRange.java │ │ └── DateUtils.java │ │ └── vo │ │ ├── DrugVo.java │ │ ├── LoginVo.java │ │ ├── PrescriptionVo.java │ │ ├── StaVo.java │ │ ├── UserVo.java │ │ └── resp │ │ ├── BaseResp.java │ │ ├── LoginResp.java │ │ └── StaRep.java └── resources │ ├── application.yml │ ├── diagram.uml │ ├── mapper │ ├── ActionRecordDAO.xml │ ├── AdminUserDAO.xml │ ├── DoctorDAO.xml │ ├── DrugAdminUserDAO.xml │ ├── DrugDAO.xml │ ├── PatientDAO.xml │ ├── PrescriptionDAO.xml │ ├── PwdUserDAO.xml │ └── UserDao.xml │ ├── static │ ├── common │ │ └── drug.jpeg │ ├── css │ │ ├── layui.css │ │ ├── layui.mobile.css │ │ ├── login.css │ │ ├── modules │ │ │ ├── code.css │ │ │ ├── laydate │ │ │ │ └── default │ │ │ │ │ └── laydate.css │ │ │ └── layer │ │ │ │ └── default │ │ │ │ ├── icon-ext.png │ │ │ │ ├── icon.png │ │ │ │ ├── layer.css │ │ │ │ ├── loading-0.gif │ │ │ │ ├── loading-1.gif │ │ │ │ └── loading-2.gif │ │ └── sts.css │ ├── echarts.min.js │ ├── font │ │ ├── iconfont.eot │ │ ├── iconfont.svg │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ └── iconfont.woff2 │ ├── images │ │ └── face │ │ │ ├── 0.gif │ │ │ ├── 1.gif │ │ │ ├── 10.gif │ │ │ ├── 11.gif │ │ │ ├── 12.gif │ │ │ ├── 13.gif │ │ │ ├── 14.gif │ │ │ ├── 15.gif │ │ │ ├── 16.gif │ │ │ ├── 17.gif │ │ │ ├── 18.gif │ │ │ ├── 19.gif │ │ │ ├── 2.gif │ │ │ ├── 20.gif │ │ │ ├── 21.gif │ │ │ ├── 22.gif │ │ │ ├── 23.gif │ │ │ ├── 24.gif │ │ │ ├── 25.gif │ │ │ ├── 26.gif │ │ │ ├── 27.gif │ │ │ ├── 28.gif │ │ │ ├── 29.gif │ │ │ ├── 3.gif │ │ │ ├── 30.gif │ │ │ ├── 31.gif │ │ │ ├── 32.gif │ │ │ ├── 33.gif │ │ │ ├── 34.gif │ │ │ ├── 35.gif │ │ │ ├── 36.gif │ │ │ ├── 37.gif │ │ │ ├── 38.gif │ │ │ ├── 39.gif │ │ │ ├── 4.gif │ │ │ ├── 40.gif │ │ │ ├── 41.gif │ │ │ ├── 42.gif │ │ │ ├── 43.gif │ │ │ ├── 44.gif │ │ │ ├── 45.gif │ │ │ ├── 46.gif │ │ │ ├── 47.gif │ │ │ ├── 48.gif │ │ │ ├── 49.gif │ │ │ ├── 5.gif │ │ │ ├── 50.gif │ │ │ ├── 51.gif │ │ │ ├── 52.gif │ │ │ ├── 53.gif │ │ │ ├── 54.gif │ │ │ ├── 55.gif │ │ │ ├── 56.gif │ │ │ ├── 57.gif │ │ │ ├── 58.gif │ │ │ ├── 59.gif │ │ │ ├── 6.gif │ │ │ ├── 60.gif │ │ │ ├── 61.gif │ │ │ ├── 62.gif │ │ │ ├── 63.gif │ │ │ ├── 64.gif │ │ │ ├── 65.gif │ │ │ ├── 66.gif │ │ │ ├── 67.gif │ │ │ ├── 68.gif │ │ │ ├── 69.gif │ │ │ ├── 7.gif │ │ │ ├── 70.gif │ │ │ ├── 71.gif │ │ │ ├── 8.gif │ │ │ └── 9.gif │ ├── lay │ │ └── modules │ │ │ ├── carousel.js │ │ │ ├── code.js │ │ │ ├── colorpicker.js │ │ │ ├── element.js │ │ │ ├── flow.js │ │ │ ├── form.js │ │ │ ├── jquery.js │ │ │ ├── laydate.js │ │ │ ├── layedit.js │ │ │ ├── layer.js │ │ │ ├── laypage.js │ │ │ ├── laytpl.js │ │ │ ├── mobile.js │ │ │ ├── rate.js │ │ │ ├── slider.js │ │ │ ├── table.js │ │ │ ├── transfer.js │ │ │ ├── tree.js │ │ │ ├── upload.js │ │ │ └── util.js │ ├── layui.all.js │ └── layui.js │ └── templates │ ├── doctor │ ├── doctors.html │ └── index.html │ ├── drug │ ├── index.html │ ├── index1.html │ ├── monthSta.html │ ├── quarterSta.html │ ├── report.html │ └── stastic.html │ ├── drugadminuser │ └── index.html │ ├── index.html │ ├── login.html │ ├── patient │ ├── index.html │ ├── patients.html │ ├── patients1.html │ ├── patients2.html │ └── selfinfo.html │ ├── prescription │ ├── all.html │ └── patientPresc.html │ └── user │ ├── alluser.html │ └── index.html └── test └── java └── com └── sl └── boot └── admindemo └── AdmindemoApplicationTests.java /.mvn/wrapper/MavenWrapperDownloader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2007-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import java.net.*; 18 | import java.io.*; 19 | import java.nio.channels.*; 20 | import java.util.Properties; 21 | 22 | public class MavenWrapperDownloader { 23 | 24 | private static final String WRAPPER_VERSION = "0.5.6"; 25 | /** 26 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. 27 | */ 28 | private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" 29 | + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; 30 | 31 | /** 32 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to 33 | * use instead of the default one. 34 | */ 35 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH = 36 | ".mvn/wrapper/maven-wrapper.properties"; 37 | 38 | /** 39 | * Path where the maven-wrapper.jar will be saved to. 40 | */ 41 | private static final String MAVEN_WRAPPER_JAR_PATH = 42 | ".mvn/wrapper/maven-wrapper.jar"; 43 | 44 | /** 45 | * Name of the property which should be used to override the default download url for the wrapper. 46 | */ 47 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; 48 | 49 | public static void main(String args[]) { 50 | System.out.println("- Downloader started"); 51 | File baseDirectory = new File(args[0]); 52 | System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); 53 | 54 | // If the maven-wrapper.properties exists, read it and check if it contains a custom 55 | // wrapperUrl parameter. 56 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); 57 | String url = DEFAULT_DOWNLOAD_URL; 58 | if (mavenWrapperPropertyFile.exists()) { 59 | FileInputStream mavenWrapperPropertyFileInputStream = null; 60 | try { 61 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); 62 | Properties mavenWrapperProperties = new Properties(); 63 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); 64 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); 65 | } catch (IOException e) { 66 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); 67 | } finally { 68 | try { 69 | if (mavenWrapperPropertyFileInputStream != null) { 70 | mavenWrapperPropertyFileInputStream.close(); 71 | } 72 | } catch (IOException e) { 73 | // Ignore ... 74 | } 75 | } 76 | } 77 | System.out.println("- Downloading from: " + url); 78 | 79 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); 80 | if (!outputFile.getParentFile().exists()) { 81 | if (!outputFile.getParentFile().mkdirs()) { 82 | System.out.println( 83 | "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); 84 | } 85 | } 86 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); 87 | try { 88 | downloadFileFromURL(url, outputFile); 89 | System.out.println("Done"); 90 | System.exit(0); 91 | } catch (Throwable e) { 92 | System.out.println("- Error downloading"); 93 | e.printStackTrace(); 94 | System.exit(1); 95 | } 96 | } 97 | 98 | private static void downloadFileFromURL(String urlString, File destination) throws Exception { 99 | if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { 100 | String username = System.getenv("MVNW_USERNAME"); 101 | char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); 102 | Authenticator.setDefault(new Authenticator() { 103 | @Override 104 | protected PasswordAuthentication getPasswordAuthentication() { 105 | return new PasswordAuthentication(username, password); 106 | } 107 | }); 108 | } 109 | URL website = new URL(urlString); 110 | ReadableByteChannel rbc; 111 | rbc = Channels.newChannel(website.openStream()); 112 | FileOutputStream fos = new FileOutputStream(destination); 113 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); 114 | fos.close(); 115 | rbc.close(); 116 | } 117 | 118 | } 119 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MMS 毕设 2 | ## Spring boot+SpringMVC+Mybatis+MySQL+Layui+EasyCode+Swagger+Echarts 3 | ## 毕业设计-医药管理系统 4 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.2.4.RELEASE 9 | 10 | 11 | com.sl.boot 12 | admindemo 13 | 0.0.1-SNAPSHOT 14 | admindemo 15 | Demo project for Spring Boot 16 | 17 | 18 | 1.8 19 | 20 | 21 | 22 | 23 | org.springframework.boot 24 | spring-boot-starter-freemarker 25 | 26 | 27 | org.springframework.boot 28 | spring-boot-starter-jdbc 29 | 30 | 31 | org.springframework.boot 32 | spring-boot-starter-web 33 | 34 | 35 | org.mybatis.spring.boot 36 | mybatis-spring-boot-starter 37 | 2.1.1 38 | 39 | 40 | com.github.pagehelper 41 | pagehelper-spring-boot-starter 42 | 1.2.10 43 | 44 | 45 | 46 | org.springframework.boot 47 | spring-boot-devtools 48 | runtime 49 | true 50 | 51 | 52 | mysql 53 | mysql-connector-java 54 | runtime 55 | 56 | 57 | io.springfox 58 | springfox-swagger2 59 | 2.8.0 60 | 61 | 62 | io.springfox 63 | springfox-swagger-ui 64 | 2.8.0 65 | 66 | 67 | org.projectlombok 68 | lombok 69 | true 70 | 71 | 72 | log4j 73 | log4j 74 | 1.2.16 75 | 76 | 77 | org.springframework.boot 78 | spring-boot-starter-test 79 | test 80 | 81 | 82 | org.junit.vintage 83 | junit-vintage-engine 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | org.springframework.boot 93 | spring-boot-maven-plugin 94 | 95 | 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/AdmindemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import springfox.documentation.swagger2.annotations.EnableSwagger2; 7 | 8 | 9 | @MapperScan("com.sl.boot.admindemo.dao") 10 | @SpringBootApplication 11 | @EnableSwagger2 12 | public class AdmindemoApplication { 13 | 14 | public static void main(String[] args) { 15 | SpringApplication.run(AdmindemoApplication.class, args); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/controller/ActionRecordController.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.controller; 2 | 3 | 4 | import com.sl.boot.admindemo.entity.ActionRecord; 5 | import com.sl.boot.admindemo.service.ActionRecordService; 6 | import com.sl.boot.admindemo.vo.resp.BaseResp; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.web.bind.annotation.GetMapping; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RequestParam; 11 | import org.springframework.web.bind.annotation.RestController; 12 | 13 | import java.util.List; 14 | 15 | @RestController 16 | @RequestMapping(value = "/actionRecord") 17 | public class ActionRecordController { 18 | 19 | @Autowired 20 | ActionRecordService actionRecordService; 21 | 22 | 23 | @GetMapping(value = "/all") 24 | public BaseResp getAllRecord(@RequestParam(value = "page") Integer page, @RequestParam(value = "limit") Integer limit) { 25 | BaseResp baseResp = new BaseResp(); 26 | List actionRecords = actionRecordService.queryAllRecord(page, limit, baseResp); 27 | baseResp.setData(actionRecords); 28 | return baseResp; 29 | } 30 | 31 | @GetMapping(value = "/today") 32 | public BaseResp getTodayRecord(@RequestParam(value = "page") Integer page, @RequestParam(value = "limit") Integer limit) { 33 | BaseResp baseResp = new BaseResp(); 34 | List actionRecords = actionRecordService.queryTodayRecord(page, limit, baseResp); 35 | baseResp.setData(actionRecords); 36 | return baseResp; 37 | } 38 | 39 | @GetMapping(value = "/month") 40 | public BaseResp getMonthRecord(@RequestParam(value = "page") Integer page, @RequestParam(value = "limit") Integer limit) { 41 | BaseResp baseResp = new BaseResp(); 42 | List actionRecords = actionRecordService.queryMonthRecord(page, limit, baseResp); 43 | baseResp.setData(actionRecords); 44 | return baseResp; 45 | } 46 | 47 | @GetMapping(value = "/season") 48 | public BaseResp getSeasonRecord(@RequestParam(value = "page") Integer page, @RequestParam(value = "limit") Integer limit) { 49 | BaseResp baseResp = new BaseResp(); 50 | List actionRecords = actionRecordService.querySeasonRecord(page, limit, baseResp); 51 | baseResp.setData(actionRecords); 52 | return baseResp; 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/controller/AdminUserController.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.controller; 2 | 3 | 4 | import com.sl.boot.admindemo.dao.AdminUserDAO; 5 | import com.sl.boot.admindemo.dto.UserDTO; 6 | import com.sl.boot.admindemo.service.AdminUserService; 7 | import com.sl.boot.admindemo.vo.UserVo; 8 | import com.sl.boot.admindemo.vo.resp.BaseResp; 9 | import lombok.extern.slf4j.Slf4j; 10 | import org.springframework.beans.factory.annotation.Autowired; 11 | import org.springframework.web.bind.annotation.*; 12 | 13 | import java.util.List; 14 | 15 | @Slf4j 16 | @RestController 17 | @RequestMapping(value = "/adminUser") 18 | public class AdminUserController { 19 | 20 | 21 | @Autowired 22 | private AdminUserService adminUserService; 23 | 24 | @PostMapping(value = "/addOne") 25 | public BaseResp addOnerUser(@RequestBody UserVo userVo) { 26 | adminUserService.addOneUser(userVo.getUserName(), userVo.getPassWord(), userVo.getType()); 27 | return new BaseResp(); 28 | } 29 | 30 | @PostMapping(value = "/update") 31 | public BaseResp updateUser(@RequestBody UserVo userVo) { 32 | log.info(userVo.toString()); 33 | adminUserService.updateOne(userVo.getId(), userVo.getUserName(), userVo.getPassWord(), userVo.getType()); 34 | return new BaseResp(); 35 | 36 | } 37 | 38 | @PostMapping(value = "/delOneUser") 39 | public BaseResp delOnerUser(@RequestBody UserDTO userDTO) { 40 | UserVo userVo = new UserVo(); 41 | userVo.setUserName(userDTO.getUserName()); 42 | if (userDTO.getUserType().equals("管理员")) { 43 | userVo.setType(1); 44 | } else if (userDTO.getUserType().equals("药库管理员")) { 45 | userVo.setType(2); 46 | } else if (userDTO.getUserType().equals("医生")) { 47 | userVo.setType(3); 48 | } else if (userDTO.getUserType().equals("病患")) { 49 | userVo.setType(4); 50 | } 51 | adminUserService.delUser(userVo.getUserName(), userVo.getType()); 52 | return new BaseResp(); 53 | } 54 | 55 | @GetMapping(value = "/all") 56 | public BaseResp getAllUser(@RequestParam(value = "page") Integer page, @RequestParam(value = "limit") Integer limit) { 57 | BaseResp baseResp = new BaseResp(); 58 | List userDTOS = adminUserService.queryAllUser(page, limit, baseResp); 59 | baseResp.setData(userDTOS); 60 | return baseResp; 61 | } 62 | 63 | 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/controller/DoctorController.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.controller; 2 | 3 | import com.sl.boot.admindemo.entity.Doctor; 4 | import com.sl.boot.admindemo.service.DoctorService; 5 | import com.sl.boot.admindemo.vo.resp.BaseResp; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.web.bind.annotation.*; 8 | 9 | import java.util.List; 10 | 11 | @RestController 12 | @RequestMapping("/doctor") 13 | public class DoctorController { 14 | 15 | @Autowired 16 | private DoctorService doctorService; 17 | 18 | 19 | @GetMapping(value = "/all") 20 | public BaseResp alldoctors(@RequestParam(value = "page") Integer page, @RequestParam(value = "limit") Integer limit) { 21 | BaseResp baseResp = new BaseResp(); 22 | List doctors = doctorService.allDoctors(page, limit, baseResp); 23 | baseResp.setData(doctors); 24 | return baseResp; 25 | } 26 | 27 | @PostMapping(value = "/update") 28 | public BaseResp update(@RequestBody Doctor doctor) { 29 | return new BaseResp(doctorService.update(doctor)); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/controller/DrugAdminUserController.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.controller; 2 | 3 | 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | @RestController 8 | @RequestMapping("/drugAdminUser") 9 | public class DrugAdminUserController { 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/controller/DrugController.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.controller; 2 | 3 | 4 | import com.sl.boot.admindemo.entity.Drug; 5 | import com.sl.boot.admindemo.service.DrugService; 6 | import com.sl.boot.admindemo.vo.DrugVo; 7 | import com.sl.boot.admindemo.vo.resp.BaseResp; 8 | import com.sl.boot.admindemo.vo.resp.StaRep; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.web.bind.annotation.*; 11 | 12 | import java.util.HashMap; 13 | import java.util.List; 14 | 15 | @RestController 16 | @RequestMapping("/drug") 17 | public class DrugController { 18 | 19 | @Autowired 20 | private DrugService drugService; 21 | 22 | 23 | @PostMapping(value = "/add") 24 | public BaseResp addOneDrug(@RequestBody Drug drug) { 25 | 26 | return new BaseResp(drugService.addOneDrug(drug)); 27 | } 28 | 29 | @GetMapping(value = "all") 30 | public BaseResp getAllDrug(@RequestParam(value = "page") Integer page, @RequestParam(value = "limit") Integer limit) { 31 | BaseResp baseResp = new BaseResp(); 32 | List drugs = drugService.queryAllDrug(page, limit, baseResp); 33 | baseResp.setData(drugs); 34 | return baseResp; 35 | } 36 | 37 | @PostMapping(value = "/del") 38 | public BaseResp delOneDrug(@RequestBody HashMap map) { 39 | return new BaseResp(drugService.delOneDrug(Long.parseLong(map.get("id")))); 40 | } 41 | 42 | @PostMapping(value = "/incr") 43 | public BaseResp incrAmount(@RequestBody DrugVo drugVo) { 44 | return new BaseResp(drugService.incrDrugAmount(drugVo.getDrugName(), drugVo.getAmount())); 45 | } 46 | 47 | @PostMapping(value = "/desc") 48 | public BaseResp descAmount(@RequestBody DrugVo drugVo) { 49 | return new BaseResp(drugService.descrDrugAmount(drugVo.getDrugName(), drugVo.getAmount())); 50 | } 51 | 52 | @GetMapping(value = "/todayS") 53 | public StaRep todayS() { 54 | return drugService.todaySta(); 55 | 56 | } 57 | 58 | @GetMapping(value = "/monthS") 59 | public StaRep monthS() { 60 | return drugService.monthSta(); 61 | 62 | } 63 | 64 | @GetMapping(value = "/quarterS") 65 | public StaRep quarterS() { 66 | return drugService.quarterSta(); 67 | 68 | } 69 | 70 | @GetMapping(value = "/search") 71 | public BaseResp search(@RequestParam(value = "drugName") String drugName) { 72 | return new BaseResp(drugService.queryDrug(drugName)); 73 | 74 | } 75 | 76 | } 77 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/controller/HomeController.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.controller; 2 | 3 | 4 | import org.springframework.stereotype.Controller; 5 | import org.springframework.web.bind.annotation.GetMapping; 6 | import org.springframework.web.bind.annotation.RequestMapping; 7 | import org.springframework.web.bind.annotation.RestController; 8 | 9 | @Controller 10 | @RequestMapping 11 | public class HomeController { 12 | 13 | 14 | @RequestMapping(value = "/") 15 | public String getIndex() { 16 | return "login"; 17 | } 18 | 19 | 20 | @RequestMapping("/drug/index") 21 | public String drugindex() { 22 | return "drug/index"; 23 | } 24 | 25 | @RequestMapping("/drug/index1") 26 | public String drugindex1() { 27 | return "drug/index1"; 28 | } 29 | 30 | @RequestMapping("/patient/selfinfo") 31 | public String patientinfo() { 32 | return "patient/selfinfo"; 33 | } 34 | 35 | @RequestMapping("/patient/index") 36 | public String patientindex() { 37 | return "patient/index"; 38 | } 39 | 40 | @RequestMapping("/drug/report") 41 | public String drugreport() { 42 | return "drug/report"; 43 | } 44 | 45 | @RequestMapping("/index") 46 | public String toindex() { 47 | return "index"; 48 | } 49 | 50 | @RequestMapping("/logout") 51 | public String logout() { 52 | return "login"; 53 | } 54 | 55 | @RequestMapping("/user/alluser") 56 | public String alluser() { 57 | return "user/alluser"; 58 | } 59 | 60 | @RequestMapping("/drugadminuser/index") 61 | public String drugadminuserindex() { 62 | return "drugadminuser/index"; 63 | } 64 | 65 | @RequestMapping("/patient/patients") 66 | public String patients() { 67 | return "patient/patients"; 68 | } 69 | 70 | @RequestMapping("/patient/patients1") 71 | public String patients1() { 72 | return "patient/patients1"; 73 | } 74 | 75 | 76 | @RequestMapping("/patient/patients2") 77 | public String patients2() { 78 | return "patient/patients2"; 79 | } 80 | 81 | 82 | @RequestMapping("/doctor/index") 83 | public String docindex() { 84 | return "doctor/index"; 85 | } 86 | 87 | @RequestMapping("/doctor/doctors") 88 | public String docall() { 89 | return "doctor/doctors"; 90 | } 91 | 92 | @RequestMapping("/prescription/all") 93 | public String preAll() { 94 | return "prescription/all"; 95 | } 96 | 97 | @RequestMapping("/prescription/patientPresc") 98 | public String pp() { 99 | return "prescription/patientPresc"; 100 | } 101 | 102 | @RequestMapping("/drug/stastic") 103 | public String sts() { 104 | return "drug/stastic"; 105 | } 106 | 107 | @RequestMapping("/drug/monthSta") 108 | public String ms() { 109 | return "drug/monthSta"; 110 | } 111 | 112 | @RequestMapping("/drug/quarterSta") 113 | public String qs() { 114 | return "drug/quarterSta"; 115 | } 116 | 117 | 118 | } 119 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/controller/LoginController.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.controller; 2 | 3 | 4 | import com.sl.boot.admindemo.dao.PwdUserDAO; 5 | import com.sl.boot.admindemo.entity.PwdUser; 6 | import com.sl.boot.admindemo.entity.PwdUserExample; 7 | import com.sl.boot.admindemo.vo.LoginVo; 8 | import com.sl.boot.admindemo.vo.resp.LoginResp; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.web.bind.annotation.PostMapping; 11 | import org.springframework.web.bind.annotation.RequestBody; 12 | import org.springframework.web.bind.annotation.RequestMapping; 13 | import org.springframework.web.bind.annotation.RestController; 14 | 15 | import java.util.List; 16 | 17 | @RestController 18 | public class LoginController { 19 | 20 | @Autowired 21 | private PwdUserDAO pwdUserDAO; 22 | 23 | 24 | @PostMapping("/login") 25 | public LoginResp login(@RequestBody LoginVo loginVo) { 26 | 27 | LoginResp loginResp = new LoginResp(); 28 | 29 | PwdUserExample pwdUserExample = new PwdUserExample(); 30 | pwdUserExample.createCriteria().andUserNameEqualTo(loginVo.getUsername()).andPasswordEqualTo(loginVo.getPassword()); 31 | List pwdUsers = pwdUserDAO.selectByExample(pwdUserExample); 32 | if (pwdUsers.size() == 0) { 33 | return new LoginResp(404, "用户名或密码错误"); 34 | } 35 | 36 | PwdUser pwdUser = pwdUsers.get(0); 37 | if (!loginVo.getRole().equals(pwdUser.getUserType().toString())) { 38 | return new LoginResp(424, "用户名或密码错误"); 39 | } 40 | if (loginVo.getPassword().equals(pwdUser.getPassword())) { 41 | loginResp.setType(pwdUser.getUserType()); 42 | } 43 | return loginResp; 44 | 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/controller/PatientController.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.controller; 2 | 3 | 4 | import com.sl.boot.admindemo.dto.PatientDTO; 5 | import com.sl.boot.admindemo.entity.Patient; 6 | import com.sl.boot.admindemo.service.PatientService; 7 | import com.sl.boot.admindemo.vo.resp.BaseResp; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.web.bind.annotation.*; 10 | 11 | import java.util.List; 12 | 13 | @RestController 14 | @RequestMapping("/patient") 15 | public class PatientController { 16 | 17 | 18 | @Autowired 19 | private PatientService patientService; 20 | 21 | 22 | @GetMapping(value = "/all") 23 | public BaseResp getAllPatient(@RequestParam(value = "page") Integer page, @RequestParam(value = "limit") Integer limit) { 24 | 25 | BaseResp baseResp = new BaseResp(); 26 | List patients = patientService.queryAllPatient(page, limit, baseResp); 27 | baseResp.setData(patients); 28 | return baseResp; 29 | } 30 | 31 | @GetMapping(value = "/getPatient") 32 | public BaseResp getOnePatient(@RequestParam(value = "username") String username) { 33 | 34 | return new BaseResp(patientService.queryOne(username)); 35 | } 36 | 37 | @PostMapping(value = "update") 38 | public BaseResp update(@RequestBody Patient patient, @RequestParam(value = "patientName") String patientName) { 39 | return new BaseResp(patientService.updateOne(patient, patientName)); 40 | } 41 | 42 | @PostMapping(value = "add") 43 | public BaseResp add(@RequestBody Patient patient) { 44 | return new BaseResp(patientService.addOne(patient)); 45 | } 46 | 47 | @GetMapping(value = "/search") 48 | public BaseResp search(@RequestParam(value = "patientName") String patientName) { 49 | return new BaseResp(patientService.search(patientName)); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/controller/PrescriptionController.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.controller; 2 | 3 | 4 | import com.sl.boot.admindemo.entity.Prescription; 5 | import com.sl.boot.admindemo.service.PrescriptionService; 6 | import com.sl.boot.admindemo.vo.PrescriptionVo; 7 | import com.sl.boot.admindemo.vo.resp.BaseResp; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.web.bind.annotation.*; 10 | 11 | import java.util.List; 12 | 13 | @RestController 14 | @RequestMapping("/prescription") 15 | public class PrescriptionController { 16 | 17 | @Autowired 18 | private PrescriptionService prescriptionService; 19 | 20 | @GetMapping("/allPre") 21 | public BaseResp getAll(@RequestParam(value = "page") Integer page, @RequestParam(value = "limit") Integer limit) { 22 | BaseResp baseResp = new BaseResp(); 23 | List prescriptions = prescriptionService.queryAll(page, limit, baseResp); 24 | baseResp.setData(prescriptions); 25 | return baseResp; 26 | } 27 | 28 | @GetMapping("/patients") 29 | public BaseResp getByPatientName(@RequestParam(value = "patientname") String patientName) { 30 | 31 | return new BaseResp(prescriptionService.getByPname(patientName)); 32 | } 33 | 34 | @PostMapping("/create") 35 | public BaseResp createOne(@RequestBody Prescription prescription, @RequestParam(value = "username") String username) { 36 | return new BaseResp(prescriptionService.createOne(prescription, username)); 37 | } 38 | 39 | @PostMapping("/update") 40 | public BaseResp updateStatus(@RequestBody Prescription prescription) { 41 | return new BaseResp(prescriptionService.update(prescription)); 42 | } 43 | 44 | @PostMapping("/delete") 45 | public BaseResp deletePre(@RequestBody PrescriptionVo prescriptionVo) { 46 | return new BaseResp(prescriptionService.delOne(prescriptionVo.getId())); 47 | } 48 | 49 | @PostMapping("/settle") 50 | public BaseResp settle(@RequestBody PrescriptionVo prescriptionVo) { 51 | return new BaseResp(prescriptionService.settle(prescriptionVo.getId())); 52 | } 53 | 54 | 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/dao/ActionRecordDAO.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.dao; 2 | 3 | import com.sl.boot.admindemo.entity.ActionRecord; 4 | import com.sl.boot.admindemo.entity.ActionRecordExample; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.stereotype.Repository; 7 | 8 | /** 9 | * ActionRecordDAO继承基类 10 | */ 11 | @Mapper 12 | @Repository 13 | public interface ActionRecordDAO extends MyBatisBaseDao { 14 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/dao/AdminUserDAO.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.dao; 2 | 3 | import com.sl.boot.admindemo.entity.AdminUser; 4 | import com.sl.boot.admindemo.entity.AdminUserExample; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.stereotype.Repository; 7 | 8 | /** 9 | * AdminUserDAO继承基类 10 | */ 11 | @Mapper 12 | @Repository 13 | public interface AdminUserDAO extends MyBatisBaseDao { 14 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/dao/DoctorDAO.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.dao; 2 | 3 | import com.sl.boot.admindemo.entity.Doctor; 4 | import com.sl.boot.admindemo.entity.DoctorExample; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.stereotype.Repository; 7 | 8 | /** 9 | * DoctorDAO继承基类 10 | */ 11 | @Mapper 12 | @Repository 13 | public interface DoctorDAO extends MyBatisBaseDao { 14 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/dao/DrugAdminUserDAO.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.dao; 2 | 3 | import com.sl.boot.admindemo.entity.DrugAdminUser; 4 | import com.sl.boot.admindemo.entity.DrugAdminUserExample; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.stereotype.Repository; 7 | 8 | /** 9 | * DrugAdminUserDAO继承基类 10 | */ 11 | @Mapper 12 | @Repository 13 | public interface DrugAdminUserDAO extends MyBatisBaseDao { 14 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/dao/DrugDAO.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.dao; 2 | 3 | import com.sl.boot.admindemo.entity.Drug; 4 | import com.sl.boot.admindemo.entity.DrugExample; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.stereotype.Repository; 7 | 8 | /** 9 | * DrugDAO继承基类 10 | */ 11 | @Mapper 12 | @Repository 13 | public interface DrugDAO extends MyBatisBaseDao { 14 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/dao/MyBatisBaseDao.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.dao; 2 | 3 | import org.apache.ibatis.annotations.Param; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | /** 9 | * DAO公共基类,由MybatisGenerator自动生成请勿修改 10 | * 11 | * @param The Model Class 这里是泛型不是Model类 12 | * @param The Primary Key Class 如果是无主键,则可以用Model来跳过,如果是多主键则是Key类 13 | * @param The Example Class 14 | */ 15 | public interface MyBatisBaseDao { 16 | long countByExample(E example); 17 | 18 | int deleteByExample(E example); 19 | 20 | int deleteByPrimaryKey(PK id); 21 | 22 | int insert(Model record); 23 | 24 | int insertSelective(Model record); 25 | 26 | List selectByExample(E example); 27 | 28 | Model selectByPrimaryKey(PK id); 29 | 30 | int updateByExampleSelective(@Param("record") Model record, @Param("example") E example); 31 | 32 | int updateByExample(@Param("record") Model record, @Param("example") E example); 33 | 34 | int updateByPrimaryKeySelective(Model record); 35 | 36 | int updateByPrimaryKey(Model record); 37 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/dao/PatientDAO.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.dao; 2 | 3 | import com.sl.boot.admindemo.entity.Patient; 4 | import com.sl.boot.admindemo.entity.PatientExample; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.stereotype.Repository; 7 | 8 | /** 9 | * PatientDAO继承基类 10 | */ 11 | @Mapper 12 | @Repository 13 | public interface PatientDAO extends MyBatisBaseDao { 14 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/dao/PrescriptionDAO.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.dao; 2 | 3 | import com.sl.boot.admindemo.entity.Prescription; 4 | import com.sl.boot.admindemo.entity.PrescriptionExample; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.stereotype.Repository; 7 | 8 | /** 9 | * PrescriptionDAO继承基类 10 | */ 11 | @Mapper 12 | @Repository 13 | public interface PrescriptionDAO extends MyBatisBaseDao { 14 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/dao/PwdUserDAO.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.dao; 2 | 3 | import com.sl.boot.admindemo.entity.PwdUser; 4 | import com.sl.boot.admindemo.entity.PwdUserExample; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.springframework.stereotype.Repository; 7 | 8 | /** 9 | * PwdUserDAO继承基类 10 | */ 11 | @Mapper 12 | @Repository 13 | public interface PwdUserDAO extends MyBatisBaseDao { 14 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/dao/UserDao.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.dao; 2 | 3 | import com.sl.boot.admindemo.entity.User; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * (User)表数据库访问层 11 | * 12 | * @author s4n 13 | * @since 2020-02-27 22:20:15 14 | */ 15 | 16 | @Mapper 17 | public interface UserDao { 18 | 19 | /** 20 | * 通过ID查询单条数据 21 | * 22 | * @param uid 主键 23 | * @return 实例对象 24 | */ 25 | User queryById(Integer uid); 26 | 27 | /** 28 | * 查询指定行数据 29 | * 30 | * @param offset 查询起始位置 31 | * @param limit 查询条数 32 | * @return 对象列表 33 | */ 34 | List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); 35 | 36 | 37 | /** 38 | * 通过实体作为筛选条件查询 39 | * 40 | * @param user 实例对象 41 | * @return 对象列表 42 | */ 43 | List queryAll(User user); 44 | 45 | /** 46 | * 新增数据 47 | * 48 | * @param user 实例对象 49 | * @return 影响行数 50 | */ 51 | int insert(User user); 52 | 53 | /** 54 | * 修改数据 55 | * 56 | * @param user 实例对象 57 | * @return 影响行数 58 | */ 59 | int update(User user); 60 | 61 | /** 62 | * 通过主键删除数据 63 | * 64 | * @param uid 主键 65 | * @return 影响行数 66 | */ 67 | int deleteById(Integer uid); 68 | 69 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/dto/PatientDTO.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.dto; 2 | 3 | 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import lombok.ToString; 7 | 8 | import java.util.Date; 9 | 10 | @Data 11 | @ToString 12 | @EqualsAndHashCode 13 | public class PatientDTO { 14 | /** 15 | * 主键 16 | */ 17 | private Long id; 18 | 19 | /** 20 | * 账号 21 | */ 22 | private String patientName; 23 | 24 | /** 25 | * 添加时间 26 | */ 27 | private String addTime; 28 | 29 | /** 30 | * 密码 31 | */ 32 | private String password; 33 | 34 | /** 35 | * 患病 36 | */ 37 | private String disease; 38 | 39 | /** 40 | * 年龄 41 | */ 42 | private String age; 43 | 44 | /** 45 | * 性别 46 | */ 47 | private String gender; 48 | 49 | 50 | /** 51 | * 患者真实姓名 52 | */ 53 | private String anoName; 54 | 55 | /** 56 | * 身份证号码 57 | */ 58 | private String idCard; 59 | 60 | /** 61 | * 医疗卡号 62 | */ 63 | private String medicalId; 64 | 65 | private String description; 66 | private String usage; 67 | 68 | private Integer preId; 69 | 70 | private String status; 71 | 72 | private String dname; 73 | 74 | private String ptype; 75 | } 76 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/dto/UserDTO.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.dto; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class UserDTO { 7 | /** 8 | * 主键 9 | */ 10 | private Integer id; 11 | 12 | /** 13 | * 用户名 14 | */ 15 | private String userName; 16 | 17 | /** 18 | * 密码 19 | */ 20 | private String password; 21 | 22 | /** 23 | * 类型 1-管理员 2-药库管理员 3-医生 4-病患 24 | */ 25 | private String userType; 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/entity/ActionRecord.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.entity; 2 | 3 | import java.io.Serializable; 4 | import java.util.Date; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author 操作记录 9 | */ 10 | @Data 11 | public class ActionRecord implements Serializable { 12 | /** 13 | * 主键 14 | */ 15 | private Long id; 16 | 17 | /** 18 | * 药品ID 19 | */ 20 | private Long drugId; 21 | 22 | /** 23 | * 药品名称 24 | */ 25 | private String drugName; 26 | 27 | /** 28 | * 操作 29 | */ 30 | private String action; 31 | 32 | /** 33 | * 操作时间 34 | */ 35 | private Date actionTime; 36 | 37 | /** 38 | * 操作数量 39 | */ 40 | private Integer amount; 41 | 42 | private static final long serialVersionUID = 1L; 43 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/entity/AdminUser.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.entity; 2 | 3 | import java.io.Serializable; 4 | import java.util.Date; 5 | 6 | import lombok.Data; 7 | 8 | /** 9 | * @author 10 | */ 11 | @Data 12 | public class AdminUser implements Serializable { 13 | /** 14 | * 主键 15 | */ 16 | private Long id; 17 | 18 | /** 19 | * 账号 20 | */ 21 | private String name; 22 | 23 | /** 24 | * 添加时间 25 | */ 26 | private Date addTime; 27 | 28 | private static final long serialVersionUID = 1L; 29 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/entity/Doctor.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.entity; 2 | 3 | import java.io.Serializable; 4 | import java.util.Date; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author 医生 9 | */ 10 | @Data 11 | public class Doctor implements Serializable { 12 | private Integer id; 13 | 14 | private String doctorname; 15 | 16 | private Date inserttime; 17 | 18 | /** 19 | * 医生姓名 20 | */ 21 | private String anoName; 22 | 23 | /** 24 | * 身份证号码 25 | */ 26 | private String idCard; 27 | 28 | /** 29 | * 手机号码 30 | */ 31 | private String phoneNum; 32 | 33 | /** 34 | * 科室 35 | */ 36 | private String section; 37 | 38 | /** 39 | * 职称 40 | */ 41 | private String tTitle; 42 | 43 | private static final long serialVersionUID = 1L; 44 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/entity/Drug.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.entity; 2 | 3 | import java.io.Serializable; 4 | import java.util.Date; 5 | 6 | import lombok.Data; 7 | 8 | /** 9 | * @author 药品 10 | */ 11 | @Data 12 | public class Drug implements Serializable { 13 | /** 14 | * 主键 15 | */ 16 | private Long id; 17 | 18 | /** 19 | * 药品名称 20 | */ 21 | private String drugName; 22 | 23 | /** 24 | * 药品数量 25 | */ 26 | private Long drugCount; 27 | 28 | /** 29 | * 生产厂家 30 | */ 31 | private String factory; 32 | 33 | /** 34 | * 价格 35 | */ 36 | private Long price; 37 | 38 | /** 39 | * 生产日期 40 | */ 41 | private Date productionTime; 42 | 43 | /** 44 | * 药品功能 45 | */ 46 | private String drugFunction; 47 | 48 | /** 49 | * 药品规格 50 | */ 51 | private String size; 52 | 53 | private static final long serialVersionUID = 1L; 54 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/entity/DrugAdminUser.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.entity; 2 | 3 | import java.io.Serializable; 4 | import java.util.Date; 5 | 6 | import lombok.Data; 7 | 8 | /** 9 | * @author 药库管理员 10 | */ 11 | @Data 12 | public class DrugAdminUser implements Serializable { 13 | private Integer id; 14 | 15 | /** 16 | * 账号 17 | */ 18 | private String drugAdminUsername; 19 | 20 | /** 21 | * 添加时间 22 | */ 23 | private Date inserttime; 24 | 25 | private static final long serialVersionUID = 1L; 26 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/entity/Patient.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.entity; 2 | 3 | import java.io.Serializable; 4 | import java.util.Date; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author 9 | */ 10 | @Data 11 | public class Patient implements Serializable { 12 | /** 13 | * 主键 14 | */ 15 | private Long id; 16 | 17 | /** 18 | * 账号 19 | */ 20 | private String patientName; 21 | 22 | /** 23 | * 添加时间 24 | */ 25 | private Date addTime; 26 | 27 | /** 28 | * 密码 29 | */ 30 | private String password; 31 | 32 | /** 33 | * 患病 34 | */ 35 | private String disease; 36 | 37 | /** 38 | * 年龄 39 | */ 40 | private String age; 41 | 42 | /** 43 | * 性别 44 | */ 45 | private String gender; 46 | 47 | /** 48 | * 药方ID 49 | */ 50 | private Integer method; 51 | 52 | /** 53 | * 属于哪个医生 54 | */ 55 | private Long belongToDoctorId; 56 | 57 | /** 58 | * 患者真实姓名 59 | */ 60 | private String anoName; 61 | 62 | /** 63 | * 身份证号码 64 | */ 65 | private String idCard; 66 | 67 | /** 68 | * 医疗卡号 69 | */ 70 | private String medicalId; 71 | 72 | /** 73 | * 住院或门诊 74 | */ 75 | private String ptype; 76 | 77 | private static final long serialVersionUID = 1L; 78 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/entity/Prescription.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.entity; 2 | 3 | import java.io.Serializable; 4 | import java.util.Date; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author 药方 9 | */ 10 | @Data 11 | public class Prescription implements Serializable { 12 | private Integer id; 13 | 14 | /** 15 | * 药方说明 16 | */ 17 | private String description; 18 | 19 | /** 20 | * 用法 21 | */ 22 | private String usage; 23 | 24 | /** 25 | * 药方状态 26 | */ 27 | private String status; 28 | 29 | /** 30 | * 创建日期 31 | */ 32 | private Date createTime; 33 | 34 | /** 35 | * 属于哪个患者 36 | */ 37 | private String belongToPatientName; 38 | 39 | /** 40 | * 开局药方的医生的姓名 41 | */ 42 | private String belongToDoctorName; 43 | 44 | /** 45 | * 医生ID 46 | */ 47 | private Integer did; 48 | 49 | private static final long serialVersionUID = 1L; 50 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/entity/PwdUser.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.entity; 2 | 3 | import java.io.Serializable; 4 | 5 | import lombok.Data; 6 | 7 | /** 8 | * @author 9 | */ 10 | @Data 11 | public class PwdUser implements Serializable { 12 | /** 13 | * 主键 14 | */ 15 | private Integer id; 16 | 17 | /** 18 | * 用户名 19 | */ 20 | private String userName; 21 | 22 | /** 23 | * 密码 24 | */ 25 | private String password; 26 | 27 | /** 28 | * 类型 1-管理员 2-药库管理员 3-医生 4-病患 29 | */ 30 | private Integer userType; 31 | 32 | private static final long serialVersionUID = 1L; 33 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/entity/User.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.entity; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * (User)实体类 9 | * 10 | * @author s4n 11 | * @since 2020-02-27 22:20:14 12 | */ 13 | public class User implements Serializable { 14 | private static final long serialVersionUID = 900301730436192269L; 15 | /** 16 | * 用户ID 17 | */ 18 | private Integer uid; 19 | /** 20 | * 姓名 21 | */ 22 | private String name; 23 | /** 24 | * 性别 25 | */ 26 | private String gender; 27 | /** 28 | * 年龄 29 | */ 30 | private Integer age; 31 | 32 | 33 | public Integer getUid() { 34 | return uid; 35 | } 36 | 37 | public void setUid(Integer uid) { 38 | this.uid = uid; 39 | } 40 | 41 | public String getName() { 42 | return name; 43 | } 44 | 45 | public void setName(String name) { 46 | this.name = name; 47 | } 48 | 49 | public String getGender() { 50 | return gender; 51 | } 52 | 53 | public void setGender(String gender) { 54 | this.gender = gender; 55 | } 56 | 57 | public Integer getAge() { 58 | return age; 59 | } 60 | 61 | public void setAge(Integer age) { 62 | this.age = age; 63 | } 64 | 65 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/enums/ResponseEnum.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.enums; 2 | 3 | public enum ResponseEnum { 4 | 5 | OK(200, "操作成功"), 6 | REQUEST_SUCCEED(200, "请求成功"), 7 | AUTH_CODE_ERROR(201, "验证码错误"), 8 | ACCOUNTS_EXIST(203, "帐号已存在"), 9 | ACCOUNTS_OR_PWD_ERROR(204, "账号或密码错误"), 10 | ACCOUNTS_NOT_EXIST(205, "帐号不存在,请先注册"), 11 | TOKEN_ERROR(402, "Token 错误"), 12 | OBJECT_NULL(404, "资源不存在"), 13 | HTTP_METHOD_ERROR(405, "HTTP Method错误"), 14 | HTTP_MEDIA_TYPE_ERROR(415, "HTTP Method错误"), 15 | SYSTEM_ERROR(500, "系统错误"), 16 | QUERY_PARAM_INVALID(400, "请求的业务参数不合法"), 17 | 18 | SYSTEM_BUSY_PLEASE_TRY_AGAIN_LATER(-1, "系统繁忙,请稍后重试"), 19 | 20 | SIG_ERROR(4001, "签名错误"), 21 | 22 | POST_PARAM_INVALID(4003, "POST参数不合法,缺少必须的:OperatorID,sig,TimeStamp,Data,Seq五个参数"), 23 | 24 | 25 | USERNAME_ERROR(5002, "用户名错误"), 26 | PWD_ERROR(5003, "密码错误"), 27 | STATUS_ERROR(5004, "帐号已禁用"); 28 | 29 | private final int value; 30 | 31 | private final String reasonPhrase; 32 | 33 | ResponseEnum(int value, String reasonPhrase) { 34 | this.value = value; 35 | this.reasonPhrase = reasonPhrase; 36 | } 37 | 38 | public int value() { 39 | return this.value; 40 | } 41 | 42 | public String getReasonPhrase() { 43 | return this.reasonPhrase; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/ActionRecordService.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service; 2 | 3 | import com.sl.boot.admindemo.entity.ActionRecord; 4 | import com.sl.boot.admindemo.vo.resp.BaseResp; 5 | 6 | import java.util.List; 7 | 8 | public interface ActionRecordService { 9 | 10 | 11 | List queryAllRecord(Integer page, Integer limit, BaseResp baseResp); 12 | 13 | List queryTodayRecord(Integer page, Integer limit, BaseResp baseResp); 14 | 15 | List queryMonthRecord(Integer page, Integer limit, BaseResp baseResp); 16 | 17 | List querySeasonRecord(Integer page, Integer limit, BaseResp baseResp); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/AdminUserService.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service; 2 | 3 | import com.sl.boot.admindemo.dto.UserDTO; 4 | import com.sl.boot.admindemo.entity.AdminUser; 5 | import com.sl.boot.admindemo.entity.PwdUser; 6 | import com.sl.boot.admindemo.vo.resp.BaseResp; 7 | 8 | import java.util.List; 9 | 10 | public interface AdminUserService { 11 | 12 | 13 | Integer addOneUser(String userName, String password, Integer type); 14 | 15 | Integer delUser(String userName, Integer type); 16 | 17 | List queryAllUser(Integer page, Integer limit, BaseResp baseResp); 18 | 19 | Integer updateOne(Integer id, String userName, String password, Integer type); 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/DoctorService.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service; 2 | 3 | import com.sl.boot.admindemo.entity.Doctor; 4 | import com.sl.boot.admindemo.vo.resp.BaseResp; 5 | 6 | import java.util.List; 7 | 8 | public interface DoctorService { 9 | 10 | List allDoctors(Integer page, Integer limit, BaseResp baseResp); 11 | 12 | Integer update(Doctor doctor); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/DrugAdminUserService.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service; 2 | 3 | public interface DrugAdminUserService { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/DrugService.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service; 2 | 3 | import com.sl.boot.admindemo.entity.Drug; 4 | import com.sl.boot.admindemo.vo.resp.BaseResp; 5 | import com.sl.boot.admindemo.vo.resp.StaRep; 6 | 7 | import java.util.List; 8 | 9 | public interface DrugService { 10 | 11 | 12 | List queryAllDrug(Integer page, Integer limit, BaseResp baseResp); 13 | 14 | Integer addOneDrug(Drug drug); 15 | 16 | Integer delOneDrug(Long id); 17 | 18 | Integer descrDrugAmount(String drugName, Integer amount); 19 | 20 | Integer incrDrugAmount(String drugName, Integer amount); 21 | 22 | StaRep todaySta(); 23 | 24 | StaRep monthSta(); 25 | 26 | StaRep quarterSta(); 27 | 28 | List queryDrug(String durgName); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/PatientService.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service; 2 | 3 | import com.sl.boot.admindemo.dto.PatientDTO; 4 | import com.sl.boot.admindemo.entity.Patient; 5 | import com.sl.boot.admindemo.vo.resp.BaseResp; 6 | 7 | import java.util.List; 8 | 9 | public interface PatientService { 10 | 11 | Patient queryOne(String patientName); 12 | 13 | List queryAllPatient(Integer page, Integer limit, BaseResp baseResp); 14 | 15 | Integer updateOne(Patient patient, String patientName); 16 | 17 | Integer addOne(Patient patient); 18 | 19 | List search(String patientName); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/PrescriptionService.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service; 2 | 3 | import com.sl.boot.admindemo.entity.Prescription; 4 | import com.sl.boot.admindemo.vo.resp.BaseResp; 5 | 6 | 7 | import java.util.List; 8 | 9 | public interface PrescriptionService { 10 | 11 | List queryAll(Integer page, Integer limit, BaseResp baseResp); 12 | 13 | Integer createOne(Prescription prescription, String doctorName); 14 | 15 | Integer update(Prescription prescription); 16 | 17 | List getByPname(String patientName); 18 | 19 | Integer delOne(Integer id); 20 | 21 | Integer settle(Integer id); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/UserService.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service; 2 | 3 | import com.sl.boot.admindemo.entity.User; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * (User)表服务接口 9 | * 10 | * @author s4n 11 | * @since 2020-02-27 22:20:16 12 | */ 13 | public interface UserService { 14 | 15 | /** 16 | * 通过ID查询单条数据 17 | * 18 | * @param uid 主键 19 | * @return 实例对象 20 | */ 21 | User queryById(Integer uid); 22 | 23 | /** 24 | * 查询多条数据 25 | * 26 | * @param offset 查询起始位置 27 | * @param limit 查询条数 28 | * @return 对象列表 29 | */ 30 | List queryAllByLimit(int offset, int limit); 31 | 32 | /** 33 | * 新增数据 34 | * 35 | * @param user 实例对象 36 | * @return 实例对象 37 | */ 38 | User insert(User user); 39 | 40 | /** 41 | * 修改数据 42 | * 43 | * @param user 实例对象 44 | * @return 实例对象 45 | */ 46 | User update(User user); 47 | 48 | /** 49 | * 通过主键删除数据 50 | * 51 | * @param uid 主键 52 | * @return 是否成功 53 | */ 54 | boolean deleteById(Integer uid); 55 | 56 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/impl/ActionRecordServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service.impl; 2 | 3 | import com.github.pagehelper.Page; 4 | import com.github.pagehelper.PageHelper; 5 | import com.sl.boot.admindemo.dao.ActionRecordDAO; 6 | import com.sl.boot.admindemo.entity.ActionRecord; 7 | import com.sl.boot.admindemo.entity.ActionRecordExample; 8 | import com.sl.boot.admindemo.service.ActionRecordService; 9 | import com.sl.boot.admindemo.tools.DateRange; 10 | import com.sl.boot.admindemo.tools.DateUtils; 11 | import com.sl.boot.admindemo.vo.resp.BaseResp; 12 | import lombok.extern.slf4j.Slf4j; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import org.springframework.stereotype.Service; 15 | 16 | import java.util.Date; 17 | import java.util.List; 18 | 19 | @Slf4j 20 | @Service 21 | public class ActionRecordServiceImpl implements ActionRecordService { 22 | 23 | 24 | @Autowired 25 | private ActionRecordDAO actionRecordDAO; 26 | 27 | 28 | @Override 29 | public List queryAllRecord(Integer page, Integer limit, BaseResp baseResp) { 30 | System.out.println("page" + page + "limit" + limit); 31 | ActionRecordExample actionRecordExample = new ActionRecordExample(); 32 | Page page1 = PageHelper.startPage(page, limit).doSelectPage(() -> actionRecordDAO.selectByExample(actionRecordExample)); 33 | baseResp.setCount((int) page1.getTotal()); 34 | return page1.getResult(); 35 | } 36 | 37 | @Override 38 | public List queryTodayRecord(Integer page, Integer limit, BaseResp baseResp) { 39 | ActionRecordExample actionRecordExample = new ActionRecordExample(); 40 | DateRange dateRange = DateUtils.getYesterdayRange(); 41 | actionRecordExample.createCriteria().andActionTimeGreaterThan(dateRange.getStart()); 42 | Page page1 = PageHelper.startPage(page, limit).doSelectPage(() -> actionRecordDAO.selectByExample(actionRecordExample)); 43 | baseResp.setCount((int) page1.getTotal()); 44 | return page1.getResult(); 45 | } 46 | 47 | @Override 48 | public List queryMonthRecord(Integer page, Integer limit, BaseResp baseResp) { 49 | ActionRecordExample actionRecordExample = new ActionRecordExample(); 50 | DateRange dateRange = DateUtils.getMonthRange(new Date()); 51 | actionRecordExample.createCriteria().andActionTimeBetween(dateRange.getStart(), dateRange.getEnd()); 52 | Page page1 = PageHelper.startPage(page, limit).doSelectPage(() -> actionRecordDAO.selectByExample(actionRecordExample)); 53 | baseResp.setCount((int) page1.getTotal()); 54 | return page1.getResult(); 55 | } 56 | 57 | @Override 58 | public List querySeasonRecord(Integer page, Integer limit, BaseResp baseResp) { 59 | ActionRecordExample actionRecordExample = new ActionRecordExample(); 60 | DateRange dateRange = DateUtils.getThisQuarter(); 61 | actionRecordExample.createCriteria().andActionTimeBetween(dateRange.getStart(), dateRange.getEnd()); 62 | Page page1 = PageHelper.startPage(page, limit).doSelectPage(() -> actionRecordDAO.selectByExample(actionRecordExample)); 63 | baseResp.setCount((int) page1.getTotal()); 64 | return page1.getResult(); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/impl/DoctorServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service.impl; 2 | 3 | 4 | import com.github.pagehelper.Page; 5 | import com.github.pagehelper.PageHelper; 6 | import com.sl.boot.admindemo.dao.DoctorDAO; 7 | import com.sl.boot.admindemo.entity.Doctor; 8 | import com.sl.boot.admindemo.entity.DoctorExample; 9 | import com.sl.boot.admindemo.entity.Patient; 10 | import com.sl.boot.admindemo.service.DoctorService; 11 | import com.sl.boot.admindemo.vo.resp.BaseResp; 12 | import org.springframework.beans.factory.annotation.Autowired; 13 | import org.springframework.stereotype.Service; 14 | 15 | import java.util.List; 16 | 17 | @Service 18 | public class DoctorServiceImpl implements DoctorService { 19 | 20 | 21 | @Autowired 22 | private DoctorDAO doctorDAO; 23 | 24 | 25 | @Override 26 | public List allDoctors(Integer page, Integer limit, BaseResp baseResp) { 27 | Page page1 = PageHelper.startPage(page, limit); 28 | DoctorExample doctorExample = new DoctorExample(); 29 | doctorDAO.selectByExample(doctorExample); 30 | baseResp.setCount((int) page1.getTotal()); 31 | return page1.getResult(); 32 | } 33 | 34 | @Override 35 | public Integer update(Doctor doctor) { 36 | Doctor doctor1 = new Doctor(); 37 | doctor1.setAnoName(doctor.getAnoName()); 38 | doctor1.setIdCard(doctor.getIdCard()); 39 | doctor1.setPhoneNum(doctor.getPhoneNum()); 40 | doctor1.setSection(doctor.getSection()); 41 | doctor1.setTTitle(doctor.getTTitle()); 42 | DoctorExample doctorExample = new DoctorExample(); 43 | doctorExample.createCriteria().andIdEqualTo(doctor.getId()); 44 | return doctorDAO.updateByExampleSelective(doctor1, doctorExample); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/impl/DrugAdminUserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service.impl; 2 | 3 | 4 | import com.sl.boot.admindemo.dao.DrugAdminUserDAO; 5 | import com.sl.boot.admindemo.service.DrugAdminUserService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | @Service 10 | public class DrugAdminUserServiceImpl implements DrugAdminUserService { 11 | 12 | @Autowired 13 | private DrugAdminUserDAO drugAdminUserDAO; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/impl/PrescriptionServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service.impl; 2 | 3 | 4 | import com.github.pagehelper.Page; 5 | import com.github.pagehelper.PageHelper; 6 | import com.sl.boot.admindemo.dao.*; 7 | import com.sl.boot.admindemo.entity.*; 8 | import com.sl.boot.admindemo.service.PrescriptionService; 9 | import com.sl.boot.admindemo.vo.resp.BaseResp; 10 | import org.springframework.beans.factory.annotation.Autowired; 11 | import org.springframework.stereotype.Service; 12 | 13 | import java.util.ArrayList; 14 | import java.util.Date; 15 | import java.util.List; 16 | 17 | @Service 18 | public class PrescriptionServiceImpl implements PrescriptionService { 19 | 20 | @Autowired 21 | private PrescriptionDAO prescriptionDAO; 22 | 23 | @Autowired 24 | private PatientDAO patientDAO; 25 | 26 | @Autowired 27 | private DrugDAO drugDAO; 28 | @Autowired 29 | private ActionRecordDAO actionRecordDAO; 30 | 31 | @Autowired 32 | private DoctorDAO doctorDAO; 33 | 34 | @Override 35 | public List queryAll(Integer page, Integer limit, BaseResp baseResp) { 36 | Page page1 = PageHelper.startPage(page, limit); 37 | PrescriptionExample prescriptionExample = new PrescriptionExample(); 38 | prescriptionDAO.selectByExample(prescriptionExample); 39 | baseResp.setCount((int) page1.getTotal()); 40 | return page1.getResult(); 41 | } 42 | 43 | @Override 44 | public Integer createOne(Prescription prescription, String doctorName) { 45 | PatientExample patientExample = new PatientExample(); 46 | List patients = patientDAO.selectByExample(patientExample); 47 | DoctorExample doctorExample = new DoctorExample(); 48 | doctorExample.createCriteria().andDoctornameEqualTo(doctorName); 49 | List doctors = doctorDAO.selectByExample(doctorExample); 50 | if (doctors.size() != 0) { 51 | Doctor doctor = doctors.get(0); 52 | prescription.setBelongToDoctorName(doctor.getAnoName()); 53 | prescription.setDid(doctor.getId()); 54 | prescription.setStatus("未取药"); 55 | } else { 56 | return -4; 57 | } 58 | List paNs = new ArrayList<>(); 59 | for (Patient p : patients) { 60 | paNs.add(p.getPatientName()); 61 | } 62 | String[] split = prescription.getDescription().split(","); 63 | List objects = new ArrayList<>(); 64 | boolean flag = false; 65 | for (int i = 0; i < split.length; i++) { 66 | objects.add(split[i].split("x")[0]); 67 | if (Integer.parseInt(split[i].split("x")[1]) > 10) { 68 | flag = true; 69 | } 70 | } 71 | for (String s : 72 | objects) { 73 | System.out.println(s); 74 | } 75 | DrugExample drugExample = new DrugExample(); 76 | drugExample.createCriteria().andDrugNameIn(objects); 77 | List drugs = drugDAO.selectByExample(drugExample); 78 | System.out.println("drugs Size" + drugs.size()); 79 | if (!paNs.contains(prescription.getBelongToPatientName())) { 80 | return -1; 81 | } 82 | if (drugs.size() == 0) { 83 | return -2; 84 | } 85 | if (flag) { 86 | return -3; 87 | } else { 88 | return prescriptionDAO.insert(prescription); 89 | } 90 | 91 | } 92 | 93 | @Override 94 | public Integer update(Prescription prescription) { 95 | PrescriptionExample prescriptionExample = new PrescriptionExample(); 96 | prescriptionExample.createCriteria().andIdEqualTo(prescription.getId()); 97 | return prescriptionDAO.updateByExampleSelective(prescription, prescriptionExample); 98 | } 99 | 100 | @Override 101 | public List getByPname(String patientName) { 102 | PatientExample patientExample = new PatientExample(); 103 | patientExample.createCriteria().andPatientNameEqualTo(patientName); 104 | List patients = patientDAO.selectByExample(patientExample); 105 | if (patients.size() != 0) { 106 | if (patients.get(0).getAnoName() == null) { 107 | return new ArrayList(); 108 | } 109 | PrescriptionExample prescriptionExample = new PrescriptionExample(); 110 | prescriptionExample.createCriteria().andBelongToPatientNameEqualTo(patients.get(0).getPatientName()); 111 | return prescriptionDAO.selectByExample(prescriptionExample); 112 | } else { 113 | return new ArrayList(); 114 | } 115 | 116 | } 117 | 118 | @Override 119 | public Integer delOne(Integer id) { 120 | return prescriptionDAO.deleteByPrimaryKey(id); 121 | } 122 | 123 | @Override 124 | public Integer settle(Integer id) { 125 | Prescription prescription = prescriptionDAO.selectByPrimaryKey(id); 126 | String description = prescription.getDescription(); 127 | String[] drugs = description.split(","); 128 | long total = 0; 129 | for (int i = 0; i < drugs.length; i++) { 130 | DrugExample drugExample = new DrugExample(); 131 | String[] drugAndCount = drugs[i].split("x"); 132 | drugExample.createCriteria().andDrugNameEqualTo(drugAndCount[0]); 133 | List drugs1 = drugDAO.selectByExample(drugExample); 134 | if (drugs1.size() != 0) { 135 | Drug drug = drugs1.get(0); 136 | total += drug.getPrice() * Integer.parseInt(drugAndCount[1]); 137 | } 138 | Drug drug = new Drug(); 139 | DrugExample drugExample1 = new DrugExample(); 140 | drugExample1.createCriteria().andDrugNameEqualTo(drugAndCount[0]); 141 | List drugs2 = drugDAO.selectByExample(drugExample1); 142 | if (drugs2.size() != 0) { 143 | Drug drug1 = drugs2.get(0); 144 | drug1.setId(null); 145 | System.out.println("=================drugAndCount[1]=====" + drugAndCount[1]); 146 | Long count = drug1.getDrugCount() - Integer.parseInt(drugAndCount[1]); 147 | System.out.println("=================count=====" + count); 148 | if (count < 0) { 149 | return -1; 150 | } 151 | drug1.setDrugCount(count); 152 | ActionRecord actionRecord = new ActionRecord(); 153 | actionRecord.setAction("出库药品"); 154 | actionRecord.setDrugName(drugAndCount[0]); 155 | actionRecord.setActionTime(new Date()); 156 | actionRecord.setAmount(Integer.parseInt(drugAndCount[1])); 157 | actionRecordDAO.insert(actionRecord); 158 | drugDAO.updateByExampleSelective(drug1, drugExample1); 159 | } 160 | } 161 | Prescription prescription1 = new Prescription(); 162 | prescription1.setStatus("已取药"); 163 | PrescriptionExample prescriptionExample = new PrescriptionExample(); 164 | prescriptionExample.createCriteria().andIdEqualTo(id); 165 | prescriptionDAO.updateByExampleSelective(prescription1, prescriptionExample); 166 | return Math.toIntExact(total); 167 | } 168 | } 169 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/service/impl/UserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.service.impl; 2 | 3 | import com.sl.boot.admindemo.entity.User; 4 | import com.sl.boot.admindemo.dao.UserDao; 5 | import com.sl.boot.admindemo.service.UserService; 6 | import org.springframework.stereotype.Service; 7 | 8 | import javax.annotation.Resource; 9 | import java.util.List; 10 | 11 | /** 12 | * (User)表服务实现类 13 | * 14 | * @author s4n 15 | * @since 2020-02-27 22:20:16 16 | */ 17 | @Service("userService") 18 | public class UserServiceImpl implements UserService { 19 | @Resource 20 | private UserDao userDao; 21 | 22 | /** 23 | * 通过ID查询单条数据 24 | * 25 | * @param uid 主键 26 | * @return 实例对象 27 | */ 28 | @Override 29 | public User queryById(Integer uid) { 30 | return this.userDao.queryById(uid); 31 | } 32 | 33 | /** 34 | * 查询多条数据 35 | * 36 | * @param offset 查询起始位置 37 | * @param limit 查询条数 38 | * @return 对象列表 39 | */ 40 | @Override 41 | public List queryAllByLimit(int offset, int limit) { 42 | return this.userDao.queryAllByLimit(offset, limit); 43 | } 44 | 45 | /** 46 | * 新增数据 47 | * 48 | * @param user 实例对象 49 | * @return 实例对象 50 | */ 51 | @Override 52 | public User insert(User user) { 53 | this.userDao.insert(user); 54 | return user; 55 | } 56 | 57 | /** 58 | * 修改数据 59 | * 60 | * @param user 实例对象 61 | * @return 实例对象 62 | */ 63 | @Override 64 | public User update(User user) { 65 | this.userDao.update(user); 66 | return this.queryById(user.getUid()); 67 | } 68 | 69 | /** 70 | * 通过主键删除数据 71 | * 72 | * @param uid 主键 73 | * @return 是否成功 74 | */ 75 | @Override 76 | public boolean deleteById(Integer uid) { 77 | return this.userDao.deleteById(uid) > 0; 78 | } 79 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/tools/DateRange.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.tools; 2 | 3 | import java.util.Date; 4 | 5 | public class DateRange { 6 | private Date start; 7 | private Date end; 8 | 9 | public DateRange(Date start, Date end) { 10 | this.start = start; 11 | this.end = end; 12 | } 13 | 14 | public Date getStart() { 15 | return start; 16 | } 17 | 18 | public void setStart(Date start) { 19 | this.start = start; 20 | } 21 | 22 | public Date getEnd() { 23 | return end; 24 | } 25 | 26 | public void setEnd(Date end) { 27 | this.end = end; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/tools/DateUtils.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.tools; 2 | 3 | 4 | import java.text.SimpleDateFormat; 5 | import java.util.Calendar; 6 | import java.util.Date; 7 | 8 | 9 | public class DateUtils { 10 | /** 11 | * 获取date的月份的时间范围 12 | * 13 | * @param date 14 | * @return 15 | */ 16 | public static DateRange getMonthRange(Date date) { 17 | Calendar startCalendar = Calendar.getInstance(); 18 | startCalendar.setTime(date); 19 | startCalendar.set(Calendar.DAY_OF_MONTH, 1); 20 | setMaxTime(startCalendar); 21 | 22 | Calendar endCalendar = Calendar.getInstance(); 23 | endCalendar.setTime(date); 24 | endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 25 | setMaxTime(endCalendar); 26 | 27 | return new DateRange(startCalendar.getTime(), endCalendar.getTime()); 28 | } 29 | 30 | /** 31 | * 获取当前季度的时间范围 32 | * 33 | * @return current quarter 34 | */ 35 | public static DateRange getThisQuarter() { 36 | Calendar startCalendar = Calendar.getInstance(); 37 | startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3) * 3); 38 | startCalendar.set(Calendar.DAY_OF_MONTH, 1); 39 | setMinTime(startCalendar); 40 | 41 | Calendar endCalendar = Calendar.getInstance(); 42 | endCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3) * 3 + 2); 43 | endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 44 | setMaxTime(endCalendar); 45 | 46 | return new DateRange(startCalendar.getTime(), endCalendar.getTime()); 47 | } 48 | 49 | /** 50 | * 获取昨天的时间范围 51 | * 52 | * @return 53 | */ 54 | public static DateRange getYesterdayRange() { 55 | Calendar startCalendar = Calendar.getInstance(); 56 | startCalendar.add(Calendar.DAY_OF_MONTH, -1); 57 | setMinTime(startCalendar); 58 | 59 | Calendar endCalendar = Calendar.getInstance(); 60 | endCalendar.add(Calendar.DAY_OF_MONTH, -1); 61 | setMaxTime(endCalendar); 62 | 63 | return new DateRange(startCalendar.getTime(), endCalendar.getTime()); 64 | } 65 | 66 | /** 67 | * 获取当前月份的时间范围 68 | * 69 | * @return 70 | */ 71 | public static DateRange getThisMonth() { 72 | Calendar startCalendar = Calendar.getInstance(); 73 | startCalendar.set(Calendar.DAY_OF_MONTH, 1); 74 | setMinTime(startCalendar); 75 | 76 | Calendar endCalendar = Calendar.getInstance(); 77 | endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 78 | setMaxTime(endCalendar); 79 | 80 | return new DateRange(startCalendar.getTime(), endCalendar.getTime()); 81 | } 82 | 83 | /** 84 | * 获取上个月的时间范围 85 | * 86 | * @return 87 | */ 88 | public static DateRange getLastMonth() { 89 | Calendar startCalendar = Calendar.getInstance(); 90 | startCalendar.add(Calendar.MONTH, -1); 91 | startCalendar.set(Calendar.DAY_OF_MONTH, 1); 92 | setMinTime(startCalendar); 93 | 94 | Calendar endCalendar = Calendar.getInstance(); 95 | endCalendar.add(Calendar.MONTH, -1); 96 | endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 97 | setMaxTime(endCalendar); 98 | 99 | return new DateRange(startCalendar.getTime(), endCalendar.getTime()); 100 | } 101 | 102 | /** 103 | * 获取上个季度的时间范围 104 | * 105 | * @return 106 | */ 107 | public static DateRange getLastQuarter() { 108 | Calendar startCalendar = Calendar.getInstance(); 109 | startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3 - 1) * 3); 110 | startCalendar.set(Calendar.DAY_OF_MONTH, 1); 111 | setMinTime(startCalendar); 112 | 113 | Calendar endCalendar = Calendar.getInstance(); 114 | endCalendar.set(Calendar.MONTH, ((int) endCalendar.get(Calendar.MONTH) / 3 - 1) * 3 + 2); 115 | endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 116 | setMaxTime(endCalendar); 117 | 118 | return new DateRange(startCalendar.getTime(), endCalendar.getTime()); 119 | } 120 | 121 | private static void setMinTime(Calendar calendar) { 122 | calendar.set(Calendar.HOUR_OF_DAY, 0); 123 | calendar.set(Calendar.MINUTE, 0); 124 | calendar.set(Calendar.SECOND, 0); 125 | calendar.set(Calendar.MILLISECOND, 0); 126 | } 127 | 128 | private static void setMaxTime(Calendar calendar) { 129 | calendar.set(Calendar.HOUR_OF_DAY, calendar.getActualMaximum(Calendar.HOUR_OF_DAY)); 130 | calendar.set(Calendar.MINUTE, calendar.getActualMaximum(Calendar.MINUTE)); 131 | calendar.set(Calendar.SECOND, calendar.getActualMaximum(Calendar.SECOND)); 132 | calendar.set(Calendar.MILLISECOND, calendar.getActualMaximum(Calendar.MILLISECOND)); 133 | } 134 | 135 | 136 | public final static String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss"; 137 | 138 | public static String format(Date date) { 139 | SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_PATTERN); 140 | return sdf.format(date); 141 | } 142 | 143 | public static void main(String[] args) { 144 | 145 | } 146 | } -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/vo/DrugVo.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.vo; 2 | 3 | 4 | import lombok.Data; 5 | 6 | @Data 7 | public class DrugVo { 8 | 9 | private String drugName; 10 | 11 | private Integer amount; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/vo/LoginVo.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.vo; 2 | 3 | 4 | import lombok.Data; 5 | 6 | @Data 7 | public class LoginVo { 8 | private String username; 9 | private String password; 10 | private String role; 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/vo/PrescriptionVo.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.vo; 2 | 3 | import io.swagger.models.auth.In; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import lombok.ToString; 7 | 8 | @Data 9 | @EqualsAndHashCode 10 | @ToString 11 | public class PrescriptionVo { 12 | 13 | private Integer id; 14 | 15 | private String stauts; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/vo/StaVo.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.vo; 2 | 3 | 4 | import io.swagger.models.auth.In; 5 | import lombok.Data; 6 | 7 | @Data 8 | public class StaVo { 9 | private String name; 10 | private Integer value; 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/vo/UserVo.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.vo; 2 | 3 | 4 | import lombok.Data; 5 | import lombok.ToString; 6 | 7 | @Data 8 | @ToString 9 | public class UserVo { 10 | 11 | private Integer id; 12 | 13 | private String userName; 14 | 15 | private String passWord; 16 | 17 | private Integer type; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/vo/resp/BaseResp.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.vo.resp; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | 7 | @Data 8 | @ToString 9 | @EqualsAndHashCode 10 | public class BaseResp { 11 | 12 | private Integer code; 13 | 14 | private String msg; 15 | 16 | private Integer count; 17 | 18 | private T data; 19 | 20 | 21 | public BaseResp() { 22 | super(); 23 | this.code = 0; 24 | this.msg = ""; 25 | this.count = 0; 26 | } 27 | 28 | public BaseResp(T t) { 29 | super(); 30 | this.code = 0; 31 | this.msg = ""; 32 | this.data = t; 33 | } 34 | 35 | public BaseResp(Integer count, T t) { 36 | super(); 37 | this.code = 0; 38 | this.msg = ""; 39 | this.count = count; 40 | this.data = t; 41 | } 42 | 43 | public BaseResp(Integer code, String msg) { 44 | super(); 45 | this.code = code; 46 | this.msg = msg; 47 | } 48 | 49 | public BaseResp(Integer code, String msg, T data) { 50 | super(); 51 | this.data = data; 52 | this.code = code; 53 | this.msg = msg; 54 | } 55 | 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/vo/resp/LoginResp.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.vo.resp; 2 | 3 | 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import lombok.ToString; 7 | 8 | @Data 9 | @ToString 10 | @EqualsAndHashCode 11 | public class LoginResp { 12 | private Integer code; 13 | 14 | private String msg; 15 | 16 | private Integer type; 17 | 18 | private T data; 19 | 20 | 21 | public LoginResp() { 22 | super(); 23 | this.code = 200; 24 | this.msg = ""; 25 | this.type = 0; 26 | } 27 | 28 | public LoginResp(T t) { 29 | super(); 30 | this.code = 200; 31 | this.msg = ""; 32 | this.data = t; 33 | } 34 | 35 | public LoginResp(Integer count, T t) { 36 | super(); 37 | this.code = 200; 38 | this.msg = ""; 39 | this.type = count; 40 | this.data = t; 41 | } 42 | 43 | public LoginResp(Integer code, String msg) { 44 | super(); 45 | this.code = code; 46 | this.msg = msg; 47 | } 48 | 49 | public LoginResp(Integer code, String msg, T data) { 50 | super(); 51 | this.data = data; 52 | this.code = code; 53 | this.msg = msg; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/com/sl/boot/admindemo/vo/resp/StaRep.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo.vo.resp; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | 7 | @Data 8 | @ToString 9 | @EqualsAndHashCode 10 | public class StaRep { 11 | 12 | private Integer code; 13 | 14 | private String msg; 15 | 16 | private Integer count; 17 | 18 | private T dataX; 19 | 20 | private T dataY; 21 | 22 | private T dataY1; 23 | 24 | private T dataO; 25 | 26 | 27 | public StaRep() { 28 | super(); 29 | this.code = 0; 30 | this.msg = ""; 31 | this.count = 0; 32 | } 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | sever: 2 | port: 8080 3 | spring: 4 | freemarker: 5 | suffix: .html 6 | datasource: 7 | url: jdbc:mysql://localhost:3306/mms_db?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true 8 | username: root 9 | password: 123456 10 | driver-class-name: com.mysql.cj.jdbc.Driver 11 | mybatis: 12 | mapper-locations: classpath*:mapper/*.xml 13 | configuration: 14 | log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 15 | logging: 16 | level: 17 | com.sl.boot.admindemo: debug 18 | -------------------------------------------------------------------------------- /src/main/resources/diagram.uml: -------------------------------------------------------------------------------- 1 | 2 | 3 | JAVA 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | All 12 | private 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/main/resources/mapper/UserDao.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 19 | 20 | 21 | 27 | 28 | 29 | 48 | 49 | 50 | 51 | insert into admindb.user(name, gender, age) 52 | values (#{name}, #{gender}, #{age}) 53 | 54 | 55 | 56 | 57 | update admindb.user 58 | 59 | 60 | name = #{name}, 61 | 62 | 63 | gender = #{gender}, 64 | 65 | 66 | age = #{age}, 67 | 68 | 69 | where uid = #{uid} 70 | 71 | 72 | 73 | 74 | delete from admindb.user where uid = #{uid} 75 | 76 | 77 | -------------------------------------------------------------------------------- /src/main/resources/static/common/drug.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/common/drug.jpeg -------------------------------------------------------------------------------- /src/main/resources/static/css/login.css: -------------------------------------------------------------------------------- 1 | body { 2 | overflow: hidden; 3 | } 4 | 5 | .video-player { 6 | background-color: transparent; 7 | display: block; 8 | position: absolute; 9 | z-index: 1; 10 | top: 0; 11 | } 12 | 13 | .video_mask { 14 | width: 100%; 15 | height: 100%; 16 | position: absolute; 17 | left: 0; 18 | top: 0; 19 | z-index: 90; 20 | background-color: rgba(0, 0, 0, 0.5); 21 | } 22 | 23 | .login { 24 | height: 290px; 25 | width: 260px; 26 | padding: 20px; 27 | background-color: rgba(0, 0, 0, 0.5); 28 | border-radius: 4px; 29 | position: absolute; 30 | left: 50%; 31 | top: 50%; 32 | margin: -150px 0 0 -150px; 33 | z-index: 99; 34 | } 35 | 36 | .login h1 { 37 | text-align: center; 38 | color: #fff; 39 | font-size: 24px; 40 | margin-bottom: 20px; 41 | } 42 | 43 | .form_code { 44 | position: relative; 45 | } 46 | 47 | .form_code .code { 48 | position: absolute; 49 | right: 0; 50 | top: 1px; 51 | cursor: pointer; 52 | } 53 | 54 | .login_btn { 55 | width: 100%; 56 | } 57 | 58 | .fff { 59 | height: 260px; 60 | width: 260px; 61 | padding: 20px; 62 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/modules/code.css: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none} -------------------------------------------------------------------------------- /src/main/resources/static/css/modules/laydate/default/laydate.css: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | .laydate-set-ym,.layui-laydate,.layui-laydate *,.layui-laydate-list{box-sizing:border-box}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:laydate-upbit;animation-name:laydate-upbit}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@-webkit-keyframes laydate-upbit{from{-webkit-transform:translate3d(0,20px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes laydate-upbit{from{transform:translate3d(0,20px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon,.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.laydate-set-ym span,.layui-laydate-header i{padding:0 5px;cursor:pointer}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;color:#999;font-size:18px}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;height:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px 20px}.layui-laydate-footer span{margin-right:15px;display:inline-block;cursor:pointer;font-size:12px}.layui-laydate-footer span:hover{color:#5FB878}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{height:26px;line-height:26px;margin:0 0 0 -1px;padding:0 10px;border:1px solid #C9C9C9;background-color:#fff;white-space:nowrap;vertical-align:top;border-radius:2px}.layui-laydate-list>li,.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;background-color:#fff}.layui-laydate-list>li{position:relative;width:33.3%;height:36px;line-height:36px;margin:3px 0;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px}.layui-laydate-range{width:546px}.layui-laydate-range .laydate-main-list-0 .laydate-next-m,.layui-laydate-range .laydate-main-list-0 .laydate-next-y,.layui-laydate-range .laydate-main-list-1 .laydate-prev-m,.layui-laydate-range .laydate-main-list-1 .laydate-prev-y{display:none}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5FB878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{font-weight:400;color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#00F7DE}.laydate-selected:hover{background-color:#00F7DE!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eaeaea;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{background-color:#f8f8f8!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#FF5722}.laydate-day-mark::after{background-color:#5FB878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5FB878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead,.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px} -------------------------------------------------------------------------------- /src/main/resources/static/css/modules/layer/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/css/modules/layer/default/icon-ext.png -------------------------------------------------------------------------------- /src/main/resources/static/css/modules/layer/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/css/modules/layer/default/icon.png -------------------------------------------------------------------------------- /src/main/resources/static/css/modules/layer/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/css/modules/layer/default/loading-0.gif -------------------------------------------------------------------------------- /src/main/resources/static/css/modules/layer/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/css/modules/layer/default/loading-1.gif -------------------------------------------------------------------------------- /src/main/resources/static/css/modules/layer/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/css/modules/layer/default/loading-2.gif -------------------------------------------------------------------------------- /src/main/resources/static/css/sts.css: -------------------------------------------------------------------------------- 1 | .main1 { 2 | float: right; 3 | } 4 | 5 | .main { 6 | float: left; 7 | } 8 | 9 | .cl { 10 | margin: 0 auto; /*水平居中*/ 11 | position: relative; 12 | top: 50%; /*偏移*/ 13 | margin-top: +100px; 14 | } 15 | 16 | .cl1 { 17 | margin: 0 auto; /*水平居中*/ 18 | position: relative; 19 | top: 50%; /*偏移*/ 20 | margin-top: +100px; 21 | } 22 | 23 | .cl2 { 24 | margin: 0 auto; /*水平居中*/ 25 | position: relative; 26 | top: 50%; /*偏移*/ 27 | margin-top: +100px; 28 | } -------------------------------------------------------------------------------- /src/main/resources/static/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/font/iconfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/font/iconfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/font/iconfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/font/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/font/iconfont.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/images/face/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/0.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/1.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/10.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/11.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/12.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/13.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/14.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/15.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/16.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/17.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/18.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/19.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/2.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/20.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/20.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/21.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/22.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/23.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/24.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/25.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/26.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/27.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/28.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/28.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/29.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/3.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/30.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/31.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/31.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/32.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/33.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/34.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/35.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/36.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/37.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/38.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/39.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/4.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/40.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/40.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/41.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/42.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/42.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/43.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/43.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/44.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/44.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/45.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/45.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/46.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/47.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/47.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/48.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/49.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/49.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/5.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/50.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/51.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/51.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/52.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/52.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/53.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/54.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/54.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/55.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/55.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/56.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/56.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/57.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/57.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/58.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/58.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/59.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/59.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/6.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/60.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/60.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/61.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/61.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/62.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/62.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/63.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/64.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/65.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/65.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/66.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/66.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/67.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/67.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/68.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/68.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/69.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/69.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/7.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/70.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/70.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/71.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/71.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/8.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/face/9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javaslin/admindemo/23a8a416f70004c492342a68bbcecebc2d1e0250/src/main/resources/static/images/face/9.gif -------------------------------------------------------------------------------- /src/main/resources/static/lay/modules/carousel.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(clearInterval(e.timer),e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['
    ',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a/g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
  1. '+o.replace(/[\r\t\n]+/g,"
  2. ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend('

'+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); -------------------------------------------------------------------------------- /src/main/resources/static/lay/modules/element.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(t){"use strict";var a=layui.$,i=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(t){var i=this;return a.extend(!0,i.config,t),i},s.prototype.on=function(t,a){return layui.onevent.call(this,e,t,a)},s.prototype.tabAdd=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.children(".layui-tab-bar"),o=l.children(".layui-tab-content"),r='
  • "+(i.title||"unnaming")+"
  • ";return s[0]?s.before(r):n.append(r),o.append('
    '+(i.content||"")+"
    "),f.hideTabMore(!0),f.tabAuto(),this},s.prototype.tabDelete=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabDelete(null,s),this},s.prototype.tabChange=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabClick.call(s[0],null,null,s),this},s.prototype.tab=function(t){t=t||{},b.on("click",t.headerElem,function(i){var e=a(this).index();f.tabClick.call(this,i,e,null,t)})},s.prototype.progress=function(t,i){var e="layui-progress",l=a("."+e+"[lay-filter="+t+"]"),n=l.find("."+e+"-bar"),s=n.find("."+e+"-text");return n.css("width",i),s.text(i),this};var o=".layui-nav",r="layui-nav-item",c="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",y="layui-nav-more",h="layui-anim layui-anim-upbit",f={tabClick:function(t,i,s,o){o=o||{};var r=s||a(this),i=i||r.parent().children("li").index(r),c=o.headerElem?r.parent():r.parents(".layui-tab").eq(0),u=o.bodyElem?a(o.bodyElem):c.children(".layui-tab-content").children(".layui-tab-item"),d=r.find("a"),y=c.attr("lay-filter");"javascript:;"!==d.attr("href")&&"_blank"===d.attr("target")||(r.addClass(l).siblings().removeClass(l),u.eq(i).addClass(n).siblings().removeClass(n)),layui.event.call(this,e,"tab("+y+")",{elem:c,index:i})},tabDelete:function(t,i){var n=i||a(this).parent(),s=n.index(),o=n.parents(".layui-tab").eq(0),r=o.children(".layui-tab-content").children(".layui-tab-item"),c=o.attr("lay-filter");n.hasClass(l)&&(n.next()[0]?f.tabClick.call(n.next()[0],null,s+1):n.prev()[0]&&f.tabClick.call(n.prev()[0],null,s-1)),n.remove(),r.eq(s).remove(),setTimeout(function(){f.tabAuto()},50),layui.event.call(this,e,"tabDelete("+c+")",{elem:o,index:s})},tabAuto:function(){var t="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;a(".layui-tab").each(function(){var s=a(this),o=s.children(".layui-tab-title"),r=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),c=a('');if(n===window&&8!=i.ie&&f.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var t=a(this);if(!t.find("."+l)[0]){var i=a('');i.on("click",f.tabDelete),t.append(i)}}),"string"!=typeof s.attr("lay-unauto"))if(o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(c),s.attr("overflow",""),c.on("click",function(a){o[this.title?"removeClass":"addClass"](t),this.title=this.title?"":"收缩"})}else o.find("."+e).remove(),s.removeAttr("overflow")})},hideTabMore:function(t){var i=a(".layui-tab-title");t!==!0&&"tabmore"===a(t.target).attr("lay-stope")||(i.removeClass("layui-tab-more"),i.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=a(this),i=t.parents(o),n=i.attr("lay-filter"),s=t.parent(),c=t.siblings("."+d),y="string"==typeof s.attr("lay-unselect");"javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||y||c[0]||(i.find("."+l).removeClass(l),s.addClass(l)),i.hasClass(u)&&(c.removeClass(h),c[0]&&(s["none"===c.css("display")?"addClass":"removeClass"](r+"ed"),"all"===i.attr("lay-shrink")&&s.siblings().removeClass(r+"ed"))),layui.event.call(this,e,"nav("+n+")",t)},collapse:function(){var t=a(this),i=t.find(".layui-colla-icon"),l=t.siblings(".layui-colla-content"),s=t.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),r="none"===l.css("display");if("string"==typeof s.attr("lay-accordion")){var c=s.children(".layui-colla-item").children("."+n);c.siblings(".layui-colla-title").children(".layui-colla-icon").html(""),c.removeClass(n)}l[r?"addClass":"removeClass"](n),i.html(r?"":""),layui.event.call(this,e,"collapse("+o+")",{title:t,content:l,show:r})}};s.prototype.init=function(t,e){var l=function(){return e?'[lay-filter="'+e+'"]':""}(),s={tab:function(){f.tabAuto.call({})},nav:function(){var t=200,e={},s={},p={},b=function(l,o,r){var c=a(this),f=c.find("."+d);o.hasClass(u)?l.css({top:c.position().top,height:c.children("a").outerHeight(),opacity:1}):(f.addClass(h),l.css({left:c.position().left+parseFloat(c.css("marginLeft")),top:c.position().top+c.height()-l.height()}),e[r]=setTimeout(function(){l.css({width:c.width(),opacity:1})},i.ie&&i.ie<10?0:t),clearTimeout(p[r]),"block"===f.css("display")&&clearTimeout(s[r]),s[r]=setTimeout(function(){f.addClass(n),c.find("."+y).addClass(y+"d")},300))};a(o+l).each(function(i){var l=a(this),o=a(''),h=l.find("."+r);l.find("."+c)[0]||(l.append(o),h.on("mouseenter",function(){b.call(this,o,l,i)}).on("mouseleave",function(){l.hasClass(u)||(clearTimeout(s[i]),s[i]=setTimeout(function(){l.find("."+d).removeClass(n),l.find("."+y).removeClass(y+"d")},300))}),l.on("mouseleave",function(){clearTimeout(e[i]),p[i]=setTimeout(function(){l.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},t)})),h.find("a").each(function(){var t=a(this),i=(t.parent(),t.siblings("."+d));i[0]&&!t.children("."+y)[0]&&t.append(''),t.off("click",f.clickThis).on("click",f.clickThis)})})},breadcrumb:function(){var t=".layui-breadcrumb";a(t+l).each(function(){var t=a(this),i="lay-separator",e=t.attr(i)||"/",l=t.find("a");l.next("span["+i+"]")[0]||(l.each(function(t){t!==l.length-1&&a(this).after(""+e+"")}),t.css("visibility","visible"))})},progress:function(){var t="layui-progress";a("."+t+l).each(function(){var i=a(this),e=i.find(".layui-progress-bar"),l=e.attr("lay-percent");e.css("width",function(){return/^.+\/.+$/.test(l)?100*new Function("return "+l)()+"%":l}()),i.attr("lay-showPercent")&&setTimeout(function(){e.html(''+l+"")},350)})},collapse:function(){var t="layui-collapse";a("."+t+l).each(function(){var t=a(this).find(".layui-colla-item");t.each(function(){var t=a(this),i=t.find(".layui-colla-title"),e=t.find(".layui-colla-content"),l="none"===e.css("display");i.find(".layui-colla-icon").remove(),i.append(''+(l?"":"")+""),i.off("click",f.collapse).on("click",f.collapse)})})}};return s[t]?s[t]():layui.each(s,function(t,a){a()})},s.prototype.render=s.prototype.init;var p=new s,b=a(document);p.render();var v=".layui-tab-title li";b.on("click",v,f.tabClick),b.on("click",f.hideTabMore),a(window).on("resize",f.tabAuto),t(e,p)}); -------------------------------------------------------------------------------- /src/main/resources/static/lay/modules/flow.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),!i&&f.width()&&(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)}); -------------------------------------------------------------------------------- /src/main/resources/static/lay/modules/laypage.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | ;layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push(''+(a.first||1)+"");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r2&&e.push('');r<=u;r++)r===a.curr?e.push('"+r+""):e.push(''+r+"");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1…'),0!==t&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),refresh:['','',""].join(""),skip:function(){return['到第','','页',""].join("")}()};return['
    ',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"
    "].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;oi.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)}); -------------------------------------------------------------------------------- /src/main/resources/static/lay/modules/laytpl.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)}); -------------------------------------------------------------------------------- /src/main/resources/static/lay/modules/rate.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var a=layui.jquery,i={config:{},index:layui.rate?layui.rate.index+1e4:0,set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,a){return layui.onevent.call(this,n,e,a)}},l=function(){var e=this,a=e.config;return{setvalue:function(a){e.setvalue.call(e,a)},config:a}},n="rate",t="layui-rate",o="layui-icon-rate",s="layui-icon-rate-solid",u="layui-icon-rate-half",r="layui-icon-rate-solid layui-icon-rate-half",c="layui-icon-rate-solid layui-icon-rate",f="layui-icon-rate layui-icon-rate-half",v=function(e){var l=this;l.index=++i.index,l.config=a.extend({},l.config,i.config,e),l.render()};v.prototype.config={length:5,text:!1,readonly:!1,half:!1,value:0,theme:""},v.prototype.render=function(){var e=this,i=e.config,l=i.theme?'style="color: '+i.theme+';"':"";i.elem=a(i.elem),parseInt(i.value)!==i.value&&(i.half||(i.value=Math.ceil(i.value)-i.value<.5?Math.ceil(i.value):Math.floor(i.value)));for(var n='
      ",u=1;u<=i.length;u++){var r='
    • ";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+'
    • ":n+=r}n+="
    "+(i.text?''+i.value+"星":"")+"";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)}); -------------------------------------------------------------------------------- /src/main/resources/static/lay/modules/slider.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var i=layui.jquery,t={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,n,e,i)}},a=function(){var e=this,i=e.config;return{setValue:function(i,t){return e.slide("set",i,t||0)},config:i}},n="slider",l="layui-disabled",s="layui-slider",r="layui-slider-bar",o="layui-slider-wrap",u="layui-slider-wrap-btn",d="layui-slider-tips",v="layui-slider-input",c="layui-slider-input-txt",m="layui-slider-input-btn",p="layui-slider-hover",f=function(e){var a=this;a.index=++t.index,a.config=i.extend({},a.config,t.config,e),a.render()};f.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,input:!1,range:!1,height:200,disabled:!1,theme:"#009688"},f.prototype.render=function(){var e=this,t=e.config;if(t.step<1&&(t.step=1),t.maxt.min?a:t.min,t.value[1]=n>t.min?n:t.min,t.value[0]=t.value[0]>t.max?t.max:t.value[0],t.value[1]=t.value[1]>t.max?t.max:t.value[1];var r=Math.floor((t.value[0]-t.min)/(t.max-t.min)*100),v=Math.floor((t.value[1]-t.min)/(t.max-t.min)*100),m=v-r+"%";r+="%",v+="%"}else{"object"==typeof t.value&&(t.value=Math.min.apply(null,t.value)),t.valuet.max&&(t.value=t.max);var m=Math.floor((t.value-t.min)/(t.max-t.min)*100)+"%"}var p=t.disabled?"#c2c2c2":t.theme,f='
    '+(t.tips?'
    ':"")+'
    '+(t.range?'
    ':"")+"
    ",h=i(t.elem),y=h.next("."+s);if(y[0]&&y.remove(),e.elemTemp=i(f),t.range?(e.elemTemp.find("."+o).eq(0).data("value",t.value[0]),e.elemTemp.find("."+o).eq(1).data("value",t.value[1])):e.elemTemp.find("."+o).data("value",t.value),h.html(e.elemTemp),"vertical"===t.type&&e.elemTemp.height(t.height+"px"),t.showstep){for(var g=(t.max-t.min)/t.step,b="",x=1;x')}e.elemTemp.append(b)}if(t.input&&!t.range){var w=i('
    ');h.css("position","relative"),h.append(w),h.find("."+c).children("input").val(t.value),"vertical"===t.type?w.css({left:0,top:-48}):e.elemTemp.css("margin-right",w.outerWidth()+15)}t.disabled?(e.elemTemp.addClass(l),e.elemTemp.find("."+u).addClass(l)):e.slide(),e.elemTemp.find("."+u).on("mouseover",function(){var a="vertical"===t.type?t.height:e.elemTemp[0].offsetWidth,n=e.elemTemp.find("."+o),l="vertical"===t.type?a-i(this).parent()[0].offsetTop-n.height():i(this).parent()[0].offsetLeft,s=l/a*100,r=i(this).parent().data("value"),u=t.setTips?t.setTips(r):r;e.elemTemp.find("."+d).html(u),"vertical"===t.type?e.elemTemp.find("."+d).css({bottom:s+"%","margin-bottom":"20px",display:"inline-block"}):e.elemTemp.find("."+d).css({left:s+"%",display:"inline-block"})}).on("mouseout",function(){e.elemTemp.find("."+d).css("display","none")})},f.prototype.slide=function(e,t,a){var n=this,l=n.config,s=n.elemTemp,f=function(){return"vertical"===l.type?l.height:s[0].offsetWidth},h=s.find("."+o),y=s.next("."+v),g=y.children("."+c).children("input").val(),b=100/((l.max-l.min)/Math.ceil(l.step)),x=function(e,i){e=Math.ceil(e)*b>100?Math.ceil(e)*b:Math.round(e)*b,e=e>100?100:e,h.eq(i).css("vertical"===l.type?"bottom":"left",e+"%");var t=T(h[0].offsetLeft),a=l.range?T(h[1].offsetLeft):0;"vertical"===l.type?(s.find("."+d).css({bottom:e+"%","margin-bottom":"20px"}),t=T(f()-h[0].offsetTop-h.height()),a=l.range?T(f()-h[1].offsetTop-h.height()):0):s.find("."+d).css("left",e+"%"),t=t>100?100:t,a=a>100?100:a;var n=Math.min(t,a),o=Math.abs(t-a);"vertical"===l.type?s.find("."+r).css({height:o+"%",bottom:n+"%"}):s.find("."+r).css({width:o+"%",left:n+"%"});var u=l.min+Math.round((l.max-l.min)*e/100);if(g=u,y.children("."+c).children("input").val(g),h.eq(i).data("value",u),u=l.setTips?l.setTips(u):u,s.find("."+d).html(u),l.range){var v=[h.eq(0).data("value"),h.eq(1).data("value")];v[0]>v[1]&&v.reverse()}l.change&&l.change(l.range?v:u)},T=function(e){var i=e/f()*100/b,t=Math.round(i)*b;return e==f()&&(t=Math.ceil(i)*b),t},w=i(['
    f()&&(r=f());var o=r/f()*100/b;x(o,e),t.addClass(p),s.find("."+d).show(),i.preventDefault()},o=function(){t.removeClass(p),s.find("."+d).hide()};M(r,o)})}),s.on("click",function(e){var t=i("."+u);if(!t.is(event.target)&&0===t.has(event.target).length&&t.length){var a,n="vertical"===l.type?f()-e.clientY+i(this).offset().top:e.clientX-i(this).offset().left;n<0&&(n=0),n>f()&&(n=f());var s=n/f()*100/b;a=l.range?"vertical"===l.type?Math.abs(n-parseInt(i(h[0]).css("bottom")))>Math.abs(n-parseInt(i(h[1]).css("bottom")))?1:0:Math.abs(n-h[0].offsetLeft)>Math.abs(n-h[1].offsetLeft)?1:0:0,x(s,a),e.preventDefault()}}),y.hover(function(){var e=i(this);e.children("."+m).fadeIn("fast")},function(){var e=i(this);e.children("."+m).fadeOut("fast")}),y.children("."+m).children("i").each(function(e){i(this).on("click",function(){g=1==e?g-l.stepl.max?l.max:Number(g)+l.step;var i=(g-l.min)/(l.max-l.min)*100/b;x(i,0)})});var q=function(){var e=this.value;e=isNaN(e)?0:e,e=el.max?l.max:e,this.value=e;var i=(e-l.min)/(l.max-l.min)*100/b;x(i,0)};y.children("."+c).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),q.call(this))}).on("change",q)},f.prototype.events=function(){var e=this;e.config},t.render=function(e){var i=new f(e);return a.call(i)},e(n,t)}); -------------------------------------------------------------------------------- /src/main/resources/static/lay/modules/transfer.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | ;layui.define(["laytpl","form"],function(e){"use strict";var a=layui.$,t=layui.laytpl,n=layui.form,i="transfer",l={config:{},index:layui[i]?layui[i].index+1e4:0,set:function(e){var t=this;return t.config=a.extend({},t.config,e),t},on:function(e,a){return layui.onevent.call(this,i,e,a)}},r=function(){var e=this,a=e.config,t=a.id||e.index;return r.that[t]=e,r.config[t]=a,{config:a,reload:function(a){e.reload.call(e,a)},getData:function(){return e.getData.call(e)}}},c="layui-hide",o="layui-btn-disabled",d="layui-none",s="layui-transfer-box",u="layui-transfer-header",h="layui-transfer-search",f="layui-transfer-active",y="layui-transfer-data",p=function(e){return e=e||{},['
    ','
    ','","
    ","{{# if(d.data.showSearch){ }}",'","{{# } }}",'
      ',"
      "].join("")},v=['
      ',p({index:0,checkAllName:"layTransferLeftCheckAll"}),'
      ','",'","
      ",p({index:1,checkAllName:"layTransferRightCheckAll"}),"
      "].join(""),x=function(e){var t=this;t.index=++l.index,t.config=a.extend({},t.config,l.config,e),t.render()};x.prototype.config={title:["列表一","列表二"],width:200,height:360,data:[],value:[],showSearch:!1,id:"",text:{none:"无数据",searchNone:"无匹配数据"}},x.prototype.reload=function(e){var t=this;layui.each(e,function(e,a){a.constructor===Array&&delete t.config[e]}),t.config=a.extend(!0,{},t.config,e),t.render()},x.prototype.render=function(){var e=this,n=e.config,i=e.elem=a(t(v).render({data:n,index:e.index})),l=n.elem=a(n.elem);l[0]&&(n.data=n.data||[],n.value=n.value||[],e.key=n.id||e.index,l.html(e.elem),e.layBox=e.elem.find("."+s),e.layHeader=e.elem.find("."+u),e.laySearch=e.elem.find("."+h),e.layData=i.find("."+y),e.layBtn=i.find("."+f+" .layui-btn"),e.layBox.css({width:n.width,height:n.height}),e.layData.css({height:function(){return n.height-e.layHeader.outerHeight()-e.laySearch.outerHeight()-2}()}),e.renderData(),e.events())},x.prototype.renderData=function(){var e=this,a=(e.config,[{checkName:"layTransferLeftCheck",views:[]},{checkName:"layTransferRightCheck",views:[]}]);e.parseData(function(e){var t=e.selected?1:0,n=["
    • ",'',"
    • "].join("");a[t].views.push(n),delete e.selected}),e.layData.eq(0).html(a[0].views.join("")),e.layData.eq(1).html(a[1].views.join("")),e.renderCheckBtn()},x.prototype.renderForm=function(e){n.render(e,"LAY-transfer-"+this.index)},x.prototype.renderCheckBtn=function(e){var t=this,n=t.config;e=e||{},t.layBox.each(function(i){var l=a(this),r=l.find("."+y),d=l.find("."+u).find('input[type="checkbox"]'),s=r.find('input[type="checkbox"]'),h=0,f=!1;if(s.each(function(){var e=a(this).data("hide");(this.checked||this.disabled||e)&&h++,this.checked&&!e&&(f=!0)}),d.prop("checked",f&&h===s.length),t.layBtn.eq(i)[f?"removeClass":"addClass"](o),!e.stopNone){var p=r.children("li:not(."+c+")").length;t.noneView(r,p?"":n.text.none)}}),t.renderForm("checkbox")},x.prototype.noneView=function(e,t){var n=a('

      '+(t||"")+"

      ");e.find("."+d)[0]&&e.find("."+d).remove(),t.replace(/\s/g,"")&&e.append(n)},x.prototype.setValue=function(){var e=this,t=e.config,n=[];return e.layBox.eq(1).find("."+y+' input[type="checkbox"]').each(function(){var e=a(this).data("hide");e||n.push(this.value)}),t.value=n,e},x.prototype.parseData=function(e){var t=this,n=t.config,i=[];return layui.each(n.data,function(t,l){l=("function"==typeof n.parseData?n.parseData(l):l)||l,i.push(l=a.extend({},l)),layui.each(n.value,function(e,a){a==l.value&&(l.selected=!0)}),e&&e(l)}),n.data=i,t},x.prototype.getData=function(e){var a=this,t=a.config,n=[];return a.setValue(),layui.each(e||t.value,function(e,a){layui.each(t.data,function(e,t){delete t.selected,a==t.value&&n.push(t)})}),n},x.prototype.events=function(){var e=this,t=e.config;e.elem.on("click",'input[lay-filter="layTransferCheckbox"]+',function(){var t=a(this).prev(),n=t[0].checked,i=t.parents("."+s).eq(0).find("."+y);t[0].disabled||("all"===t.attr("lay-type")&&i.find('input[type="checkbox"]').each(function(){this.disabled||(this.checked=n)}),e.renderCheckBtn({stopNone:!0}))}),e.layBtn.on("click",function(){var n=a(this),i=n.data("index"),l=e.layBox.eq(i),r=[];if(!n.hasClass(o)){e.layBox.eq(i).each(function(t){var n=a(this),i=n.find("."+y);i.children("li").each(function(){var t=a(this),n=t.find('input[type="checkbox"]'),i=n.data("hide");n[0].checked&&!i&&(n[0].checked=!1,l.siblings("."+s).find("."+y).append(t.clone()),t.remove(),r.push(n[0].value)),e.setValue()})}),e.renderCheckBtn();var c=l.siblings("."+s).find("."+h+" input");""===c.val()||c.trigger("keyup"),t.onchange&&t.onchange(e.getData(r),i)}}),e.laySearch.find("input").on("keyup",function(){var n=this.value,i=a(this).parents("."+h).eq(0).siblings("."+y),l=i.children("li");l.each(function(){var e=a(this),t=e.find('input[type="checkbox"]'),i=t[0].title.indexOf(n)!==-1;e[i?"removeClass":"addClass"](c),t.data("hide",!i)}),e.renderCheckBtn();var r=l.length===i.children("li."+c).length;e.noneView(i,r?t.text.searchNone:"")})},r.that={},r.config={},l.reload=function(e,a){var t=r.that[e];return t.reload(a),r.call(t)},l.getData=function(e){var a=r.that[e];return a.getData()},l.render=function(e){var a=new x(e);return r.call(a)},e(i,l)}); -------------------------------------------------------------------------------- /src/main/resources/static/lay/modules/upload.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | ;layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,n=layui.hint(),o=layui.device(),a={config:{},set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,r,e,t)}},l=function(){var e=this;return{upload:function(t){e.upload.call(e,t)},reload:function(t){e.reload.call(e,t)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var i=this;i.config=t.extend({},i.config,a.config,e),i.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",acceptMime:"",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var i=this,e=i.config;e.elem=t(e.elem),e.bindAction=t(e.bindAction),i.file(),i.events()},p.prototype.file=function(){var e=this,i=e.config,n=e.elemFile=t(['"].join("")),a=i.elem.next();(a.hasClass(u)||a.hasClass(c))&&a.remove(),o.ie&&o.ie<10&&i.elem.wrap('
      '),e.isFile()?(e.elemFile=i.elem,i.field=i.elem[0].name):i.elem.after(n),o.ie&&o.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,i=e.config,n=t(''),o=t(['
      ',"
      "].join(""));t("#"+f)[0]||t("body").append(n),i.elem.next().hasClass(c)||(e.elemFile.wrap(o),i.elem.next("."+c).append(function(){var e=[];return layui.each(i.data,function(t,i){i="function"==typeof i?i():i,e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return i.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var t=this;window.FileReader&&layui.each(t.chooseFiles,function(t,i){var n=new FileReader;n.readAsDataURL(i),n.onload=function(){e&&e(t,i,this.result)}})},p.prototype.upload=function(e,i){var n,a=this,l=a.config,r=a.elemFile[0],u=function(){var i=0,n=0,o=e||a.files||a.chooseFiles||r.files,u=function(){l.multiple&&i+n===a.fileLength&&"function"==typeof l.allDone&&l.allDone({total:a.fileLength,successful:i,aborted:n})};layui.each(o,function(e,o){var r=new FormData;r.append(l.field,o),layui.each(l.data,function(e,t){t="function"==typeof t?t():t,r.append(e,t)});var c={url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(t){i++,d(e,t),u()},error:function(){n++,a.msg("请求上传接口出现异常"),m(e),u()}};"function"==typeof l.progress&&(c.xhr=function(){var e=t.ajaxSettings.xhr();return e.upload.addEventListener("progress",function(e){if(e.lengthComputable){var t=Math.floor(e.loaded/e.total*100);l.progress(t,l.item[0],e)}}),e}),t.ajax(c)})},c=function(){var e=t("#"+f);a.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var t,i=e.contents().find("body");try{t=i.text()}catch(n){a.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}t&&(clearInterval(p.timer),i.html(""),d(0,t))},30)},d=function(e,t){if(a.elemFile.next("."+s).remove(),r.value="","object"!=typeof t)try{t=JSON.parse(t)}catch(i){return t={},a.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(t,e||0,function(e){a.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){a.upload(e)})},h=l.exts,v=function(){var t=[];return layui.each(e||a.chooseFiles,function(e,i){t.push(i.name)}),t}(),g={preview:function(e){a.preview(e)},upload:function(e,t){var i={};i[e]=t,a.upload(i)},pushFile:function(){return a.files=a.files||{},layui.each(a.chooseFiles,function(e,t){a.files[e]=t}),a.files},resetFile:function(e,t,i){var n=new File([t],i);a.files=a.files||{},a.files[e]=n}},y=function(){if("choose"!==i&&!l.auto||(l.choose&&l.choose(g),"choose"!==i))return l.before&&l.before(g),o.ie?o.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return a.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return a.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return a.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,t){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(t))||(n=!0)}),n)return a.msg("选择的图片中包含不支持的格式"),r.value=""}if(a.fileLength=function(){var t=0,i=e||a.files||a.chooseFiles||r.files;return layui.each(i,function(){t++}),t}(),l.number&&a.fileLength>l.number)return a.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(o.ie&&o.ie<10)){var F;if(layui.each(a.chooseFiles,function(e,t){if(t.size>1024*l.size){var i=l.size/1024;i=i>=1?i.toFixed(2)+"MB":l.size+"KB",r.value="",F=i}}),F)return a.msg("文件不能超过"+F)}y()}},p.prototype.reload=function(e){e=e||{},delete e.elem,delete e.bindAction;var i=this,e=i.config=t.extend({},i.config,a.config,e),n=e.elem.next();n.attr({name:e.name,accept:e.acceptMime,multiple:e.multiple})},p.prototype.events=function(){var e=this,i=e.config,a=function(t){e.chooseFiles={},layui.each(t,function(t,i){var n=(new Date).getTime();e.chooseFiles[n+"-"+t]=i})},l=function(t,n){var o=e.elemFile,a=t.length>1?t.length+"个文件":(t[0]||{}).name||o[0].value.match(/[^\/\\]+\..+/g)||[]||"";o.next().hasClass(s)&&o.next().remove(),e.upload(null,"choose"),e.isFile()||i.choose||o.after(''+a+"")};i.elem.off("upload.start").on("upload.start",function(){var o=t(this),a=o.attr("lay-data");if(a)try{a=new Function("return "+a)(),e.config=t.extend({},i,a)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+a)}e.config.item=o,e.elemFile[0].click()}),o.ie&&o.ie<10||i.elem.off("upload.over").on("upload.over",function(){var e=t(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=t(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,o){var r=t(this),u=o.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),a(u),i.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var t=this.files||[];a(t),i.auto?e.upload():l(t)}),i.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),i.elem.data("haveEvents")||(e.elemFile.on("change",function(){t(this).trigger("upload.change")}),i.elem.on("click",function(){e.isFile()||t(this).trigger("upload.start")}),i.drag&&i.elem.on("dragover",function(e){e.preventDefault(),t(this).trigger("upload.over")}).on("dragleave",function(e){t(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),t(this).trigger("upload.drop",e)}),i.bindAction.on("click",function(){t(this).trigger("upload.action")}),i.elem.data("haveEvents",!0))},a.render=function(e){var t=new p(e);return l.call(t)},e(r,a)}); -------------------------------------------------------------------------------- /src/main/resources/static/lay/modules/util.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var t=layui.$,i={fixbar:function(e){var i,n,a="layui-fixbar",o="layui-fixbar-top",r=t(document),l=t("body");e=t.extend({showHeight:200},e),e.bar1=e.bar1===!0?"":e.bar1,e.bar2=e.bar2===!0?"":e.bar2,e.bgcolor=e.bgcolor?"background-color:"+e.bgcolor:"";var c=[e.bar1,e.bar2,""],u=t(['
        ',e.bar1?'
      • '+c[0]+"
      • ":"",e.bar2?'
      • '+c[1]+"
      • ":"",'
      • '+c[2]+"
      • ","
      "].join("")),g=u.find("."+o),s=function(){var t=r.scrollTop();t>=e.showHeight?i||(g.show(),i=1):i&&(g.hide(),i=0)};t("."+a)[0]||("object"==typeof e.css&&u.css(e.css),l.append(u),s(),u.find("li").on("click",function(){var i=t(this),n=i.attr("lay-type");"top"===n&&t("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,n)}),r.on("scroll",function(){clearTimeout(n),n=setTimeout(function(){s()},100)}))},countdown:function(e,t,i){var n=this,a="function"==typeof t,o=new Date(e).getTime(),r=new Date(!t||a?(new Date).getTime():t).getTime(),l=o-r,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];a&&(i=t);var u=setTimeout(function(){n.countdown(e,r+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],t,u),l<=0&&clearTimeout(u),u},timeAgo:function(e,t){var i=this,n=[[],[]],a=(new Date).getTime()-new Date(e).getTime();return a>26784e5?(a=new Date(e),n[0][0]=i.digit(a.getFullYear(),4),n[0][1]=i.digit(a.getMonth()+1),n[0][2]=i.digit(a.getDate()),t||(n[1][0]=i.digit(a.getHours()),n[1][1]=i.digit(a.getMinutes()),n[1][2]=i.digit(a.getSeconds())),n[0].join("-")+" "+n[1].join(":")):a>=864e5?(a/1e3/60/60/24|0)+"天前":a>=36e5?(a/1e3/60/60|0)+"小时前":a>=18e4?(a/1e3/60|0)+"分钟前":a<0?"未来":"刚刚"},digit:function(e,t){var i="";e=String(e),t=t||2;for(var n=e.length;n/g,">").replace(/'/g,"'").replace(/"/g,""")},event:function(e,n,a){var o=t("body");return a=a||"click",n=i.event[e]=t.extend(!0,i.event[e],n)||{},i.event.UTIL_EVENT_CALLBACK=i.event.UTIL_EVENT_CALLBACK||{},o.off(a,"*["+e+"]",i.event.UTIL_EVENT_CALLBACK[e]),i.event.UTIL_EVENT_CALLBACK[e]=function(){var i=t(this),a=i.attr(e);"function"==typeof n[a]&&n[a].call(this,i)},o.on(a,"*["+e+"]",i.event.UTIL_EVENT_CALLBACK[e]),n}};!function(e,t,i){"$:nomunge";function n(){a=t[l](function(){o.each(function(){var t=e(this),i=t.width(),n=t.height(),a=e.data(this,u);(i!==a.w||n!==a.h)&&t.trigger(c,[a.w=i,a.h=n])}),n()},r[g])}var a,o=e([]),r=e.resize=e.extend(e.resize,{}),l="setTimeout",c="resize",u=c+"-special-event",g="delay",s="throttleWindow";r[g]=250,r[s]=!0,e.event.special[c]={setup:function(){if(!r[s]&&this[l])return!1;var t=e(this);o=o.add(t),e.data(this,u,{w:t.width(),h:t.height()}),1===o.length&&n()},teardown:function(){if(!r[s]&&this[l])return!1;var t=e(this);o=o.not(t),t.removeData(u),o.length||clearTimeout(a)},add:function(t){function n(t,n,o){var r=e(this),l=e.data(this,u)||{};l.w=n!==i?n:r.width(),l.h=o!==i?o:r.height(),a.apply(this,arguments)}if(!r[s]&&this[l])return!1;var a;return e.isFunction(t)?(a=t,n):(a=t.handler,void(t.handler=n))}}}(t,window),e("util",i)}); -------------------------------------------------------------------------------- /src/main/resources/static/layui.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.6 MIT License By https://www.layui.com */ 2 | ;!function(e){"use strict";var t=document,n={modules:{},status:{},timeout:10,event:{}},r=function(){this.v="2.5.6"},o=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,n=t.scripts,r=n.length-1,o=r;o>0;o--)if("interactive"===n[o].readyState){e=n[o].src;break}return e||n[r].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),a=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},i="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",transfer:"modules/transfer",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",colorpicker:"modules/colorpicker",slider:"modules/slider",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};r.prototype.cache=n,r.prototype.define=function(e,t){var r=this,o="function"==typeof e,a=function(){var e=function(e,t){layui[e]=t,n.status[e]=!0};return"function"==typeof t&&t(function(r,o){e(r,o),n.callback[r]=function(){t(e)}}),this};return o&&(t=e,e=[]),!layui["layui.all"]&&layui["layui.mobile"]?a.call(r):(r.use(e,a),r)},r.prototype.use=function(e,r,l){function c(e,t){var r="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||r.test((e.currentTarget||e.srcElement).readyState))&&(n.modules[d]=t,y.removeChild(h),function o(){return++m>1e3*n.timeout/4?a(d+" is not a valid module"):void(n.status[d]?s():setTimeout(o,4))}())}function s(){l.push(layui[d]),e.length>1?p.use(e.slice(1),r,l):"function"==typeof r&&r.apply(layui,l)}var p=this,f=n.dir=n.dir?n.dir:o,y=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(p.each(e,function(t,n){"jquery"===n&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var d=e[0],m=0;if(l=l||[],n.host=n.host||(f.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[d]||!layui["layui.all"]&&layui["layui.mobile"]&&u[d])return s(),p;var v=(u[d]?f+"lay/":/^\{\/\}/.test(p.modules[d])?"":n.base||"")+(p.modules[d]||d)+".js";if(v=v.replace(/^\{\/\}/,""),!n.modules[d]&&layui[d]&&(n.modules[d]=v),n.modules[d])!function g(){return++m>1e3*n.timeout/4?a(d+" is not a valid module"):void("string"==typeof n.modules[d]&&n.status[d]?s():setTimeout(g,4))}();else{var h=t.createElement("script");h.async=!0,h.charset="utf-8",h.src=v+function(){var e=n.version===!0?n.v||(new Date).getTime():n.version||"";return e?"?v="+e:""}(),y.appendChild(h),!h.attachEvent||h.attachEvent.toString&&h.attachEvent.toString().indexOf("[native code")<0||i?h.addEventListener("load",function(e){c(e,v)},!1):h.attachEvent("onreadystatechange",function(e){c(e,v)}),n.modules[d]=v}return p},r.prototype.getStyle=function(t,n){var r=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return r[r.getPropertyValue?"getPropertyValue":"getAttribute"](n)},r.prototype.link=function(e,r,o){var i=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof r&&(o=r);var c=(o||e).replace(/\.|\//g,""),s=u.id="layuicss-"+c,p=0;return u.rel="stylesheet",u.href=e+(n.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(s)||l.appendChild(u),"function"!=typeof r?i:(function f(){return++p>1e3*n.timeout/100?a(e+" timeout"):void(1989===parseInt(i.getStyle(t.getElementById(s),"width"))?function(){r()}():setTimeout(f,100))}(),i)},n.callback={},r.prototype.factory=function(e){if(layui[e])return"function"==typeof n.callback[e]?n.callback[e]:null},r.prototype.addcss=function(e,t,r){return layui.link(n.dir+"css/"+e,t,r)},r.prototype.img=function(e,t,n){var r=new Image;return r.src=e,r.complete?t(r):(r.onload=function(){r.onload=null,"function"==typeof t&&t(r)},void(r.onerror=function(e){r.onerror=null,"function"==typeof n&&n(e)}))},r.prototype.config=function(e){e=e||{};for(var t in e)n[t]=e[t];return this},r.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),r.prototype.extend=function(e){var t=this;e=e||{};for(var n in e)t[n]||t.modules[n]?a("模块名 "+n+" 已被占用"):t.modules[n]=e[n];return t},r.prototype.router=function(e){var t=this,e=e||location.hash,n={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),n.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),n.search[t[0]]=t[1]}():n.path.push(t)}),n):n},r.prototype.url=function(e){var t=this,n={pathname:function(){var t=e?function(){var t=(e.match(/\.[^.]+?\/.+/)||[])[0]||"";return t.replace(/^[^\/]+/,"").replace(/\?.+/,"")}():location.pathname;return t.replace(/^\//,"").split("/")}(),search:function(){var n={},r=(e?function(){var t=(e.match(/\?.+/)||[])[0]||"";return t.replace(/\#.+/,"")}():location.search).replace(/^\?+/,"").split("&");return t.each(r,function(e,t){var r=t.indexOf("="),o=function(){return r<0?t.substr(0,t.length):0!==r&&t.substr(0,r)}();o&&(n[o]=r>0?t.substr(r+1):null)}),n}(),hash:t.router(function(){return e?(e.match(/#.+/)||[])[0]||"":location.hash}())};return n},r.prototype.data=function(t,n,r){if(t=t||"layui",r=r||localStorage,e.JSON&&e.JSON.parse){if(null===n)return delete r[t];n="object"==typeof n?n:{key:n};try{var o=JSON.parse(r[t])}catch(a){var o={}}return"value"in n&&(o[n.key]=n.value),n.remove&&delete o[n.key],r[t]=JSON.stringify(o),n.key?o[n.key]:o}},r.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},r.prototype.device=function(t){var n=navigator.userAgent.toLowerCase(),r=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(n.match(t)||[])[1],e||!1},o={os:function(){return/windows/.test(n)?"windows":/linux/.test(n)?"linux":/iphone|ipod|ipad|ios/.test(n)?"ios":/mac/.test(n)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((n.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:r("micromessenger")};return t&&!o[t]&&(o[t]=r(t)),o.android=/android/.test(n),o.ios="ios"===o.os,o.mobile=!(!o.android&&!o.ios),o},r.prototype.hint=function(){return{error:a}},r.prototype.each=function(e,t){var n,r=this;if("function"!=typeof t)return r;if(e=e||[],e.constructor===Object){for(n in e)if(t.call(e[n],n,e[n]))break}else for(n=0;na?1:o 2 | 3 |
      4 |
      5 | 6 | 42 | 45 | -------------------------------------------------------------------------------- /src/main/resources/templates/doctor/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 医药管理系统 7 | 8 | 9 | 10 |
      11 |
      12 | 13 | 14 |
        15 | 16 |
      17 | 26 |
      27 | 28 |
      29 |
      30 | 31 | 42 |
      43 |
      44 | 45 |
      46 | 47 |
      48 | 49 |
      50 | 51 |
      52 |
      53 |
      54 |
      55 | 56 |
      57 | 58 | 95 | 96 | -------------------------------------------------------------------------------- /src/main/resources/templates/drug/index1.html: -------------------------------------------------------------------------------- 1 |
      2 | 3 |
      4 |
      5 | 6 | 32 | -------------------------------------------------------------------------------- /src/main/resources/templates/drug/monthSta.html: -------------------------------------------------------------------------------- 1 |
      2 |
      3 |
      4 |
      5 | 71 | -------------------------------------------------------------------------------- /src/main/resources/templates/drug/quarterSta.html: -------------------------------------------------------------------------------- 1 |
      2 |
      3 |
      4 |
      5 | 71 | -------------------------------------------------------------------------------- /src/main/resources/templates/drug/report.html: -------------------------------------------------------------------------------- 1 |
      2 | 3 |
      4 |
      5 | 12 | 81 | -------------------------------------------------------------------------------- /src/main/resources/templates/drug/stastic.html: -------------------------------------------------------------------------------- 1 |
      2 |
      3 |
      4 |
      5 | 71 | -------------------------------------------------------------------------------- /src/main/resources/templates/drugadminuser/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 医药管理系统 7 | 8 | 9 | 10 |
      11 |
      12 | 13 | 14 |
        15 | 16 |
      17 | 26 |
      27 | 28 |
      29 |
      30 | 31 | 45 |
      46 |
      47 | 48 |
      49 | 50 |
      51 | 52 | 53 |
      54 |
      55 | 56 |
      57 | 58 | 74 | 75 | -------------------------------------------------------------------------------- /src/main/resources/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 医药管理系统 7 | 8 | 9 | 10 | 11 |
      12 |
      13 | 14 | 15 |
        16 | 17 |
      18 | 27 |
      28 | 29 |
      30 |
      31 | 32 | 55 |
      56 |
      57 | 58 |
      59 | 60 |
      61 |
      62 | 63 |
      64 |
      65 | 72 |
      73 |
      74 | 75 |
      76 | 77 | 78 | 158 | 159 | -------------------------------------------------------------------------------- /src/main/resources/templates/patient/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 医药管理系统 7 | 8 | 9 | 10 |
      11 |
      12 | 13 | 14 |
        15 | 16 |
      17 | 29 |
      30 | 31 |
      32 |
      33 | 34 | 42 |
      43 |
      44 | 45 |
      46 | 47 |
      48 | 49 | 50 |
      51 |
      52 | 53 |
      54 | 55 | 72 | 73 | -------------------------------------------------------------------------------- /src/main/resources/templates/patient/selfinfo.html: -------------------------------------------------------------------------------- 1 |
      2 |
      3 | 4 |
      5 | 7 |
      8 |
      9 |
      10 | 11 |
      12 | 13 | 14 |
      15 |
      16 |
      17 | 18 |
      19 | 21 |
      22 |
      23 |
      24 | 25 |
      26 | 28 |
      29 |
      30 |
      31 | 32 |
      33 | 35 |
      36 |
      37 |
      38 | 39 |
      40 | 42 |
      43 |
      44 |
      45 | 46 |
      47 | 49 |
      50 |
      51 | 52 |
      53 |
      54 | 55 |
      56 |
      57 |
      58 | 59 | -------------------------------------------------------------------------------- /src/main/resources/templates/prescription/patientPresc.html: -------------------------------------------------------------------------------- 1 |
      2 | 3 |
      4 |
      5 | 8 | -------------------------------------------------------------------------------- /src/main/resources/templates/user/index.html: -------------------------------------------------------------------------------- 1 |
      2 | 3 |
      4 |
      5 | 6 | 7 | 14 | 15 | 19 | 20 | 90 | -------------------------------------------------------------------------------- /src/test/java/com/sl/boot/admindemo/AdmindemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.sl.boot.admindemo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AdmindemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | @Test 14 | void testTrim() { 15 | String str = " "; 16 | System.out.println(str.equals("")); 17 | System.out.println(str.trim().equals("")); 18 | } 19 | 20 | @Test 21 | void quan() { 22 | int a[] = {1, 2, 3, 4, 5, 6}; 23 | 24 | int l = a.length; 25 | 26 | int nBit = 1 << l; 27 | 28 | for (int i = 1; i <= nBit; i++) { 29 | for (int j = 0; j < l; j++) { 30 | if ((i << (31 - j)) >> 31 == -1) { 31 | System.out.print(a[j]); 32 | String.valueOf(a[j]); 33 | } 34 | } 35 | System.out.println(); 36 | } 37 | 38 | } 39 | 40 | } 41 | --------------------------------------------------------------------------------