├── .mvn └── wrapper │ ├── maven-wrapper.jar │ ├── maven-wrapper.properties │ └── MavenWrapperDownloader.java ├── src ├── main │ ├── resources │ │ ├── static │ │ │ ├── images │ │ │ │ ├── bg.png │ │ │ │ ├── bg1.jpeg │ │ │ │ └── aiwrap.png │ │ │ ├── fonts │ │ │ │ ├── iconfont.eot │ │ │ │ ├── iconfont.ttf │ │ │ │ └── iconfont.woff │ │ │ ├── lib │ │ │ │ └── layui │ │ │ │ │ ├── font │ │ │ │ │ ├── iconfont.eot │ │ │ │ │ ├── iconfont.ttf │ │ │ │ │ └── iconfont.woff │ │ │ │ │ ├── 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 │ │ │ │ │ ├── css │ │ │ │ │ └── modules │ │ │ │ │ │ ├── layer │ │ │ │ │ │ └── default │ │ │ │ │ │ │ ├── icon.png │ │ │ │ │ │ │ ├── icon-ext.png │ │ │ │ │ │ │ ├── loading-0.gif │ │ │ │ │ │ │ ├── loading-1.gif │ │ │ │ │ │ │ └── loading-2.gif │ │ │ │ │ │ └── code.css │ │ │ │ │ └── lay │ │ │ │ │ └── modules │ │ │ │ │ ├── code.js │ │ │ │ │ ├── laytpl.js │ │ │ │ │ ├── flow.js │ │ │ │ │ ├── rate.js │ │ │ │ │ ├── tree.js │ │ │ │ │ ├── util.js │ │ │ │ │ ├── carousel.js │ │ │ │ │ └── laypage.js │ │ │ ├── css │ │ │ │ ├── theme2.css │ │ │ │ ├── theme3.css │ │ │ │ ├── theme1.css │ │ │ │ ├── theme4.css │ │ │ │ ├── font.css │ │ │ │ ├── theme5.css │ │ │ │ ├── login.css │ │ │ │ └── from1.css │ │ │ ├── html │ │ │ │ ├── error.html │ │ │ │ ├── login.html │ │ │ │ ├── faseLogin.html │ │ │ │ ├── fase.html │ │ │ │ ├── echarts2.html │ │ │ │ ├── toExcal.html │ │ │ │ ├── echarts1.html │ │ │ │ └── person_1_add.html │ │ │ └── js │ │ │ │ └── bmap.min.js │ │ ├── mappers │ │ │ ├── OrganizationNumMapper.xml │ │ │ ├── UnitKindMapper.xml │ │ │ ├── EmploymentWayMapper.xml │ │ │ ├── AreaMapper.xml │ │ │ ├── PersonInfoMapper.xml │ │ │ ├── ClassGradeMapper.xml │ │ │ ├── SpecialtyMapper.xml │ │ │ └── CollegeMapper.xml │ │ └── application.yml │ └── java │ │ └── com │ │ └── gr │ │ └── geias │ │ ├── dto │ │ ├── AreaCount.java │ │ ├── CollegeAndPerson.java │ │ ├── SpecialtyAndCollege.java │ │ ├── EmploymentInformationMsg.java │ │ ├── ClassGradeAndSpecialty.java │ │ └── EmploymentInformationExcal.java │ │ ├── service │ │ ├── EmploymentWayService.java │ │ ├── UnitKindService.java │ │ ├── AreaService.java │ │ ├── impl │ │ │ ├── AreaServiceImpl.java │ │ │ ├── UnitKindServiceImpl.java │ │ │ ├── EmploymentWayServiceImpl.java │ │ │ ├── OrganizationNumServiceImpl.java │ │ │ ├── EmploymentInformationServiceImpl.java │ │ │ ├── SpecialtyServiceImpl.java │ │ │ ├── ClassGradeServiceImpl.java │ │ │ ├── PersonInfoServiceImpl.java │ │ │ └── CollegeServiceImpl.java │ │ ├── OrganizationNumService.java │ │ ├── ClassGradeService.java │ │ ├── CollegeService.java │ │ ├── SpecialtyService.java │ │ ├── EmploymentInformationService.java │ │ └── PersonInfoService.java │ │ ├── entity │ │ ├── OrganizationNum.java │ │ ├── UnitKind.java │ │ ├── EmploymentWay.java │ │ ├── Area.java │ │ ├── College.java │ │ ├── Specialty.java │ │ ├── ClassGrade.java │ │ ├── PersonInfo.java │ │ └── EmploymentInformation.java │ │ ├── util │ │ ├── PageMath.java │ │ ├── SampleFactory.java │ │ ├── Faseutil.java │ │ └── ExcalUtil.java │ │ ├── GeiasApplication.java │ │ ├── mapper │ │ ├── AreaMapper.java │ │ ├── UnitKindMapper.java │ │ ├── EmploymentWayMapper.java │ │ ├── CollegeMapper.java │ │ ├── ClassGradeMapper.java │ │ ├── SpecialtyMapper.java │ │ ├── EmploymentInformationMapper.java │ │ ├── PersonInfoMapper.java │ │ └── OrganizationNumMapper.java │ │ ├── aspect │ │ └── PersonFase.java │ │ ├── enums │ │ └── EnableStatusEnums.java │ │ ├── Interceptor │ │ ├── SuperAdminInterceptor.java │ │ ├── LoginInterceptor.java │ │ ├── AdminInterceptor.java │ │ ├── Person0Interceptor.java │ │ ├── ClassGradeInterceptor.java │ │ └── SpecialtyIntercepetor.java │ │ ├── config │ │ └── WebConfigurer.java │ │ └── controller │ │ ├── InitController.java │ │ └── PersonInfoController.java └── test │ └── java │ └── com │ └── gr │ └── geias │ ├── dao │ └── ClassGradeDaoTest.java │ ├── util │ └── ExcalUtilTest.java │ ├── mapper │ ├── PersonInfoMapperTest.java │ ├── ClassGradeMapperTest.java │ ├── SpecialtyMapperTest.java │ ├── AreaMapperTest.java │ └── CollegeMapperTest.java │ ├── GeiasApplicationTests.java │ └── service │ └── impl │ ├── SpecialtyServiceImplTest.java │ └── CollegeServiceImplTest.java ├── .gitignore ├── README.md └── pom.xml /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /src/main/resources/static/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/images/bg.png -------------------------------------------------------------------------------- /src/main/resources/static/images/bg1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/images/bg1.jpeg -------------------------------------------------------------------------------- /src/main/resources/static/fonts/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/fonts/iconfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/fonts/iconfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/fonts/iconfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/images/aiwrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/images/aiwrap.png -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/font/iconfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/font/iconfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/font/iconfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/0.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/1.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/10.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/11.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/12.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/13.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/14.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/15.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/16.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/17.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/18.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/19.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/2.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/20.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/20.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/21.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/22.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/23.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/24.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/25.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/26.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/27.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/28.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/28.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/29.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/3.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/30.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/31.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/31.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/32.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/33.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/34.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/35.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/36.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/37.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/38.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/39.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/4.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/40.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/40.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/41.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/42.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/42.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/43.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/43.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/44.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/44.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/45.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/45.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/46.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/47.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/47.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/48.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/49.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/49.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/5.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/50.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/51.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/51.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/52.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/52.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/53.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/54.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/54.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/55.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/55.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/56.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/56.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/57.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/57.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/58.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/58.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/59.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/59.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/6.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/60.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/60.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/61.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/61.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/62.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/62.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/63.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/64.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/65.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/65.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/66.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/66.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/67.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/67.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/68.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/68.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/69.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/69.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/7.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/70.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/70.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/71.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/71.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/8.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/images/face/9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/images/face/9.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/css/modules/layer/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/css/modules/layer/default/icon.png -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/css/modules/layer/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/css/modules/layer/default/icon-ext.png -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/css/modules/layer/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/css/modules/layer/default/loading-0.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/css/modules/layer/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/css/modules/layer/default/loading-1.gif -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/css/modules/layer/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gr2222/GEIAS/HEAD/src/main/resources/static/lib/layui/css/modules/layer/default/loading-2.gif -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /src/main/resources/mappers/OrganizationNumMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/main/resources/mappers/UnitKindMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/main/resources/mappers/EmploymentWayMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/dto/AreaCount.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.dto; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author maitentai 7 | * @version 1.0 8 | * @date 2020-03-08 13:50 9 | */ 10 | @Data 11 | public class AreaCount { 12 | private String name; 13 | private Integer value; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/EmploymentWayService.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service; 2 | 3 | import com.gr.geias.entity.EmploymentWay; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | *

9 | * 服务类 10 | *

11 | * 12 | * @author maotentai 13 | * @since 2020-03-06 14 | */ 15 | public interface EmploymentWayService { 16 | 17 | List getEmploymentWay(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/test/java/com/gr/geias/dao/ClassGradeDaoTest.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.dao; 2 | 3 | 4 | import com.gr.geias.GeiasApplicationTests; 5 | import org.junit.jupiter.api.Test; 6 | 7 | /** 8 | * @author maitentai 9 | * @version 1.0 10 | * @date 2020-03-06 09:36 11 | */ 12 | 13 | class ClassGradeDaoTest extends GeiasApplicationTests { 14 | 15 | @Test 16 | public void test01() { 17 | 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/theme2.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background:#EEF5F9; 3 | } 4 | .container{ 5 | background:#323640; 6 | } 7 | .left-nav{ 8 | background:#fff; 9 | } 10 | 11 | .left-nav a{ 12 | color:#686a76; 13 | } 14 | .left-nav a.active{ 15 | background: #786AED !important; 16 | color: #fff; 17 | } 18 | .left-nav a:hover{ 19 | background: #786AED !important; 20 | color: #fff; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/resources/static/css/theme3.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background:#E8E8E8; 3 | } 4 | .container{ 5 | background:#F34743; 6 | } 7 | 8 | .left-nav{ 9 | background:#F4F4F4; 10 | } 11 | 12 | .left-nav a{ 13 | color:#686a76; 14 | } 15 | .left-nav a.active{ 16 | background: #FEFEFE !important; 17 | color: #F34743; 18 | } 19 | .left-nav a:hover{ 20 | background: #FEFEFE !important; 21 | color: #F34743; 22 | } -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/entity/OrganizationNum.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.entity; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author maitentai 7 | * @version 1.0 8 | * @date 2020-03-09 09:03 9 | */ 10 | @Data 11 | public class OrganizationNum { 12 | private Integer numId; 13 | private Integer sum; 14 | private Integer classId; 15 | private Integer collegeId; 16 | private Integer specialtyId; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/resources/static/css/theme1.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background:#F2F1F2; 3 | } 4 | .container{ 5 | background:#1A1B20; 6 | } 7 | .left-nav{ 8 | background:#1A1B20; 9 | } 10 | 11 | .left-nav a{ 12 | color:rgba(255,255,255,.7); 13 | } 14 | ..left-nav a.active{ 15 | background: #009688 !important; 16 | color: #fff; 17 | } 18 | .left-nav a:hover{ 19 | background: #009688 !important; 20 | color: #fff; 21 | } -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/UnitKindService.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service; 2 | 3 | import com.gr.geias.entity.UnitKind; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | *

9 | * 服务类 10 | *

11 | * 12 | * @author maotentai 13 | * @since 2020-03-06 14 | */ 15 | public interface UnitKindService { 16 | /** 17 | * 获取工作分类 18 | * @return 19 | */ 20 | List getUnitKind(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/resources/static/css/theme4.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background:#E4E4E4; 3 | } 4 | .container{ 5 | background:#019587; 6 | } 7 | .left-nav{ 8 | background:#263035; 9 | } 10 | 11 | .left-nav a{ 12 | color:#fff; 13 | } 14 | .left-nav a.active{ 15 | background: #212525 !important; 16 | color: #fff !important; 17 | } 18 | .left-nav a:hover{ 19 | background: #212525 !important; 20 | color: #fff !important; 21 | } -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/AreaService.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service; 2 | 3 | import com.gr.geias.entity.Area; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | *

9 | * 服务类 10 | *

11 | * 12 | * @author maotentai 13 | * @since 2020-03-06 14 | */ 15 | public interface AreaService { 16 | /** 17 | * 查询地区 18 | * @param area 19 | * @return 20 | */ 21 | List getArea(Area area); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/dto/CollegeAndPerson.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.dto; 2 | 3 | import com.gr.geias.entity.College; 4 | import com.gr.geias.entity.PersonInfo; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author maitentai 9 | * @version 1.0 10 | * @date 2020-03-08 20:05 11 | */ 12 | @Data 13 | public class CollegeAndPerson { 14 | private College college; 15 | private PersonInfo personInfo; 16 | private Integer sum; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/dto/SpecialtyAndCollege.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.dto; 2 | 3 | import com.gr.geias.entity.College; 4 | import com.gr.geias.entity.Specialty; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author maitentai 9 | * @version 1.0 10 | * @date 2020-03-10 11:09 11 | */ 12 | @Data 13 | public class SpecialtyAndCollege { 14 | private Specialty specialty; 15 | private College college; 16 | private Integer sum; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/dto/EmploymentInformationMsg.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.dto; 2 | 3 | import com.gr.geias.entity.EmploymentInformation; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @author maitentai 10 | * @version 1.0 11 | * @date 2020-03-07 19:01 12 | */ 13 | @Data 14 | public class EmploymentInformationMsg { 15 | private Boolean success; 16 | private List list; 17 | private Integer count; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/util/PageMath.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.util; 2 | 3 | /** 4 | * @author maitentai 5 | * @version 1.0 6 | * @date 2020-02-16 09:20 7 | */ 8 | public class PageMath { 9 | /** 10 | * 将前端的pageNum 页码 转换为 Dao层理解的 行数 11 | * @param pageNum 页码 12 | * @param pageSize 每一页的大小 13 | * @return 行数 14 | */ 15 | public static int pageNumtoRowIndex(int pageNum,int pageSize){ 16 | return pageNum>0?(pageNum-1)*pageSize:0; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/GeiasApplication.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | @SpringBootApplication 8 | @MapperScan("com.gr.geias.mapper") 9 | public class GeiasApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(GeiasApplication.class, args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/mapper/AreaMapper.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.entity.Area; 4 | import org.apache.ibatis.annotations.Param; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author maotentai 14 | * @since 2020-03-06 15 | */ 16 | public interface AreaMapper { 17 | /** 18 | * 获取地区信息 19 | * @param area 20 | * @return 21 | */ 22 | List queryArea(@Param("area") Area area); 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/entity/UnitKind.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.entity; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.time.LocalDateTime; 7 | import java.util.Date; 8 | 9 | /** 10 | *

11 | * 12 | *

13 | * 14 | * @author maotentai 15 | * @since 2020-03-06 16 | */ 17 | @Data 18 | public class UnitKind implements Serializable { 19 | 20 | private Integer unitId; 21 | 22 | private String unitName; 23 | 24 | private Date createTime; 25 | 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/mapper/UnitKindMapper.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.entity.UnitKind; 4 | import org.apache.ibatis.annotations.Select; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author maotentai 14 | * @since 2020-03-06 15 | */ 16 | public interface UnitKindMapper { 17 | /** 18 | * 查询工作分类 19 | * @return 20 | */ 21 | @Select("select * from tb_unit_kind") 22 | List queryUnitKind(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/entity/EmploymentWay.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.entity; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.time.LocalDateTime; 7 | import java.util.Date; 8 | 9 | /** 10 | *

11 | * 12 | *

13 | * 14 | * @author maotentai 15 | * @since 2020-03-06 16 | */ 17 | @Data 18 | public class EmploymentWay implements Serializable { 19 | 20 | private Integer employmentWayId; 21 | 22 | private String vayName; 23 | 24 | private Date createTime; 25 | 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/dto/ClassGradeAndSpecialty.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.dto; 2 | 3 | import com.gr.geias.entity.ClassGrade; 4 | import com.gr.geias.entity.PersonInfo; 5 | import com.gr.geias.entity.Specialty; 6 | import lombok.Data; 7 | 8 | /** 9 | * @author maitentai 10 | * @version 1.0 11 | * @date 2020-03-10 15:57 12 | */ 13 | @Data 14 | public class ClassGradeAndSpecialty { 15 | private ClassGrade classGrade; 16 | private Specialty specialty; 17 | private PersonInfo personInfo; 18 | private Integer sum; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/entity/Area.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.entity; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.time.LocalDateTime; 7 | import java.util.Date; 8 | 9 | /** 10 | *

11 | * 12 | *

13 | * 14 | * @author maotentai 15 | * @since 2020-03-06 16 | */ 17 | @Data 18 | public class Area implements Serializable { 19 | 20 | private Integer areaId; 21 | 22 | private String areaName; 23 | 24 | private Integer parentId; 25 | 26 | private Date createTime; 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/entity/College.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.entity; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.time.LocalDateTime; 7 | import java.util.Date; 8 | 9 | /** 10 | *

11 | * 12 | *

13 | * 14 | * @author maotentai 15 | * @since 2020-03-06 16 | */ 17 | @Data 18 | public class College implements Serializable { 19 | 20 | private Integer collegeId; 21 | 22 | private String collegeName; 23 | 24 | private Date createTime; 25 | 26 | private Integer adminId; 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/mapper/EmploymentWayMapper.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.entity.EmploymentWay; 4 | import org.apache.ibatis.annotations.Select; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author maotentai 14 | * @since 2020-03-06 15 | */ 16 | public interface EmploymentWayMapper { 17 | /** 18 | * 获取工作来源 19 | * @return 20 | */ 21 | @Select("select * from tb_employment_way") 22 | List queryEmploymentWay(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/entity/Specialty.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.entity; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.time.LocalDateTime; 7 | import java.util.Date; 8 | 9 | /** 10 | *

11 | * 12 | *

13 | * 14 | * @author maotentai 15 | * @since 2020-03-06 16 | */ 17 | @Data 18 | public class Specialty implements Serializable { 19 | 20 | private Integer specialtyId; 21 | 22 | private String specialtyName; 23 | 24 | private Integer collegeId; 25 | 26 | private Date createTime; 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.js linguist-language=java 2 | *.css linguist-language=java 3 | *.html linguist-language=java 4 | 5 | HELP.md 6 | target/ 7 | !.mvn/wrapper/maven-wrapper.jar 8 | !**/src/main/** 9 | !**/src/test/** 10 | 11 | ### STS ### 12 | .apt_generated 13 | .classpath 14 | .factorypath 15 | .project 16 | .settings 17 | .springBeans 18 | .sts4-cache 19 | 20 | ### IntelliJ IDEA ### 21 | .idea 22 | *.iws 23 | *.iml 24 | *.ipr 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | build/ 33 | 34 | ### VS Code ### 35 | .vscode/ 36 | -------------------------------------------------------------------------------- /src/test/java/com/gr/geias/util/ExcalUtilTest.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.util; 2 | 3 | import com.gr.geias.GeiasApplicationTests; 4 | import org.junit.jupiter.api.Test; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | 7 | import static org.junit.jupiter.api.Assertions.*; 8 | 9 | /** 10 | * @author maitentai 11 | * @version 1.0 12 | * @date 2020-03-13 22:33 13 | */ 14 | class ExcalUtilTest extends GeiasApplicationTests { 15 | @Autowired 16 | ExcalUtil excalUtil; 17 | 18 | @Test 19 | void createExcal() { 20 | //excalUtil.createExcal(); 21 | } 22 | } -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/entity/ClassGrade.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.entity; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.time.LocalDateTime; 7 | import java.util.Date; 8 | 9 | /** 10 | *

11 | * 12 | *

13 | * 14 | * @author maotentai 15 | * @since 2020-03-06 16 | */ 17 | @Data 18 | public class ClassGrade implements Serializable { 19 | 20 | private Integer classId; 21 | 22 | private String className; 23 | 24 | private Integer specialtyId; 25 | 26 | private Date createTime; 27 | 28 | private Integer adminId; 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/test/java/com/gr/geias/mapper/PersonInfoMapperTest.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.GeiasApplicationTests; 4 | import org.junit.jupiter.api.Test; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | 7 | import static org.junit.jupiter.api.Assertions.*; 8 | 9 | /** 10 | * @author maitentai 11 | * @version 1.0 12 | * @date 2020-03-06 19:21 13 | */ 14 | class PersonInfoMapperTest extends GeiasApplicationTests { 15 | @Autowired 16 | PersonInfoMapper personInfoMapper; 17 | @Test 18 | void queryPerson() { 19 | personInfoMapper.queryPerson("maotentai", "123123"); 20 | } 21 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/font.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'iconfont'; 3 | src: url('../fonts/iconfont.eot'); 4 | src: url('../fonts/iconfont.eot?#iefix') format('embedded-opentype'), 5 | url('../fonts/iconfont.woff') format('woff'), 6 | url('../fonts/iconfont.ttf') format('truetype'), 7 | url('../fonts/iconfont.svg#iconfont') format('svg'); 8 | } 9 | .iconfont{ 10 | font-family:"iconfont" !important; 11 | font-size:16px;font-style:normal; 12 | -webkit-font-smoothing: antialiased; 13 | -webkit-text-stroke-width: 0.2px; 14 | -moz-osx-font-smoothing: grayscale; 15 | } 16 | /*td{*/ 17 | /* white-space: nowrap;*/ 18 | /*}*/ 19 | 20 | -------------------------------------------------------------------------------- /src/test/java/com/gr/geias/mapper/ClassGradeMapperTest.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.GeiasApplicationTests; 4 | import org.junit.jupiter.api.Test; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | 7 | import static org.junit.jupiter.api.Assertions.*; 8 | 9 | /** 10 | * @author maitentai 11 | * @version 1.0 12 | * @date 2020-03-07 21:17 13 | */ 14 | class ClassGradeMapperTest extends GeiasApplicationTests { 15 | @Autowired 16 | ClassGradeMapper classGradeMapper; 17 | @Test 18 | void queryspecialtyId() { 19 | Integer integer = classGradeMapper.queryspecialtyId(8); 20 | System.out.println(integer); 21 | } 22 | } -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/entity/PersonInfo.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.entity; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.time.LocalDateTime; 7 | import java.util.Date; 8 | 9 | /** 10 | *

11 | * 12 | *

13 | * 14 | * @author maotentai 15 | * @since 2020-03-06 16 | */ 17 | @Data 18 | public class PersonInfo implements Serializable { 19 | 20 | private Integer personId; 21 | 22 | private Integer enableStatus; 23 | 24 | private String personName; 25 | 26 | private Date createTime; 27 | 28 | private String password; 29 | 30 | private String username; 31 | 32 | private Integer collegeId; 33 | 34 | private String faceToken; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/resources/static/css/theme5.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background:#EEF5F9 !important; 3 | } 4 | .container{ 5 | background:linear-gradient(to left, #7b4397, #2196f3); 6 | } 7 | 8 | .left-nav{ 9 | background:#fff !important; 10 | } 11 | 12 | .left-nav a{ 13 | color:#686a76 !important; 14 | } 15 | .left-nav a.active{ 16 | background: linear-gradient(to left, #7c8ce4, #2196f3) !important; 17 | color: #fff !important; 18 | border-color: #7b4397 !important; 19 | } 20 | .left-nav a:hover{ 21 | background: linear-gradient(to left, #7c8ce4, #2196f3) !important; 22 | color: #fff !important; 23 | border-color: #7b4397 !important; 24 | } 25 | .container .logo a{ 26 | background: rgba(0,0,0,0) !important; 27 | } -------------------------------------------------------------------------------- /src/test/java/com/gr/geias/mapper/SpecialtyMapperTest.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.GeiasApplicationTests; 4 | import com.gr.geias.entity.Specialty; 5 | import org.junit.jupiter.api.Test; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | 8 | import static org.junit.jupiter.api.Assertions.*; 9 | 10 | /** 11 | * @author maitentai 12 | * @version 1.0 13 | * @date 2020-03-10 14:48 14 | */ 15 | class SpecialtyMapperTest extends GeiasApplicationTests { 16 | @Autowired 17 | SpecialtyMapper specialtyMapper; 18 | @Test 19 | void updateSpecialty() { 20 | Specialty specialty = new Specialty(); 21 | 22 | } 23 | 24 | @Test 25 | void delSpecialty() { 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/impl/AreaServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service.impl; 2 | 3 | import com.gr.geias.entity.Area; 4 | import com.gr.geias.mapper.AreaMapper; 5 | import com.gr.geias.service.AreaService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | *

13 | * 服务实现类 14 | *

15 | * 16 | * @author maotentai 17 | * @since 2020-03-06 18 | */ 19 | @Service 20 | public class AreaServiceImpl implements AreaService { 21 | @Autowired 22 | AreaMapper areaMapper; 23 | @Override 24 | public List getArea(Area area) { 25 | return areaMapper.queryArea(area); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/impl/UnitKindServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service.impl; 2 | 3 | import com.gr.geias.entity.UnitKind; 4 | import com.gr.geias.mapper.UnitKindMapper; 5 | import com.gr.geias.service.UnitKindService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | *

13 | * 服务实现类 14 | *

15 | * 16 | * @author maotentai 17 | * @since 2020-03-06 18 | */ 19 | @Service 20 | public class UnitKindServiceImpl implements UnitKindService { 21 | @Autowired 22 | UnitKindMapper unitKindMapper; 23 | 24 | @Override 25 | public List getUnitKind() { 26 | return unitKindMapper.queryUnitKind(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/test/java/com/gr/geias/GeiasApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias; 2 | 3 | import org.junit.After; 4 | import org.junit.Before; 5 | import org.junit.runner.RunWith; 6 | import org.springframework.boot.test.context.SpringBootTest; 7 | import org.springframework.test.context.junit4.SpringRunner; 8 | import org.springframework.test.context.web.WebAppConfiguration; 9 | 10 | @RunWith(SpringRunner.class) 11 | @SpringBootTest 12 | //由于是Web项目,Junit需要模拟ServletContext,因此我们需要给我们的测试类加上@WebAppConfiguration。 13 | @WebAppConfiguration 14 | public class GeiasApplicationTests { 15 | @Before 16 | public void init() { 17 | System.out.println("开始测试-----------------"); 18 | } 19 | 20 | @After 21 | public void after() { 22 | System.out.println("测试结束-----------------"); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/test/java/com/gr/geias/mapper/AreaMapperTest.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.GeiasApplicationTests; 4 | import com.gr.geias.entity.Area; 5 | import org.junit.jupiter.api.Test; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | 8 | import java.util.List; 9 | 10 | import static org.junit.jupiter.api.Assertions.*; 11 | 12 | /** 13 | * @author maitentai 14 | * @version 1.0 15 | * @date 2020-03-06 23:54 16 | */ 17 | class AreaMapperTest extends GeiasApplicationTests { 18 | @Autowired 19 | AreaMapper areaMapper; 20 | 21 | @Test 22 | 23 | void queryArea() { 24 | Area area = new Area(); 25 | area.setParentId(4); 26 | List areas = areaMapper.queryArea(area); 27 | System.out.println(areas.size()); 28 | } 29 | } -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/impl/EmploymentWayServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service.impl; 2 | 3 | import com.gr.geias.entity.EmploymentWay; 4 | import com.gr.geias.mapper.EmploymentWayMapper; 5 | import com.gr.geias.service.EmploymentWayService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | *

13 | * 服务实现类 14 | *

15 | * 16 | * @author maotentai 17 | * @since 2020-03-06 18 | */ 19 | @Service 20 | public class EmploymentWayServiceImpl implements EmploymentWayService { 21 | @Autowired 22 | EmploymentWayMapper employmentWayMapper; 23 | 24 | @Override 25 | public List getEmploymentWay() { 26 | return employmentWayMapper.queryEmploymentWay(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/resources/mappers/AreaMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 22 | 23 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/aspect/PersonFase.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.aspect; 2 | 3 | import org.aspectj.lang.JoinPoint; 4 | import org.aspectj.lang.annotation.After; 5 | import org.aspectj.lang.annotation.Aspect; 6 | import org.aspectj.lang.annotation.Pointcut; 7 | import org.springframework.stereotype.Component; 8 | 9 | /** 10 | * @author maitentai 11 | * @version 1.0 12 | * @date 2020/5/21 10:24 上午 13 | */ 14 | @Aspect 15 | @Component 16 | public class PersonFase { 17 | private final String POINT_CUT = "execution(* com.gr.geias.mapper.PersonInfoMapper.delPersonById(..))"; 18 | @Pointcut(POINT_CUT) 19 | private void pointcut(){} 20 | 21 | @After(value = POINT_CUT) 22 | public void doAfterAdvice(JoinPoint joinPoint){ 23 | Object[] args = joinPoint.getArgs(); 24 | Integer personId = (Integer)args[0]; 25 | System.out.println("删除"+personId); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/util/SampleFactory.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.util; 2 | 3 | import com.baidu.aip.face.AipFace; 4 | 5 | /** 6 | * @author maitentai 7 | * @version 1.0 8 | * @date 2020/5/20 3:35 下午 9 | */ 10 | 11 | public class SampleFactory { 12 | public static final String APP_ID = "你的appId"; 13 | public static final String API_KEY = "你的apiKey"; 14 | public static final String SECRET_KEY = "你的secretKey"; 15 | 16 | 17 | private volatile static AipFace instance = null; 18 | 19 | private SampleFactory() { 20 | } 21 | 22 | public static AipFace getInstance() { 23 | if (instance == null) { 24 | synchronized (SampleFactory.class) { 25 | if (instance == null) { 26 | instance = new AipFace(APP_ID, API_KEY, SECRET_KEY); 27 | } 28 | } 29 | } 30 | return instance; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/entity/EmploymentInformation.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.entity; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.time.LocalDateTime; 7 | import java.util.Date; 8 | 9 | /** 10 | *

11 | * 12 | *

13 | * 14 | * @author maotentai 15 | * @since 2020-03-06 16 | */ 17 | @Data 18 | public class EmploymentInformation implements Serializable { 19 | 20 | private Integer informationId; 21 | 22 | private Integer studentNum; 23 | 24 | private String name; 25 | 26 | private ClassGrade classGrade; 27 | 28 | private Area area; 29 | 30 | private UnitKind unitKind; 31 | 32 | private String salary; 33 | 34 | private EmploymentWay employmentWay; 35 | 36 | private String msg; 37 | 38 | private Date createTime; 39 | 40 | private College college; 41 | 42 | private Specialty specialty; 43 | 44 | private Integer gender; 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/resources/mappers/PersonInfoMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | update tb_person_info set college_id=#{personInfo.collegeId} where person_id=#{personInfo.personId} 6 | 7 | 8 | update tb_person_info 9 | 10 | person_name=#{person.personName}, 11 | 12 | college_id=#{person.collegeId}, 13 | 14 | username=#{person.username}, 15 | password=#{person.password} 16 | 17 | 18 | where person_id=#{person.personId} 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/enums/EnableStatusEnums.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.enums; 2 | 3 | /** 4 | * @author maitentai 5 | * @version 1.0 6 | * @date 2020-03-07 13:15 7 | */ 8 | public enum EnableStatusEnums { 9 | TEACHER(0,"老师"),PREXY(1,"院长"), 10 | schoolmaster(2,"管理员") 11 | ; 12 | private int state; 13 | private String stateInfo; 14 | 15 | EnableStatusEnums(int state, String stateInfo) { 16 | this.state = state; 17 | this.stateInfo = stateInfo; 18 | } 19 | public static EnableStatusEnums getEnableStatusEnums(int state) { 20 | for (EnableStatusEnums productSateEnum : values()) { 21 | if (productSateEnum.getState() == state) { 22 | return productSateEnum; 23 | } 24 | } 25 | return null; 26 | } 27 | 28 | public int getState() { 29 | return state; 30 | } 31 | 32 | public String getStateInfo() { 33 | return stateInfo; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/test/java/com/gr/geias/service/impl/SpecialtyServiceImplTest.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service.impl; 2 | 3 | import com.gr.geias.GeiasApplicationTests; 4 | import com.gr.geias.entity.Specialty; 5 | import com.gr.geias.service.SpecialtyService; 6 | import org.junit.jupiter.api.Test; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | 9 | import static org.junit.jupiter.api.Assertions.*; 10 | 11 | /** 12 | * @author maitentai 13 | * @version 1.0 14 | * @date 2020-03-10 11:46 15 | */ 16 | class SpecialtyServiceImplTest extends GeiasApplicationTests { 17 | @Autowired 18 | SpecialtyService specialtyService; 19 | @Test 20 | void addSpecialty() { 21 | Specialty specialty = new Specialty(); 22 | specialty.setCollegeId(1); 23 | specialty.setSpecialtyName("物联网"); 24 | specialtyService.addSpecialty(specialty); 25 | } 26 | 27 | @Test 28 | void getAndSetSpecialtyCount() { 29 | specialtyService.getAndSetSpecialtyCount(1); 30 | 31 | } 32 | } -------------------------------------------------------------------------------- /src/main/resources/static/html/error.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 后台登录-X-admin2.2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |
18 |

19 |

用户权限 限制 不能访问模块

20 |
21 |
22 |
23 | 24 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/OrganizationNumService.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service; 2 | 3 | import com.gr.geias.entity.OrganizationNum; 4 | 5 | /** 6 | * @author maitentai 7 | * @version 1.0 8 | * @date 2020-03-09 09:13 9 | */ 10 | public interface OrganizationNumService { 11 | /** 12 | * 获取学院总人数 13 | * @param collegeId 14 | * @return 15 | */ 16 | Integer getcollegeCount(Integer collegeId); 17 | 18 | /** 19 | * 获取专业人数 20 | * @param specialtyId 专业id 21 | * @return 22 | */ 23 | Integer getspecialtyCount(Integer specialtyId); 24 | 25 | /** 26 | * 获取班级人数 27 | * @param classId 28 | * @return 29 | */ 30 | Integer getClassGradeCount(Integer classId); 31 | 32 | /** 33 | * 更新班级的人数 34 | * @param organizationNum 35 | * @return 36 | */ 37 | Boolean updateClassGradesum(OrganizationNum organizationNum); 38 | 39 | /** 40 | * 获取学校总人数 41 | * @return 42 | */ 43 | Integer geiAllCollegeSum(); 44 | } 45 | -------------------------------------------------------------------------------- /src/main/resources/mappers/ClassGradeMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 16 | 18 | insert into tb_class_grade(class_name,specialty_id,create_time,admin_id) values(#{classGrede.className},#{classGrede.specialtyId},#{classGrede.createTime},#{classGrede.adminId}) 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/Interceptor/SuperAdminInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.Interceptor; 2 | 3 | import com.gr.geias.entity.PersonInfo; 4 | import com.gr.geias.enums.EnableStatusEnums; 5 | import org.springframework.stereotype.Component; 6 | import org.springframework.web.servlet.HandlerInterceptor; 7 | 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | 11 | /** 12 | * @author maitentai 13 | * @version 1.0 14 | * @date 2020-03-11 14:29 15 | */ 16 | @Component 17 | public class SuperAdminInterceptor implements HandlerInterceptor { 18 | @Override 19 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 20 | PersonInfo person = (PersonInfo)request.getSession().getAttribute("person"); 21 | if (person.getEnableStatus()== EnableStatusEnums.schoolmaster.getState()){ 22 | return true; 23 | } 24 | response.sendRedirect("/page/error"); 25 | return false; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/ClassGradeService.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service; 2 | 3 | import com.gr.geias.entity.ClassGrade; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | *

9 | * 服务类 10 | *

11 | * 12 | * @author maotentai 13 | * @since 2020-03-06 14 | */ 15 | public interface ClassGradeService { 16 | 17 | /** 18 | * 获取班级 19 | * @param specialtyId 专业 20 | * @param adminId 管理 21 | * @return 22 | */ 23 | List getClassGrade(Integer specialtyId,Integer adminId); 24 | 25 | /** 26 | * 添加班级和班级人数 并统计到学院和专业人数上 27 | * @param classGrade 28 | * @param sum 29 | * @return 30 | */ 31 | Boolean addClassGrade(ClassGrade classGrade,Integer sum,Integer collegeId); 32 | 33 | /** 34 | * 修改班级 35 | * @param classGrade 36 | * @return 37 | */ 38 | Boolean updateClassGrade(ClassGrade classGrade,Integer sum,Integer college); 39 | 40 | /** 41 | * 删除班级信息 42 | * @param classId 43 | * @return 44 | */ 45 | Boolean delClassGrade(Integer classId); 46 | } 47 | -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/css/modules/code.css: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 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/java/com/gr/geias/Interceptor/LoginInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.Interceptor; 2 | 3 | import org.springframework.stereotype.Component; 4 | import org.springframework.web.servlet.HandlerInterceptor; 5 | 6 | import javax.servlet.http.HttpServletRequest; 7 | import javax.servlet.http.HttpServletResponse; 8 | 9 | /** 10 | * @author maitentai 11 | * @version 1.0 12 | * @date 2020-03-11 11:38 13 | */ 14 | @Component 15 | public class LoginInterceptor implements HandlerInterceptor { 16 | /** 17 | * 拦截登录,没用登录的一律返回登录页 18 | * @param request 19 | * @param response 20 | * @param handler 21 | * @return 22 | * @throws Exception 23 | */ 24 | @Override 25 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 26 | Object person = request.getSession().getAttribute("person"); 27 | if (person!=null){ 28 | return true; 29 | }else { 30 | response.sendRedirect("/page/login"); 31 | return false; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | mvc: 3 | static-path-pattern=/static/** 4 | aop: 5 | proxy-target-class=true: 6 | datasource: 7 | type: com.alibaba.druid.pool.DruidDataSource 8 | druid: 9 | driver-class-name: com.mysql.jdbc.Driver 10 | url: jdbc:mysql://localhost:3306/GraduateEmploymentInfo?useUnicode=true&characterEncoding=utf8 11 | username: root 12 | password: 123456 13 | filter: stat,wall,log4j 14 | initial-size: 5 15 | max-active: 20 16 | min-idle: 5 17 | max-wait: 2000 18 | pool-prepared-statements: false 19 | max-open-prepared-statements: -1 20 | time-between-eviction-runs-millis: 60000 21 | min-evictable-idle-time-millis: 30000 22 | mybatis: 23 | mapper-locations: classpath:mappers/*.xml 24 | type-aliases-package: com.gr.geias.entity 25 | configuration: 26 | map-underscore-to-camel-case: true 27 | use-generated-keys: true 28 | use-column-label: true 29 | logging: 30 | level: 31 | com: 32 | looedu: 33 | mapper: debug 34 | server: 35 | port: 8080 -------------------------------------------------------------------------------- /src/test/java/com/gr/geias/service/impl/CollegeServiceImplTest.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service.impl; 2 | 3 | import com.gr.geias.GeiasApplicationTests; 4 | import com.gr.geias.entity.College; 5 | import com.gr.geias.service.CollegeService; 6 | import org.junit.jupiter.api.Test; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | 9 | import java.util.Date; 10 | 11 | import static org.junit.jupiter.api.Assertions.*; 12 | 13 | /** 14 | * @author maitentai 15 | * @version 1.0 16 | * @date 2020-03-08 22:37 17 | */ 18 | class CollegeServiceImplTest extends GeiasApplicationTests { 19 | @Autowired 20 | CollegeService collegeService; 21 | 22 | @Test 23 | void addCollege() { 24 | College college = new College(); 25 | college.setCollegeName("不知道"); 26 | college.setAdminId(11); 27 | college.setCreateTime(new Date()); 28 | collegeService.addCollege(college); 29 | } 30 | 31 | @Test 32 | void getAndSetcount() { 33 | 34 | Integer andSetcount = collegeService.getAndSetcount(16); 35 | System.out.println(andSetcount); 36 | 37 | } 38 | } -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/Interceptor/AdminInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.Interceptor; 2 | 3 | import com.gr.geias.entity.PersonInfo; 4 | import com.gr.geias.enums.EnableStatusEnums; 5 | import org.springframework.stereotype.Component; 6 | import org.springframework.web.servlet.HandlerInterceptor; 7 | 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | 11 | /** 12 | * @author maitentai 13 | * @version 1.0 14 | * @date 2020-03-11 11:36 15 | */ 16 | @Component 17 | public class AdminInterceptor implements HandlerInterceptor { 18 | @Override 19 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 20 | PersonInfo person = (PersonInfo)request.getSession().getAttribute("person"); 21 | if (person.getEnableStatus()== EnableStatusEnums.schoolmaster.getState()){ 22 | return true; 23 | } 24 | if (person.getEnableStatus()==EnableStatusEnums.PREXY.getState()){ 25 | return true; 26 | } 27 | response.sendRedirect("/page/error"); 28 | return false; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/lay/modules/code.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//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/java/com/gr/geias/service/CollegeService.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service; 2 | 3 | import com.gr.geias.entity.College; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | *

9 | * 服务类 10 | *

11 | * 12 | * @author maotentai 13 | * @since 2020-03-06 14 | */ 15 | public interface CollegeService { 16 | /** 17 | * 获取学院 18 | * @param adminId 管理id 19 | * @return 20 | */ 21 | List getCollege(Integer adminId); 22 | 23 | /** 24 | * 添加学院 25 | * @param college 26 | * @return 27 | */ 28 | Boolean addCollege(College college); 29 | 30 | /** 31 | * 返回学院总人数并持久化到数据库中 32 | * @param collegeId 33 | * @return 34 | */ 35 | Integer getAndSetcount(Integer collegeId); 36 | 37 | /** 38 | * 修改学院 39 | * @param college 学院信息 40 | * @return 41 | */ 42 | Boolean updateCollege(College college); 43 | 44 | /** 45 | * 删除学院 46 | * @param collegeId 学院id 47 | * @return 48 | */ 49 | Boolean delCollege(Integer collegeId); 50 | 51 | /** 52 | * 获取学院信息 53 | * @param collegeId 学院id 54 | * @return 55 | */ 56 | College getCollegeById(Integer collegeId); 57 | } 58 | -------------------------------------------------------------------------------- /src/main/resources/mappers/SpecialtyMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 14 | 17 | insert into tb_specialty(specialty_name,create_time,college_id) values(#{specialty.specialtyName},#{specialty.createTime},#{specialty.collegeId}) 18 | 19 | 20 | 31 | 32 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/SpecialtyService.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service; 2 | 3 | import com.gr.geias.entity.Specialty; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | *

9 | * 服务类 10 | *

11 | * 12 | * @author maotentai 13 | * @since 2020-03-06 14 | */ 15 | public interface SpecialtyService { 16 | /** 17 | * 获取专业 18 | * @param collegeId 学院 19 | * @return 20 | */ 21 | List getSpecialty(Integer collegeId); 22 | 23 | /** 24 | * 添加专业 25 | * @param specialty 专业信息 26 | * @return 27 | */ 28 | Boolean addSpecialty(Specialty specialty); 29 | 30 | /** 31 | * 更新专业信息 32 | * @param specialty 33 | * @return 34 | */ 35 | Boolean updateSpecialty(Specialty specialty); 36 | 37 | /** 38 | * 删除专业信息 39 | * @param specialtyId 40 | * @return 41 | */ 42 | Boolean delSpecialty(Integer specialtyId); 43 | 44 | /** 45 | * 通过专业id获取专业信息 46 | * @param specialtyId 47 | * @return 48 | */ 49 | Specialty getSpecialtyById(Integer specialtyId); 50 | 51 | /** 52 | * 获取并持久化 专业人数 53 | * @param specialtyId 54 | * @return 55 | */ 56 | Integer getAndSetSpecialtyCount(Integer specialtyId); 57 | 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/dto/EmploymentInformationExcal.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.dto; 2 | 3 | import com.alibaba.excel.annotation.ExcelProperty; 4 | import com.gr.geias.entity.*; 5 | import lombok.Data; 6 | 7 | import java.io.Serializable; 8 | import java.util.Date; 9 | 10 | /** 11 | *

12 | * 13 | *

14 | * 15 | * @author maotentai 16 | * @since 2020-03-06 17 | */ 18 | @Data 19 | public class EmploymentInformationExcal implements Serializable { 20 | @ExcelProperty("Id") 21 | private Integer informationId; 22 | @ExcelProperty("学号") 23 | private Integer studentNum; 24 | @ExcelProperty("姓名") 25 | private String name; 26 | @ExcelProperty("性别") 27 | private String gender; 28 | @ExcelProperty("学院") 29 | private String collegeName; 30 | @ExcelProperty("专业") 31 | private String specialtyName; 32 | @ExcelProperty("班级") 33 | private String className; 34 | @ExcelProperty("就职地区") 35 | private String areaName; 36 | @ExcelProperty("职业属性") 37 | private String unitName; 38 | @ExcelProperty("就业途径") 39 | private String wayName; 40 | @ExcelProperty("工资") 41 | private String salary; 42 | @ExcelProperty("录入时间") 43 | private Date createTime; 44 | @ExcelProperty("信息") 45 | private String msg; 46 | } 47 | -------------------------------------------------------------------------------- /src/test/java/com/gr/geias/mapper/CollegeMapperTest.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.GeiasApplicationTests; 4 | import com.gr.geias.entity.College; 5 | import org.junit.jupiter.api.Test; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | 8 | import java.util.Date; 9 | 10 | import static org.junit.jupiter.api.Assertions.*; 11 | 12 | /** 13 | * @author maitentai 14 | * @version 1.0 15 | * @date 2020-03-08 22:16 16 | */ 17 | class CollegeMapperTest extends GeiasApplicationTests { 18 | @Autowired 19 | CollegeMapper collegeMapper; 20 | 21 | @Test 22 | void addCollege() { 23 | College college = new College(); 24 | college.setCollegeName("不知到"); 25 | college.setCreateTime(new Date()); 26 | college.setAdminId(11); 27 | int i = collegeMapper.addCollege(college); 28 | System.out.println(i); 29 | System.out.println(college.getCollegeId()); 30 | } 31 | 32 | @Test 33 | void quereyCollegeCount() { 34 | College college = new College(); 35 | college.setCollegeId(16); 36 | college.setCollegeName("不知道2"); 37 | college.setAdminId(12); 38 | collegeMapper.updateCollege(college); 39 | } 40 | 41 | @Test 42 | void quereyCollegeCount1() { 43 | Integer integer = collegeMapper.quereyCollegeCount(2); 44 | System.out.println(integer); 45 | } 46 | } -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/mapper/CollegeMapper.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.entity.College; 4 | import org.apache.ibatis.annotations.*; 5 | import org.springframework.stereotype.Service; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author maotentai 15 | * @since 2020-03-06 16 | */ 17 | public interface CollegeMapper { 18 | /** 19 | * 获取学院 20 | * @param adminid 21 | * @return 22 | */ 23 | List queryCollege(@Param("adminid") Integer adminid); 24 | 25 | /** 26 | * 添加 学院 27 | * @param college 28 | * @return 29 | */ 30 | int addCollege(@Param("college") College college); 31 | 32 | /** 33 | * 查询学院下面一共有多少人 34 | * @param collegeId 学院id 35 | * @return 36 | */ 37 | Integer quereyCollegeCount(@Param("collegeId")Integer collegeId); 38 | 39 | /** 40 | * 更新学院信息 41 | * @param college 学院信息 42 | * @return 43 | */ 44 | Integer updateCollege(@Param("college") College college); 45 | 46 | /** 47 | * 根据学院id查学院 48 | * @param collegeId 学院id 49 | * @return 50 | */ 51 | @Select("select * from tb_college where college_id=#{collegeId}") 52 | College queryCollegeById(@Param("collegeId")Integer collegeId); 53 | 54 | /** 55 | * 删除学院信息 56 | * @param collegeId 学院id 57 | * @return 58 | */ 59 | @Delete("DELETE FROM tb_college WHERE college_id = #{collegeId}") 60 | Integer delCollegeById(@Param("collegeId") Integer collegeId); 61 | } 62 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/EmploymentInformationService.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service; 2 | 3 | import com.gr.geias.dto.EmploymentInformationMsg; 4 | import com.gr.geias.entity.EmploymentInformation; 5 | import com.gr.geias.entity.PersonInfo; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * 服务类 12 | *

13 | * 14 | * @author maotentai 15 | * @since 2020-03-06 16 | */ 17 | public interface EmploymentInformationService { 18 | /** 19 | * 查找毕业生信息 20 | * @param information 查询信息 21 | * @param pagenum 页码 22 | * @param personInfo 用户权限 23 | * @param salary 工资区间 24 | * @return 25 | */ 26 | EmploymentInformationMsg getEmploymentInfoList(EmploymentInformation information, Integer pagenum, PersonInfo personInfo, Integer[] salary); 27 | 28 | /** 29 | * 根据给出的信息查询数量 30 | * @param information 信息 31 | * @param personInfo 用户权限 32 | * @return 33 | */ 34 | Integer getCount(EmploymentInformation information,PersonInfo personInfo,Integer[] salary); 35 | 36 | /** 37 | * 添加 毕业生就业信息 38 | * @param employmentInformation 39 | * @return 40 | */ 41 | Integer addEmpoymentInfo(EmploymentInformation employmentInformation); 42 | 43 | /** 44 | * 得到 毕业生就业信息 通过 学号 45 | * @param studentNum 学号 46 | * @return 47 | */ 48 | EmploymentInformation getInfoByStudentNum(Integer studentNum); 49 | 50 | /** 51 | * 更新 毕业生就业信息 52 | * @param employmentInformation 53 | * @return 54 | */ 55 | Integer updateInfo(EmploymentInformation employmentInformation); 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/mapper/ClassGradeMapper.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.entity.ClassGrade; 4 | import org.apache.ibatis.annotations.*; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @author maitentai 10 | * @version 1.0 11 | * @date 2020-03-06 09:33 12 | */ 13 | public interface ClassGradeMapper { 14 | /** 15 | * 查询班级 16 | * @param specialtyId 根据专业 17 | * @param adminId 根据管理者 18 | * @return 19 | */ 20 | List queryClassGrade(@Param("specialtyId") Integer specialtyId,@Param("adminId") Integer adminId); 21 | 22 | /** 23 | * 获取 专业ID 24 | * @param classId 班级id 25 | * @return 26 | */ 27 | @Select("select specialty_id from tb_class_grade where class_id=#{classId}") 28 | Integer queryspecialtyId(@Param("classId") Integer classId); 29 | 30 | /** 31 | * 插入班级 32 | * @param classGrade 33 | * @return 34 | */ 35 | Integer insertClassGrede(@Param("classGrede") ClassGrade classGrade); 36 | 37 | /** 38 | * 更新班级信息 39 | * @param classGrade 40 | * @return 41 | */ 42 | @Update("update tb_class_grade set class_name=#{classGrade.className},specialty_id=#{classGrade.specialtyId},admin_id=#{classGrade.adminId} where class_id=#{classGrade.classId}") 43 | Integer updateClassGrede(@Param("classGrade") ClassGrade classGrade); 44 | 45 | /** 46 | * 删除班级信息 47 | * @param classId 48 | * @return 49 | */ 50 | @Delete("delete from tb_class_grade where class_id = #{classId}") 51 | Integer delClassGrede(@Param("classId")Integer classId); 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/impl/OrganizationNumServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service.impl; 2 | 3 | import com.gr.geias.entity.OrganizationNum; 4 | import com.gr.geias.mapper.OrganizationNumMapper; 5 | import com.gr.geias.service.OrganizationNumService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * @author maitentai 11 | * @version 1.0 12 | * @date 2020-03-09 09:13 13 | */ 14 | @Service 15 | public class OrganizationNumServiceImpl implements OrganizationNumService { 16 | @Autowired 17 | OrganizationNumMapper organizationNumMapper; 18 | 19 | @Override 20 | public Integer getcollegeCount(Integer collegeId) { 21 | return organizationNumMapper.queryCountByCollegeId(collegeId); 22 | } 23 | 24 | @Override 25 | public Integer getspecialtyCount(Integer specialtyId) { 26 | return organizationNumMapper.queryCountByspecialtyId(specialtyId); 27 | } 28 | 29 | @Override 30 | public Integer getClassGradeCount(Integer classId) { 31 | return organizationNumMapper.queryCountByclassId(classId); 32 | } 33 | 34 | @Override 35 | public Boolean updateClassGradesum(OrganizationNum organizationNum) { 36 | Integer integer = organizationNumMapper.updateNumByClassGradeId(organizationNum.getSum(), organizationNum.getClassId()); 37 | if (integer > 0) { 38 | return true; 39 | } else { 40 | return false; 41 | } 42 | } 43 | 44 | @Override 45 | public Integer geiAllCollegeSum() { 46 | return organizationNumMapper.queryAllCollegeSum(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/main/resources/mappers/CollegeMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 13 | 15 | insert into tb_college(college_name,create_time,admin_id) values(#{college.collegeName},#{college.createTime},#{college.adminId}) 16 | 17 | 18 | 30 | 31 | update tb_college 32 | 33 | 34 | college_name=#{college.collegeName}, 35 | 36 | 37 | admin_id = #{college.adminId}, 38 | 39 | 40 | where college_id =#{college.collegeId} 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/Interceptor/Person0Interceptor.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.Interceptor; 2 | 3 | import com.gr.geias.entity.PersonInfo; 4 | import com.gr.geias.enums.EnableStatusEnums; 5 | import org.springframework.stereotype.Component; 6 | import org.springframework.web.servlet.HandlerInterceptor; 7 | 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | import java.util.List; 11 | 12 | /** 13 | * @author maitentai 14 | * @version 1.0 15 | * @date 2020-03-12 15:37 16 | */ 17 | @Component 18 | public class Person0Interceptor implements HandlerInterceptor { 19 | @Override 20 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 21 | PersonInfo person = (PersonInfo) request.getSession().getAttribute("person"); 22 | if (person.getEnableStatus() == EnableStatusEnums.schoolmaster.getState()) { 23 | return true; 24 | } 25 | if (person.getEnableStatus() == EnableStatusEnums.PREXY.getState()) { 26 | Object person0List = request.getSession().getAttribute("person0List"); 27 | if (person0List==null){ 28 | return false; 29 | } 30 | List list = (List)person0List; 31 | String personIdStr = request.getParameter("personId"); 32 | if (personIdStr==null){ 33 | return false; 34 | } 35 | int personId = Integer.parseInt(personIdStr); 36 | for (int i = 0; i < list.size(); i++) { 37 | if (list.get(i).getPersonId().equals(personId)){ 38 | return true; 39 | } 40 | } 41 | 42 | } 43 | return false; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/PersonInfoService.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service; 2 | 3 | import com.gr.geias.entity.PersonInfo; 4 | import org.springframework.web.multipart.MultipartFile; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * 服务类 11 | *

12 | * 13 | * @author maotentai 14 | * @since 2020-03-06 15 | */ 16 | public interface PersonInfoService { 17 | /** 18 | * 登录 19 | * @param username 用户名 20 | * @param password 密码 21 | * @return 22 | */ 23 | PersonInfo login(String username, String password); 24 | 25 | /** 26 | * 根据id查询用户 27 | * @param personId 28 | * @return 29 | */ 30 | PersonInfo getPersonById(Integer personId); 31 | 32 | /** 33 | * 所有学院管理 34 | * @return 35 | */ 36 | List getCollegePerson(); 37 | 38 | /** 39 | * 得到一个学院里的所有老师 40 | * @param collegeId 41 | * @return 42 | */ 43 | List getPersonByCollegeId(Integer collegeId); 44 | 45 | /** 46 | * 添加人员 47 | * @param personInfo 48 | * @return 49 | */ 50 | Boolean insertPerson(PersonInfo personInfo); 51 | 52 | /** 53 | * 修改人员信息 54 | * @param personInfo 55 | * @return 56 | */ 57 | Boolean updatePerson(PersonInfo personInfo); 58 | 59 | /** 60 | * 删除人员 61 | * @param personId 62 | * @return 63 | */ 64 | Boolean delPerson(Integer personId); 65 | 66 | /** 67 | * 得到所有管理信息 68 | * @return 69 | */ 70 | List getPerson1(); 71 | 72 | /** 73 | * 添加人脸识别信息 74 | * @param personInfo 75 | * @param faseImage 76 | * @return 77 | */ 78 | Boolean addFace(PersonInfo personInfo, String faseImage); 79 | 80 | 81 | PersonInfo checkFace(String image); 82 | 83 | } 84 | -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/lay/modules/laytpl.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 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/lib/layui/lay/modules/flow.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 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||(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/java/com/gr/geias/mapper/SpecialtyMapper.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.entity.Specialty; 4 | import org.apache.ibatis.annotations.*; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * Mapper 接口 11 | *

12 | * 13 | * @author maotentai 14 | * @since 2020-03-06 15 | */ 16 | public interface SpecialtyMapper { 17 | /** 18 | * 获取专业信息 19 | * @param collegeId 学院 20 | * @return 21 | */ 22 | List querySpecialty(@Param("collegeId") Integer collegeId); 23 | 24 | /** 25 | * 通过专业id 获取 学院id 26 | * @param specialtyId 专业id 27 | * @return 28 | */ 29 | @Select("select college_id from tb_specialty where specialty_id=#{specialtyId}") 30 | Integer queryCollegeId(@Param("specialtyId") Integer specialtyId); 31 | 32 | /** 33 | * 添加专业信息 34 | * @param specialty 35 | * @return 36 | */ 37 | Integer insertSpecialty(@Param("specialty") Specialty specialty); 38 | 39 | /** 40 | * 更新 专业 41 | * @param specialty 信息 42 | * @return 43 | */ 44 | @Update("update tb_specialty set specialty_name=#{specialty.specialtyName},college_id=#{specialty.collegeId} where specialty_id=#{specialty.specialtyId}") 45 | Integer updateSpecialty(@Param("specialty")Specialty specialty); 46 | 47 | /** 48 | * 删除专业 49 | * @param specialtyId 50 | * @return 51 | */ 52 | @Delete("delete from tb_specialty where specialty_id = #{specialtyId}") 53 | Integer delSpecialty(@Param("specialtyId") Integer specialtyId); 54 | 55 | /** 56 | * 查询专业信息通过id 57 | * @param specialtyId 58 | * @return 59 | */ 60 | @Select("select * from tb_specialty where specialty_id = #{specialtyId}") 61 | Specialty querySpecialtyById(@Param("specialtyId") Integer specialtyId); 62 | 63 | /** 64 | * 获取专业总人数 65 | * @param specialtyId 66 | * @return 67 | */ 68 | Integer queryCountSpecialty(@Param("specialtyId")Integer specialtyId); 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/Interceptor/ClassGradeInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.Interceptor; 2 | 3 | import com.gr.geias.entity.PersonInfo; 4 | import com.gr.geias.entity.Specialty; 5 | import com.gr.geias.enums.EnableStatusEnums; 6 | import org.springframework.stereotype.Component; 7 | import org.springframework.web.servlet.HandlerInterceptor; 8 | 9 | import javax.servlet.http.HttpServletRequest; 10 | import javax.servlet.http.HttpServletResponse; 11 | import java.util.List; 12 | 13 | /** 14 | * @author maitentai 15 | * @version 1.0 16 | * @date 2020-03-11 15:50 17 | */ 18 | @Component 19 | public class ClassGradeInterceptor implements HandlerInterceptor { 20 | @Override 21 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 22 | PersonInfo person = (PersonInfo) request.getSession().getAttribute("person"); 23 | if (person.getEnableStatus() == EnableStatusEnums.schoolmaster.getState()) { 24 | return true; 25 | } else { 26 | String specialtyStr = request.getParameter("specialtyId"); 27 | if (specialtyStr==null){ 28 | return false; 29 | } 30 | int specialtyId = Integer.parseInt(specialtyStr); 31 | String collegeStr = request.getParameter("collegeId"); 32 | List specialties = (List) request.getSession().getAttribute("specialtyList"); 33 | for (int i = 0; i < specialties.size(); i++) { 34 | if (specialties.get(i).getSpecialtyId() == specialtyId) { 35 | if (collegeStr != null) { 36 | int collegeId = Integer.parseInt(collegeStr); 37 | if (person.getCollegeId() == collegeId) { 38 | return true; 39 | }else { 40 | return false; 41 | } 42 | } 43 | return true; 44 | } else { 45 | return false; 46 | } 47 | } 48 | 49 | 50 | } 51 | return false; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 基于SpringBoot Mybatis 的毕业生就业分析系统 2 | 3 | --- 4 | 5 | ## 用到的技术: 6 | 7 | --- 8 | 9 | - 使用maven构建项目。 10 | 11 | - 使用Springboot mybatsi mysql5.7 搭建系统。 12 | 13 | - 前后端通过ajax传输信息。 14 | 15 | - 前端使用Layui和X-admin搭建整体UI,使用ECharts做数据可视化。 16 | 17 | - 使用阿里巴巴的开源组件easyexcel 操作Excel。 18 | 19 | - 使用MySQL 5.7 存储数据。 20 | 21 | 22 | 23 | ## 项目模块: 24 | 25 | --- 26 | 27 | - **毕业生就业数据:** 毕业生就业数据的展示。 28 | 29 | - **毕业生就业数据可视化展示:** 将就业数字可视化展示。 30 | 31 | - **学校组织架构管理:** 为了适配不同学校情况,可以灵活配置学校架构。 32 | 33 | - **添加修改用户:** 对不同权限的用户进行添加修改删除。 34 | 35 | 36 | 37 | ## 怎么启动项目: 38 | 39 | --- 40 | 41 | 1. 新建数据库GraduateEmploymentInfo 运行src/main/resources/GraduateEmploymentInfo.sql; 42 | 2. 在src/main/resources/application.yml中配置数据库信息; 43 | 3. 启动 GeiasApplication 的main方法; 44 | 4. 访问http://localhost:8080/page/login 管理员 admin 密码 admin1; 45 | 46 | ## 功能展示: 47 | 48 | ---- 49 | 50 | - 用户登录 51 | 52 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/登录.png) 53 | 54 | - 毕业生信息管理 55 | 56 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/首页.png) 57 | 58 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/工作性质.png) 59 | 60 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/就业渠道分布.png) 61 | 62 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/就业地区.png) 63 | 64 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/就业信息导出.png) 65 | 66 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/导出Excel信息展示.png) 67 | 68 | - 学校架构管理 69 | 70 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/组织架构.png) 71 | 72 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/学院列表.png) 73 | 74 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/专业列表.png) 75 | 76 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/班级列表.png) 77 | 78 | - 人员管理 79 | 80 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/学院管理员列表.png) 81 | 82 | ![image-20200326110252591](https://github.com/gr2222/image/blob/master/geias/各个学院辅导员列表.png) 83 | 84 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/mapper/EmploymentInformationMapper.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.entity.EmploymentInformation; 4 | import com.gr.geias.entity.PersonInfo; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.apache.ibatis.annotations.Select; 7 | import org.apache.ibatis.annotations.Update; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | *

13 | * Mapper 接口 14 | *

15 | * 16 | * @author maotentai 17 | * @since 2020-03-06 18 | */ 19 | public interface EmploymentInformationMapper { 20 | /** 21 | * 分页查询信息 22 | * 23 | * @param info 查询条件 24 | * @param indexnum 从第几个开始 25 | * @param pagesize 每一页有多大 26 | * @param user 管理权限 27 | * @param salary 工资范围 28 | * @return 信息列表 29 | */ 30 | List queryList(@Param("info") EmploymentInformation info, 31 | @Param("indexnum") int indexnum, 32 | @Param("pagesize") int pagesize, 33 | @Param("user") PersonInfo user, 34 | @Param("salary") Integer[] salary); 35 | 36 | /** 37 | * 统计查询总数 38 | * 39 | * @param info 查询 40 | * @param user 管理权限 41 | * @param salary 工资范围 42 | * @return 43 | */ 44 | Integer queryListCount(@Param("info") EmploymentInformation info, 45 | @Param("user") PersonInfo user, 46 | @Param("salary") Integer[] salary); 47 | 48 | /** 49 | * 插入毕业生信息 50 | * 51 | * @param employmentInformation 毕业生信息 52 | * @return 53 | */ 54 | Integer insertEmploymentInformation(@Param("info") EmploymentInformation employmentInformation); 55 | 56 | /** 57 | * 删除就业信息 58 | * 59 | * @param employmentInformation 毕业生信息 60 | * @return 61 | */ 62 | Integer delEmploymentInformation(@Param("info") EmploymentInformation employmentInformation); 63 | 64 | /** 65 | * 根据 66 | * @param studentNum 67 | * @return 68 | */ 69 | @Select("select * from tb_employment_information where student_num=#{studentNum}") 70 | EmploymentInformation qureyInfoByStudentNum(@Param("studentNum") Integer studentNum); 71 | 72 | /** 73 | * 更新毕业生信息 74 | * @param employmentInformation 75 | * @return 76 | */ 77 | Integer updayeInfo(@Param("info") EmploymentInformation employmentInformation); 78 | 79 | } 80 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/impl/EmploymentInformationServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service.impl; 2 | 3 | import com.gr.geias.dto.EmploymentInformationMsg; 4 | import com.gr.geias.entity.EmploymentInformation; 5 | import com.gr.geias.entity.PersonInfo; 6 | import com.gr.geias.mapper.EmploymentInformationMapper; 7 | import com.gr.geias.service.EmploymentInformationService; 8 | import com.gr.geias.util.PageMath; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.stereotype.Service; 11 | 12 | import java.util.List; 13 | 14 | /** 15 | *

16 | * 服务实现类 17 | *

18 | * 19 | * @author maotentai 20 | * @since 2020-03-06 21 | */ 22 | @Service 23 | public class EmploymentInformationServiceImpl implements EmploymentInformationService { 24 | 25 | 26 | @Autowired 27 | EmploymentInformationMapper informationMapper; 28 | 29 | @Override 30 | public EmploymentInformationMsg getEmploymentInfoList(EmploymentInformation information, Integer pagenum, PersonInfo personInfo, Integer[] salary) { 31 | int i = PageMath.pageNumtoRowIndex(pagenum, 12); 32 | List employmentInformations = informationMapper.queryList(information, i, 12, personInfo, salary); 33 | Integer integer = informationMapper.queryListCount(information, personInfo, salary); 34 | EmploymentInformationMsg employmentInformationMsg = new EmploymentInformationMsg(); 35 | if (integer >= 0) { 36 | employmentInformationMsg.setSuccess(true); 37 | employmentInformationMsg.setCount(integer); 38 | employmentInformationMsg.setList(employmentInformations); 39 | } else { 40 | employmentInformationMsg.setSuccess(false); 41 | } 42 | return employmentInformationMsg; 43 | } 44 | 45 | @Override 46 | public Integer getCount(EmploymentInformation information, PersonInfo personInfo,Integer[] salary) { 47 | return informationMapper.queryListCount(information, personInfo, salary); 48 | } 49 | 50 | @Override 51 | public Integer addEmpoymentInfo(EmploymentInformation employmentInformation) { 52 | return informationMapper.insertEmploymentInformation(employmentInformation); 53 | } 54 | 55 | @Override 56 | public EmploymentInformation getInfoByStudentNum(Integer studentNum) { 57 | return informationMapper.qureyInfoByStudentNum(studentNum); 58 | } 59 | 60 | @Override 61 | public Integer updateInfo(EmploymentInformation employmentInformation) { 62 | return informationMapper.updayeInfo(employmentInformation); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/util/Faseutil.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.util; 2 | 3 | import com.baidu.aip.face.AipFace; 4 | import org.json.JSONObject; 5 | import sun.misc.BASE64Decoder; 6 | 7 | 8 | import java.io.*; 9 | import java.util.HashMap; 10 | 11 | /** 12 | * @author maitentai 13 | * @version 1.0 14 | * @date 2020/5/20 6:01 下午 15 | */ 16 | public class Faseutil { 17 | private static AipFace instance; 18 | private static String groupId = "2"; 19 | 20 | static { 21 | instance = SampleFactory.getInstance(); 22 | } 23 | 24 | public static JSONObject addUser(String image, String userId) { 25 | HashMap options = new HashMap(); 26 | options.put("action_type", "REPLACE"); 27 | String imageType = "BASE64"; 28 | // 人脸注册 29 | JSONObject res = instance.addUser(image, imageType, groupId, userId, options); 30 | return res; 31 | } 32 | 33 | public static JSONObject search(String image) { 34 | // 传入可选参数调用接口 35 | HashMap options = new HashMap(); 36 | options.put("max_face_num", "1"); 37 | options.put("match_threshold", "50"); 38 | options.put("quality_control", "NORMAL"); 39 | options.put("liveness_control", "LOW"); 40 | options.put("max_user_num", "1"); 41 | 42 | String imageType = "BASE64"; 43 | 44 | JSONObject res = instance.search(image, imageType, groupId, options); 45 | return res; 46 | } 47 | 48 | /** 49 | * 删除 50 | */ 51 | public static JSONObject faceDelete() { 52 | // 传入可选参数调用接口 53 | HashMap options = new HashMap(); 54 | 55 | String userId = "user1"; 56 | String faceToken = "face_token_23123"; 57 | 58 | // 人脸删除 59 | JSONObject res = instance.faceDelete(userId, groupId, faceToken, options); 60 | return res; 61 | } 62 | 63 | /** 64 | * 人脸检测 65 | * 66 | */ 67 | public static JSONObject detect(String image) { 68 | System.out.println(image); 69 | // 传入可选参数调用接口 70 | HashMap options = new HashMap(); 71 | options.put("face_field", "age"); 72 | options.put("max_face_num", "2"); 73 | options.put("face_type", "LIVE"); 74 | options.put("liveness_control", "LOW"); 75 | 76 | String imageType = "BASE64"; 77 | 78 | // 人脸检测 79 | JSONObject res = instance.detect(image, imageType, options); 80 | System.out.println("sdadwadawd "+res); 81 | return res; 82 | } 83 | 84 | } 85 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/Interceptor/SpecialtyIntercepetor.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.Interceptor; 2 | 3 | import com.fasterxml.jackson.databind.ObjectMapper; 4 | import com.gr.geias.entity.PersonInfo; 5 | import com.gr.geias.entity.Specialty; 6 | import com.gr.geias.enums.EnableStatusEnums; 7 | import org.springframework.stereotype.Component; 8 | import org.springframework.web.servlet.HandlerInterceptor; 9 | 10 | import javax.servlet.http.HttpServletRequest; 11 | import javax.servlet.http.HttpServletResponse; 12 | import java.io.IOException; 13 | import java.io.PrintWriter; 14 | import java.util.HashMap; 15 | import java.util.List; 16 | import java.util.Map; 17 | 18 | /** 19 | * @author maitentai 20 | * @version 1.0 21 | * @date 2020-03-11 14:59 22 | */ 23 | @Component 24 | public class SpecialtyIntercepetor implements HandlerInterceptor { 25 | @Override 26 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 27 | Boolean collegeIsOK =false; 28 | Boolean specialtyIsOK =false; 29 | PersonInfo person = (PersonInfo) request.getSession().getAttribute("person"); 30 | if (person.getEnableStatus() == EnableStatusEnums.schoolmaster.getState()) { 31 | return true; 32 | } 33 | if (person.getEnableStatus() == EnableStatusEnums.PREXY.getState()) { 34 | String collegeStr = request.getParameter("collegeId"); 35 | if (collegeStr != null) { 36 | int collegeId = Integer.parseInt(collegeStr); 37 | if (collegeId == person.getCollegeId()) { 38 | collegeIsOK = true; 39 | } else { 40 | collegeIsOK = false; 41 | } 42 | }else { 43 | collegeIsOK =true; 44 | } 45 | String specialtyStr = request.getParameter("specialtyId"); 46 | if (specialtyStr == null) { 47 | specialtyIsOK = false; 48 | } 49 | int specialtyId = Integer.parseInt(specialtyStr); 50 | List specialtyList = (List) request.getSession().getAttribute("specialtyList"); 51 | if (specialtyList == null) { 52 | specialtyIsOK = false; 53 | } 54 | for (int i = 0; i < specialtyList.size(); i++) { 55 | if (specialtyList.get(i).getSpecialtyId().equals(specialtyId)) { 56 | specialtyIsOK = true; 57 | } 58 | } 59 | 60 | } 61 | if (specialtyIsOK && collegeIsOK){ 62 | return true; 63 | }else { 64 | return false; 65 | } 66 | 67 | } 68 | 69 | } 70 | -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/lay/modules/rate.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 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/css/login.css: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: xuebingsi 3 | * @Date: 2019-04-01 13:37:17 4 | * @Last Modified by: zhibinm 5 | * @Last Modified time: 2019-04-01 13:37:19 6 | */ 7 | .login-bg{ 8 | /*background: #eeeeee url() 0 0 no-repeat;*/ 9 | background:url(../images/bg.png) no-repeat center; 10 | background-size: cover; 11 | overflow: hidden; 12 | } 13 | .login{ 14 | margin: 120px auto 0 auto; 15 | min-height: 420px; 16 | max-width: 420px; 17 | padding: 40px; 18 | background-color: #ffffff; 19 | margin-left: auto; 20 | margin-right: auto; 21 | border-radius: 4px; 22 | /* overflow-x: hidden; */ 23 | box-sizing: border-box; 24 | } 25 | .login a.logo{ 26 | display: block; 27 | height: 58px; 28 | width: 167px; 29 | margin: 0 auto 30px auto; 30 | background-size: 167px 42px; 31 | } 32 | .login .message { 33 | margin: 10px 0 0 -58px; 34 | padding: 18px 10px 18px 60px; 35 | background: #189F92; 36 | position: relative; 37 | color: #fff; 38 | font-size: 16px; 39 | } 40 | .login #darkbannerwrap { 41 | background: url(../images/aiwrap.png); 42 | width: 18px; 43 | height: 10px; 44 | margin: 0 0 20px -58px; 45 | position: relative; 46 | } 47 | 48 | .login input[type=text], 49 | .login input[type=file], 50 | .login input[type=password], 51 | .login input[type=email], select { 52 | border: 1px solid #DCDEE0; 53 | vertical-align: middle; 54 | border-radius: 3px; 55 | height: 50px; 56 | padding: 0px 16px; 57 | font-size: 14px; 58 | color: #555555; 59 | outline:none; 60 | width:100%; 61 | box-sizing: border-box; 62 | } 63 | .login input[type=text]:focus, 64 | .login input[type=file]:focus, 65 | .login input[type=password]:focus, 66 | .login input[type=email]:focus, select:focus { 67 | border: 1px solid #27A9E3; 68 | } 69 | .login input[type=submit], 70 | .login input[type=button]{ 71 | display: inline-block; 72 | vertical-align: middle; 73 | padding: 12px 24px; 74 | margin: 0px; 75 | font-size: 18px; 76 | line-height: 24px; 77 | text-align: center; 78 | white-space: nowrap; 79 | vertical-align: middle; 80 | cursor: pointer; 81 | color: #ffffff; 82 | background-color: #189F92; 83 | border-radius: 3px; 84 | border: none; 85 | -webkit-appearance: none; 86 | outline:none; 87 | width:100%; 88 | } 89 | 90 | .login hr.hr15 { 91 | height: 15px; 92 | border: none; 93 | margin: 0px; 94 | padding: 0px; 95 | width: 100%; 96 | } 97 | .login hr.hr20 { 98 | height: 20px; 99 | border: none; 100 | margin: 0px; 101 | padding: 0px; 102 | width: 100%; 103 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/from1.css: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: xuebingsi 3 | * @Date: 2019-04-01 13:37:17 4 | * @Last Modified by: zhibinm 5 | * @Last Modified time: 2019-04-01 13:37:19 6 | */ 7 | .login-bg{ 8 | /*background: #eeeeee url() 0 0 no-repeat;*/ 9 | background:url(../images/bg1.jpeg) no-repeat center; 10 | background-size: cover; 11 | overflow: hidden; 12 | } 13 | .login1{ 14 | margin: 120px auto 0 auto; 15 | min-height: 100%; 16 | max-width: 1200px; 17 | padding: 40px; 18 | background-color: #ffffff; 19 | margin-left: auto; 20 | margin-right: auto; 21 | border-radius: 4px; 22 | /* overflow-x: hidden; */ 23 | box-sizing: border-box; 24 | } 25 | .login1 a.logo{ 26 | display: block; 27 | height: 58px; 28 | width: 167px; 29 | margin: 0 auto 30px auto; 30 | background-size: 167px 42px; 31 | } 32 | .login1 .message { 33 | margin: 10px 0 0 -58px; 34 | padding: 18px 10px 18px 60px; 35 | background: #189F92; 36 | position: relative; 37 | color: #fff; 38 | font-size: 16px; 39 | } 40 | .login1 #darkbannerwrap { 41 | background: url(../images/aiwrap.png); 42 | width: 18px; 43 | height: 10px; 44 | margin: 0 0 20px -58px; 45 | position: relative; 46 | } 47 | 48 | .login1 input[type=text], 49 | .login1 input[type=file], 50 | .login1 input[type=password], 51 | .login1 input[type=email], select { 52 | border: 1px solid #DCDEE0; 53 | vertical-align: middle; 54 | border-radius: 3px; 55 | height: 50px; 56 | padding: 0px 16px; 57 | font-size: 14px; 58 | color: #555555; 59 | outline:none; 60 | width:100%; 61 | box-sizing: border-box; 62 | } 63 | .login1 input[type=text]:focus, 64 | .login1 input[type=file]:focus, 65 | .login1 input[type=password]:focus, 66 | .login1 input[type=email]:focus, select:focus { 67 | border: 1px solid #27A9E3; 68 | } 69 | .login1 input[type=submit], 70 | .login1 input[type=button]{ 71 | display: inline-block; 72 | vertical-align: middle; 73 | padding: 12px 24px; 74 | margin: 0px; 75 | font-size: 18px; 76 | line-height: 24px; 77 | text-align: center; 78 | white-space: nowrap; 79 | vertical-align: middle; 80 | cursor: pointer; 81 | color: #ffffff; 82 | background-color: #189F92; 83 | border-radius: 3px; 84 | border: none; 85 | -webkit-appearance: none; 86 | outline:none; 87 | width:100%; 88 | } 89 | 90 | .login1 hr.hr15 { 91 | height: 15px; 92 | border: none; 93 | margin: 0px; 94 | padding: 0px; 95 | width: 100%; 96 | } 97 | .login1 hr.hr20 { 98 | height: 20px; 99 | border: none; 100 | margin: 0px; 101 | padding: 0px; 102 | width: 100%; 103 | } -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/lay/modules/tree.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('
    '),s=o(["
  • ",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return r.check?''+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),"
  • "].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o('
    '));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})}); -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/mapper/PersonInfoMapper.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.entity.PersonInfo; 4 | import org.apache.ibatis.annotations.*; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

    10 | * Mapper 接口 11 | *

    12 | * 13 | * @author maotentai 14 | * @since 2020-03-06 15 | */ 16 | public interface PersonInfoMapper { 17 | /** 18 | * 登录 19 | * 20 | * @param username 用户名 21 | * @param password 秘密 22 | * @return 用户 23 | */ 24 | @Select("select * from tb_person_info where username=#{username} and password=#{password} ") 25 | PersonInfo queryPerson(@Param("username") String username, @Param("password") String password); 26 | 27 | /** 28 | * 根据id查询人员 29 | * 30 | * @param personId 31 | * @return 32 | */ 33 | @Select("select * from tb_person_info where person_id=#{personId} ") 34 | PersonInfo queryPersonById(@Param("personId") Integer personId); 35 | 36 | /** 37 | * 查询学院管理 38 | * 39 | * @return 40 | */ 41 | @Select("select person_id,person_name from tb_person_info where enable_Status=1 and college_id is NULL") 42 | List queryCollegePerson(); 43 | 44 | /** 45 | * 更新用户所属学院 46 | * 47 | * @param personInfo 48 | * @return 49 | */ 50 | Integer updatePerseonofCollege(@Param("personInfo") PersonInfo personInfo); 51 | 52 | /** 53 | * 查询 一个学院里所有的老师 54 | * 55 | * @param collegeId 56 | * @return 57 | */ 58 | @Select("select * from tb_person_info where enable_Status=0 and college_id=#{collegeId}") 59 | List queryPersonByCollegeId(@Param("collegeId") Integer collegeId); 60 | 61 | /** 62 | * 删除一个学院的的全部老师 63 | * 64 | * @param collegeId 65 | * @return 66 | */ 67 | @Delete("delete from tb_person_info where college_id=#{collegeId}") 68 | Integer delPerson(@Param("collegeId") Integer collegeId); 69 | 70 | /** 71 | * 添加人员 72 | * 73 | * @param personInfo 74 | * @return 75 | */ 76 | @Insert("insert into tb_person_info(enable_Status,person_name,create_time,password,username,college_id) values(#{person.enableStatus},#{person.personName},#{person.createTime},#{person.password},#{person.username},#{person.collegeId})") 77 | Integer insertPerson(@Param("person") PersonInfo personInfo); 78 | 79 | /** 80 | * 更新人员信息 81 | * 82 | * @param personInfo 83 | * @return 84 | */ 85 | Integer updatePerson(@Param("person") PersonInfo personInfo); 86 | 87 | /** 88 | * 删除用户 89 | * @param personId 90 | * @return 91 | */ 92 | @Delete("delete from tb_person_info where person_id=#{personId}") 93 | Integer delPersonById(@Param("personId") Integer personId); 94 | 95 | /** 96 | * 获取 权限为1的的用户 97 | * @return 98 | */ 99 | @Select("select * from tb_person_info where enable_Status =1") 100 | List queryPerson1(); 101 | 102 | @Update("update tb_person_info set face_token = #{faceToken} where person_id = #{personId}") 103 | Integer updatePersonById(@Param("personId") Integer personId,@Param("faceToken") String faceToken); 104 | } 105 | 106 | -------------------------------------------------------------------------------- /src/main/resources/static/html/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 登录-毕业生就业信息分析平台(GEIAS) 6 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 | 25 | 40 | 73 | 74 | -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/lay/modules/util.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(t){"use strict";var e=layui.$,i={fixbar:function(t){var i,a,n="layui-fixbar",r="layui-fixbar-top",o=e(document),l=e("body");t=e.extend({showHeight:200},t),t.bar1=t.bar1===!0?"":t.bar1,t.bar2=t.bar2===!0?"":t.bar2,t.bgcolor=t.bgcolor?"background-color:"+t.bgcolor:"";var c=[t.bar1,t.bar2,""],g=e(['
      ',t.bar1?'
    • '+c[0]+"
    • ":"",t.bar2?'
    • '+c[1]+"
    • ":"",'
    • '+c[2]+"
    • ","
    "].join("")),s=g.find("."+r),u=function(){var e=o.scrollTop();e>=t.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};e("."+n)[0]||("object"==typeof t.css&&g.css(t.css),l.append(g),u(),g.find("li").on("click",function(){var i=e(this),a=i.attr("lay-type");"top"===a&&e("html,body").animate({scrollTop:0},200),t.click&&t.click.call(this,a)}),o.on("scroll",function(){clearTimeout(a),a=setTimeout(function(){u()},100)}))},countdown:function(t,e,i){var a=this,n="function"==typeof e,r=new Date(t).getTime(),o=new Date(!e||n?(new Date).getTime():e).getTime(),l=r-o,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];n&&(i=e);var g=setTimeout(function(){a.countdown(t,o+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],e,g),l<=0&&clearTimeout(g),g},timeAgo:function(t,e){var i=this,a=[[],[]],n=(new Date).getTime()-new Date(t).getTime();return n>6912e5?(n=new Date(t),a[0][0]=i.digit(n.getFullYear(),4),a[0][1]=i.digit(n.getMonth()+1),a[0][2]=i.digit(n.getDate()),e||(a[1][0]=i.digit(n.getHours()),a[1][1]=i.digit(n.getMinutes()),a[1][2]=i.digit(n.getSeconds())),a[0].join("-")+" "+a[1].join(":")):n>=864e5?(n/1e3/60/60/24|0)+"天前":n>=36e5?(n/1e3/60/60|0)+"小时前":n>=12e4?(n/1e3/60|0)+"分钟前":n<0?"未来":"刚刚"},digit:function(t,e){var i="";t=String(t),e=e||2;for(var a=t.length;a/g,">").replace(/'/g,"'").replace(/"/g,""")}};!function(t,e,i){"$:nomunge";function a(){n=e[l](function(){r.each(function(){var e=t(this),i=e.width(),a=e.height(),n=t.data(this,g);(i!==n.w||a!==n.h)&&e.trigger(c,[n.w=i,n.h=a])}),a()},o[s])}var n,r=t([]),o=t.resize=t.extend(t.resize,{}),l="setTimeout",c="resize",g=c+"-special-event",s="delay",u="throttleWindow";o[s]=250,o[u]=!0,t.event.special[c]={setup:function(){if(!o[u]&&this[l])return!1;var e=t(this);r=r.add(e),t.data(this,g,{w:e.width(),h:e.height()}),1===r.length&&a()},teardown:function(){if(!o[u]&&this[l])return!1;var e=t(this);r=r.not(e),e.removeData(g),r.length||clearTimeout(n)},add:function(e){function a(e,a,r){var o=t(this),l=t.data(this,g)||{};l.w=a!==i?a:o.width(),l.h=r!==i?r:o.height(),n.apply(this,arguments)}if(!o[u]&&this[l])return!1;var n;return t.isFunction(e)?(n=e,a):(n=e.handler,void(e.handler=a))}}}(e,window),t("util",i)}); -------------------------------------------------------------------------------- /src/main/resources/static/html/faseLogin.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 毕业生就业信息分析平台(GEIAS) 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 18 | 19 | 20 |
    21 |
    22 | 23 | 24 | 25 |
    26 |
    27 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/mapper/OrganizationNumMapper.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.mapper; 2 | 3 | import com.gr.geias.entity.OrganizationNum; 4 | import org.apache.ibatis.annotations.*; 5 | 6 | /** 7 | * @author maitentai 8 | * @version 1.0 9 | * @date 2020-03-09 09:11 10 | */ 11 | public interface OrganizationNumMapper { 12 | /** 13 | * 添加人数 14 | * @param num 信息 15 | * @return 16 | */ 17 | @Insert("insert into tb_organization_num(sum,class_id,college_id,specialty_id) values(#{num.sum},#{num.classId},#{num.collegeId},#{num.specialtyId})") 18 | Integer insertOrganizationNum(@Param("num") OrganizationNum num); 19 | 20 | /** 21 | * 修改已有的学院人数 22 | * @param sum 23 | * @param collegeId 24 | * @return 25 | */ 26 | @Update("update tb_organization_num set sum=#{sum} where college_id=#{collegeId}") 27 | Integer updataOrganizationNumByCollegeId(@Param("sum")Integer sum,@Param("collegeId")Integer collegeId); 28 | 29 | /** 30 | * 查询学院人数 31 | * @param collegeId 学院id 32 | * @return 33 | */ 34 | @Select("select sum from tb_organization_num where college_id=#{collegeId}") 35 | Integer queryCountByCollegeId(@Param("collegeId")Integer collegeId); 36 | 37 | /** 38 | * 删除学院人数记录 39 | * @param collegeId 学院id 40 | * @return 41 | */ 42 | @Delete("delete FROM tb_organization_num where college_id=#{collegeId}") 43 | Integer delCollegeCount(@Param("collegeId") Integer collegeId); 44 | 45 | /** 46 | * 查询专业人数 47 | * @param specialtyId 48 | * @return 49 | */ 50 | @Select("select sum from tb_organization_num where specialty_id=#{specialtyId}") 51 | Integer queryCountByspecialtyId(@Param("specialtyId")Integer specialtyId); 52 | 53 | 54 | /** 55 | * 删除专业人数记录 56 | * @param specialtyId 专业id 57 | * @return 58 | */ 59 | @Delete("delete FROM tb_organization_num where specialty_id=#{specialtyId}") 60 | Integer delSpecialtyCount(@Param("specialtyId") Integer specialtyId); 61 | 62 | /** 63 | * 查询班级人数 64 | * @param classId 65 | * @return 66 | */ 67 | @Select("select sum from tb_organization_num where class_id=#{classId}") 68 | Integer queryCountByclassId(@Param("classId")Integer classId); 69 | 70 | 71 | /** 72 | * 修改已有的专业人数 73 | * @param sum 74 | * @param specialtyId 75 | * @return 76 | */ 77 | @Update("update tb_organization_num set sum=#{sum} where specialty_id=#{specialtyId}") 78 | Integer updataOrganizationNumBySpecialtyId(@Param("sum")Integer sum,@Param("specialtyId")Integer specialtyId); 79 | 80 | /** 81 | * 更新班级人数 82 | * @param sum 83 | * @param classGradeId 84 | * @return 85 | */ 86 | @Update("update tb_organization_num set sum=#{sum} where class_id=#{classGradeId}") 87 | Integer updateNumByClassGradeId(@Param("sum")Integer sum,@Param("classGradeId")Integer classGradeId); 88 | 89 | /** 90 | * 删除班级人数记录 91 | * @param classId 92 | * @return 93 | */ 94 | @Delete("delete from tb_organization_num where class_id= #{classId}") 95 | Integer delClassGrade(@Param("classId") Integer classId); 96 | 97 | /** 98 | * 获取学校总人数 99 | * @return 100 | */ 101 | @Select("select SUM(sum) from tb_organization_num where college_id is not null;") 102 | Integer queryAllCollegeSum(); 103 | 104 | } 105 | -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/lay/modules/carousel.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 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&&(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 2 | 3 | 4 | 5 | 6 | 毕业生就业信息分析平台(GEIAS) 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 18 | 19 | 20 |
    21 |
    22 | 23 | 24 | 25 | 26 |
    27 |
    28 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.2.5.RELEASE 9 | 10 | 11 | com.gr 12 | geias 13 | 0.0.1-SNAPSHOT 14 | geias 15 | Graduate EmploymentInfo Analyze System 16 | 17 | 18 | 1.8 19 | 20 | 21 | 22 | 23 | org.springframework.boot 24 | spring-boot-starter-web 25 | 26 | 27 | 28 | org.springframework.boot 29 | spring-boot-starter-test 30 | test 31 | 32 | 33 | org.junit.vintage 34 | junit-vintage-engine 35 | 36 | 37 | 38 | 39 | org.springframework.boot 40 | spring-boot-devtools 41 | true 42 | 43 | 44 | 45 | mysql 46 | mysql-connector-java 47 | 5.1.37 48 | 49 | 50 | 51 | com.alibaba 52 | druid-spring-boot-starter 53 | 1.1.10 54 | 55 | 56 | 57 | org.mybatis.spring.boot 58 | mybatis-spring-boot-starter 59 | 2.1.0 60 | 61 | 62 | org.springframework.boot 63 | spring-boot-starter-aop 64 | 65 | 66 | 67 | org.projectlombok 68 | lombok 69 | 1.18.10 70 | provided 71 | 72 | 73 | com.baidu.aip 74 | java-sdk 75 | 4.12.0 76 | 77 | 78 | junit 79 | junit 80 | test 81 | 82 | 83 | 84 | com.alibaba 85 | easyexcel 86 | 2.1.6 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | org.springframework.boot 95 | spring-boot-maven-plugin 96 | 97 | 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/impl/SpecialtyServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service.impl; 2 | 3 | import com.gr.geias.entity.ClassGrade; 4 | import com.gr.geias.entity.OrganizationNum; 5 | import com.gr.geias.entity.Specialty; 6 | import com.gr.geias.mapper.ClassGradeMapper; 7 | import com.gr.geias.mapper.OrganizationNumMapper; 8 | import com.gr.geias.mapper.SpecialtyMapper; 9 | import com.gr.geias.service.ClassGradeService; 10 | import com.gr.geias.service.SpecialtyService; 11 | import org.springframework.beans.factory.annotation.Autowired; 12 | import org.springframework.stereotype.Service; 13 | import org.springframework.transaction.annotation.Transactional; 14 | 15 | import java.util.List; 16 | 17 | /** 18 | *

    19 | * 服务实现类 20 | *

    21 | * 22 | * @author maotentai 23 | * @since 2020-03-06 24 | */ 25 | @Service 26 | public class SpecialtyServiceImpl implements SpecialtyService { 27 | @Autowired 28 | SpecialtyMapper specialtyMapper; 29 | @Autowired 30 | OrganizationNumMapper organizationNumMapper; 31 | @Autowired 32 | ClassGradeService classGradeService; 33 | 34 | 35 | @Override 36 | public List getSpecialty(Integer collegeId) { 37 | return specialtyMapper.querySpecialty(collegeId); 38 | } 39 | 40 | @Override 41 | @Transactional 42 | public Boolean addSpecialty(Specialty specialty) { 43 | try { 44 | Integer integer = specialtyMapper.insertSpecialty(specialty); 45 | OrganizationNum organizationNum = new OrganizationNum(); 46 | organizationNum.setSum(0); 47 | organizationNum.setSpecialtyId(specialty.getSpecialtyId()); 48 | organizationNumMapper.insertOrganizationNum(organizationNum); 49 | return true; 50 | }catch (Exception e){ 51 | e.printStackTrace(); 52 | throw new RuntimeException("添加专业失败"); 53 | } 54 | } 55 | 56 | @Override 57 | public Boolean updateSpecialty(Specialty specialty) { 58 | Integer integer = specialtyMapper.updateSpecialty(specialty); 59 | if (integer>0){ 60 | return true; 61 | }else { 62 | return false; 63 | } 64 | } 65 | @Override 66 | @Transactional 67 | public Boolean delSpecialty(Integer specialtyId) { 68 | try { 69 | Integer integer = organizationNumMapper.delSpecialtyCount(specialtyId); 70 | List classGrade = classGradeService.getClassGrade(specialtyId, null); 71 | for (int i = 0; i < classGrade.size(); i++) { 72 | classGradeService.delClassGrade(classGrade.get(i).getClassId()); 73 | } 74 | Integer integer1 = specialtyMapper.delSpecialty(specialtyId); 75 | 76 | if (integer>0 && integer1>0){ 77 | return true; 78 | }else { 79 | throw new RuntimeException("删除时失败"); 80 | } 81 | }catch (Exception e){ 82 | throw new RuntimeException(e.getMessage()); 83 | } 84 | } 85 | 86 | @Override 87 | public Specialty getSpecialtyById(Integer specialtyId) { 88 | return specialtyMapper.querySpecialtyById(specialtyId); 89 | } 90 | 91 | @Override 92 | @Transactional 93 | public Integer getAndSetSpecialtyCount(Integer specialtyId) { 94 | try { 95 | Integer integer = specialtyMapper.queryCountSpecialty(specialtyId); 96 | if (integer == null) { 97 | integer = 0; 98 | } 99 | Integer integer1 = organizationNumMapper.updataOrganizationNumBySpecialtyId(integer, specialtyId); 100 | if (integer1 <= 0) { 101 | throw new Exception(); 102 | } 103 | return integer; 104 | } catch (Exception e) { 105 | throw new RuntimeException("查询并持久化失败"); 106 | } 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/config/WebConfigurer.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.config; 2 | 3 | import com.gr.geias.Interceptor.*; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.context.annotation.Configuration; 6 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 7 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 8 | 9 | /** 10 | * @author maitentai 11 | * @version 1.0 12 | * @date 2020-03-11 11:51 13 | */ 14 | @Configuration 15 | public class WebConfigurer implements WebMvcConfigurer { 16 | @Autowired 17 | LoginInterceptor loginInterceptor; 18 | @Autowired 19 | AdminInterceptor adminInterceptor; 20 | @Autowired 21 | SuperAdminInterceptor superAdminInterceptor; 22 | @Autowired 23 | SpecialtyIntercepetor specialtyIntercepetor; 24 | @Autowired 25 | ClassGradeInterceptor classGradeInterceptor; 26 | @Autowired 27 | Person0Interceptor person0Interceptor; 28 | 29 | @Override 30 | public void addInterceptors(InterceptorRegistry registry) { 31 | registry.addInterceptor(loginInterceptor).addPathPatterns("/**") 32 | .excludePathPatterns("/page/login", "/page/error", "/page/getinfo","/page/faseLogin") 33 | .excludePathPatterns("/personinfo/login", "/info/**","/personinfo/faseLogin") 34 | .excludePathPatterns("/html/**", "/fonts/**", "/images/**", "/js/**", "/lib/**", "/css/**"); 35 | 36 | registry.addInterceptor(adminInterceptor).addPathPatterns("/**") 37 | .excludePathPatterns("/page/index", "/page/echarts1", "/page/memberlist", "/page/echarts4", "/page/echarts2", "/page/error", "/page/login", "/page/getinfo", "/page/welcome", "/page/personedit", "/page/toexcal","/page/faseLogin") 38 | .excludePathPatterns("/init/getinit", "/init/getleve" 39 | , "/employmentinformation/getemploymentinfo" 40 | , "/employmentinformation/getcountbyemploymentway" 41 | , "/employmentinformation/getcountbyunitkind" 42 | , "/employmentinformation/getcountbyarea" 43 | , "/personinfo/login" 44 | ,"/personinfo/faseLogin" 45 | , "/info/**" 46 | , "/welcome/**" 47 | , "/personinfo/getuser" 48 | , "/personinfo/updateuser" 49 | , "/employmentinformation/download" 50 | ,"/personinfo/addFase") 51 | .excludePathPatterns("/html/**", "/fonts/**", "/images/**", "/js/**", "/lib/**", "/css/**"); 52 | registry.addInterceptor(superAdminInterceptor).addPathPatterns("/page/organizationlist", "/page/collegeadd", "/page/collegeedit", "/page/person_1_list", "/page/person1add", "/page/person_1_edit") 53 | .addPathPatterns("/organizationcontroller/delcollege" 54 | , "/organizationcontroller/getcollegelist" 55 | , "/organizationcontroller/getcollegeadmin" 56 | , "/organizationcontroller/addcollege" 57 | , "/organizationcontroller/updatecollege" 58 | , "/organizationcontroller/delperson_1" 59 | , "/organizationcontroller/getperson_1" 60 | , "/organizationcontroller/updateperson_1" 61 | , "/organizationcontroller/addperson_1"); 62 | 63 | registry.addInterceptor(specialtyIntercepetor).addPathPatterns("/organizationcontroller/updatespecialty", "/organizationcontroller/delspecialty"); 64 | registry.addInterceptor(classGradeInterceptor).addPathPatterns("/organizationcontroller/getclassgrade", "/organizationcontroller/addclassgrade", "/organizationcontroller/updateclassgrade", "/organizationcontroller/delclassgrade"); 65 | registry.addInterceptor(person0Interceptor).addPathPatterns("/organizationcontroller/getpersonById", "/organizationcontroller/updateperson_0", "/organizationcontroller/delperson_0"); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/main/resources/static/lib/layui/lay/modules/laypage.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.4.5 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/java/com/gr/geias/service/impl/ClassGradeServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service.impl; 2 | 3 | import com.gr.geias.entity.ClassGrade; 4 | import com.gr.geias.entity.EmploymentInformation; 5 | import com.gr.geias.entity.OrganizationNum; 6 | import com.gr.geias.entity.Specialty; 7 | import com.gr.geias.mapper.ClassGradeMapper; 8 | import com.gr.geias.mapper.EmploymentInformationMapper; 9 | import com.gr.geias.mapper.OrganizationNumMapper; 10 | import com.gr.geias.mapper.SpecialtyMapper; 11 | import com.gr.geias.service.ClassGradeService; 12 | import com.gr.geias.service.CollegeService; 13 | import com.gr.geias.service.SpecialtyService; 14 | import org.apache.ibatis.annotations.Param; 15 | import org.springframework.beans.factory.annotation.Autowired; 16 | import org.springframework.stereotype.Service; 17 | import org.springframework.transaction.annotation.Transactional; 18 | 19 | import java.util.EmptyStackException; 20 | import java.util.List; 21 | 22 | /** 23 | *

    24 | * 服务实现类 25 | *

    26 | * 27 | * @author maotentai 28 | * @since 2020-03-06 29 | */ 30 | @Service 31 | public class ClassGradeServiceImpl implements ClassGradeService { 32 | @Autowired 33 | ClassGradeMapper classGradeMapper; 34 | @Autowired 35 | OrganizationNumMapper organizationNumMapper; 36 | @Autowired 37 | SpecialtyMapper specialtyMapper; 38 | @Autowired 39 | SpecialtyService specialtyService; 40 | @Autowired 41 | CollegeService collegeService; 42 | @Autowired 43 | EmploymentInformationMapper employmentInformationMapper; 44 | 45 | @Override 46 | public List getClassGrade(Integer specialtyId, Integer adminId) { 47 | return classGradeMapper.queryClassGrade(specialtyId, adminId); 48 | } 49 | 50 | @Override 51 | @Transactional 52 | public Boolean addClassGrade(ClassGrade classGrade, Integer sum,Integer collegeId) { 53 | Integer integer = classGradeMapper.insertClassGrede(classGrade); 54 | if (integer > 0) { 55 | try { 56 | OrganizationNum organizationNum = new OrganizationNum(); 57 | organizationNum.setClassId(classGrade.getClassId()); 58 | organizationNum.setSum(sum); 59 | Integer integer1 = organizationNumMapper.insertOrganizationNum(organizationNum); 60 | collegeService.getAndSetcount(collegeId); 61 | specialtyService.getAndSetSpecialtyCount(classGrade.getSpecialtyId()); 62 | if (integer1 > 0) { 63 | return true; 64 | } else { 65 | return false; 66 | } 67 | } catch (Exception e) { 68 | throw new RuntimeException("添加出错"); 69 | } 70 | } else { 71 | return false; 72 | } 73 | } 74 | 75 | @Override 76 | @Transactional 77 | public Boolean updateClassGrade(ClassGrade classGrade, Integer sum,Integer collegeId) { 78 | try { 79 | Integer integer = classGradeMapper.updateClassGrede(classGrade); 80 | Integer integer1 = organizationNumMapper.updateNumByClassGradeId(sum, classGrade.getClassId()); 81 | collegeService.getAndSetcount(collegeId); 82 | specialtyService.getAndSetSpecialtyCount(classGrade.getSpecialtyId()); 83 | if (integer > 0 && integer1 > 0) { 84 | return true; 85 | } else { 86 | throw new RuntimeException("更新错误"); 87 | } 88 | }catch (Exception e){ 89 | throw new RuntimeException("更新错误"); 90 | } 91 | 92 | } 93 | 94 | @Override 95 | @Transactional 96 | public Boolean delClassGrade(Integer classId) { 97 | try { 98 | Integer integer1 = organizationNumMapper.delClassGrade(classId); 99 | EmploymentInformation employmentInformation = new EmploymentInformation(); 100 | ClassGrade classGrade = new ClassGrade(); 101 | classGrade.setClassId(classId); 102 | employmentInformation.setClassGrade(classGrade); 103 | employmentInformationMapper.delEmploymentInformation(employmentInformation); 104 | Integer integer = classGradeMapper.delClassGrede(classId); 105 | if (integer > 0 && integer1 > 0) { 106 | return true; 107 | } else { 108 | throw new RuntimeException("删除记录失败"); 109 | } 110 | }catch (Exception e){ 111 | throw new RuntimeException("删除记录失败"); 112 | } 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/impl/PersonInfoServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service.impl; 2 | 3 | import com.gr.geias.entity.PersonInfo; 4 | import com.gr.geias.mapper.PersonInfoMapper; 5 | import com.gr.geias.service.PersonInfoService; 6 | import com.gr.geias.util.Faseutil; 7 | import org.json.JSONArray; 8 | import org.json.JSONObject; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.stereotype.Service; 11 | import org.springframework.web.multipart.MultipartFile; 12 | import sun.misc.BASE64Encoder; 13 | 14 | import java.util.List; 15 | 16 | /** 17 | *

    18 | * 服务实现类 19 | *

    20 | * 21 | * @author maotentai 22 | * @since 2020-03-06 23 | */ 24 | @Service 25 | public class PersonInfoServiceImpl implements PersonInfoService { 26 | @Autowired 27 | PersonInfoMapper personInfoMapper; 28 | 29 | @Override 30 | public PersonInfo login(String username, String password) { 31 | return personInfoMapper.queryPerson(username, password); 32 | } 33 | 34 | @Override 35 | public PersonInfo getPersonById(Integer personId) { 36 | return personInfoMapper.queryPersonById(personId); 37 | } 38 | 39 | @Override 40 | public List getCollegePerson() { 41 | return personInfoMapper.queryCollegePerson(); 42 | } 43 | 44 | @Override 45 | public List getPersonByCollegeId(Integer collegeId) { 46 | return personInfoMapper.queryPersonByCollegeId(collegeId); 47 | } 48 | 49 | @Override 50 | public Boolean insertPerson(PersonInfo personInfo) { 51 | Integer integer = personInfoMapper.insertPerson(personInfo); 52 | if (integer > 0) { 53 | return true; 54 | } else { 55 | return false; 56 | } 57 | } 58 | 59 | @Override 60 | public Boolean updatePerson(PersonInfo personInfo) { 61 | try { 62 | Integer integer = personInfoMapper.updatePerson(personInfo); 63 | if (integer > 0) { 64 | return true; 65 | } else { 66 | return false; 67 | } 68 | } catch (Exception e) { 69 | throw new RuntimeException(); 70 | } 71 | } 72 | 73 | @Override 74 | public Boolean delPerson(Integer personId) { 75 | Integer integer = personInfoMapper.delPersonById(personId); 76 | if (integer > 0) { 77 | return true; 78 | } else { 79 | return false; 80 | } 81 | } 82 | 83 | @Override 84 | public List getPerson1() { 85 | return personInfoMapper.queryPerson1(); 86 | } 87 | 88 | @Override 89 | public Boolean addFace(PersonInfo personInfo, String faseImage) { 90 | Integer personId = personInfo.getPersonId(); 91 | try { 92 | JSONObject jsonObject = Faseutil.addUser(faseImage, personId.toString()); 93 | String error_msg = jsonObject.getString("error_msg"); 94 | JSONObject result = jsonObject.getJSONObject("result"); 95 | String face_token = result.getString("face_token"); 96 | if (error_msg.equals("SUCCESS")) { 97 | Integer integer = personInfoMapper.updatePersonById(personId, face_token); 98 | if (integer > 0) { 99 | personInfo.setFaceToken(face_token); 100 | return true; 101 | } 102 | } 103 | return false; 104 | } catch (Exception e) { 105 | return false; 106 | } 107 | } 108 | 109 | @Override 110 | public PersonInfo checkFace(String image) { 111 | try { 112 | JSONObject search = Faseutil.search(image); 113 | String error_msg = search.getString("error_msg"); 114 | if (error_msg.equals("SUCCESS")){ 115 | JSONObject result = search.getJSONObject("result"); 116 | JSONArray user_list = result.getJSONArray("user_list"); 117 | JSONObject jsonObject = user_list.getJSONObject(0); 118 | double score = jsonObject.getDouble("score"); 119 | String user_id = jsonObject.getString("user_id"); 120 | if (score>90){ 121 | return personInfoMapper.queryPersonById(Integer.parseInt(user_id)); 122 | }else { 123 | return new PersonInfo(); 124 | } 125 | }else { 126 | return null; 127 | } 128 | }catch (Exception e){ 129 | return null; 130 | } 131 | } 132 | } 133 | -------------------------------------------------------------------------------- /src/main/resources/static/html/echarts2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 毕业生就业信息分析平台(GEIAS) 6 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 |
    21 | 22 | 23 | 24 | 26 | 27 | 28 |
    29 |
    30 |
    31 |
    32 |
    33 |
    34 | 35 | 36 |
    37 | 38 |
    39 |
    40 |
    41 |
    42 |
    43 | 44 | 45 | 131 | 132 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/service/impl/CollegeServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.service.impl; 2 | 3 | import com.gr.geias.entity.College; 4 | import com.gr.geias.entity.OrganizationNum; 5 | import com.gr.geias.entity.PersonInfo; 6 | import com.gr.geias.entity.Specialty; 7 | import com.gr.geias.mapper.CollegeMapper; 8 | import com.gr.geias.mapper.OrganizationNumMapper; 9 | import com.gr.geias.mapper.PersonInfoMapper; 10 | import com.gr.geias.service.CollegeService; 11 | import com.gr.geias.service.SpecialtyService; 12 | import org.springframework.beans.factory.annotation.Autowired; 13 | import org.springframework.stereotype.Service; 14 | import org.springframework.transaction.annotation.Transactional; 15 | 16 | import java.util.List; 17 | 18 | /** 19 | *

    20 | * 服务实现类 21 | *

    22 | * 23 | * @author maotentai 24 | * @since 2020-03-06 25 | */ 26 | @Service 27 | public class CollegeServiceImpl implements CollegeService { 28 | @Autowired 29 | CollegeMapper collegeMapper; 30 | @Autowired 31 | PersonInfoMapper personInfoMapper; 32 | @Autowired 33 | OrganizationNumMapper organizationNumMapper; 34 | @Autowired 35 | SpecialtyService specialtyService; 36 | 37 | @Override 38 | public List getCollege(Integer adminId) { 39 | return collegeMapper.queryCollege(adminId); 40 | } 41 | 42 | @Override 43 | @Transactional 44 | public Boolean addCollege(College college) { 45 | int i = collegeMapper.addCollege(college); 46 | if (i > 0) { 47 | PersonInfo personInfo = new PersonInfo(); 48 | personInfo.setPersonId(college.getAdminId()); 49 | personInfo.setCollegeId(college.getCollegeId()); 50 | Integer integer = personInfoMapper.updatePerseonofCollege(personInfo); 51 | OrganizationNum organizationNum = new OrganizationNum(); 52 | organizationNum.setCollegeId(college.getCollegeId()); 53 | organizationNum.setSum(0); 54 | Integer integer1 = organizationNumMapper.insertOrganizationNum(organizationNum); 55 | if (integer > 0 && integer1 > 0) { 56 | return true; 57 | } else { 58 | throw new RuntimeException("添加过程中出错"); 59 | } 60 | } else { 61 | throw new RuntimeException("添加过程中出错"); 62 | } 63 | } 64 | 65 | @Override 66 | public Integer getAndSetcount(Integer collegeId) { 67 | Integer integer = collegeMapper.quereyCollegeCount(collegeId); 68 | if (integer == null) { 69 | integer = 0; 70 | } 71 | organizationNumMapper.updataOrganizationNumByCollegeId(integer, collegeId); 72 | return integer; 73 | } 74 | 75 | @Override 76 | @Transactional 77 | public Boolean updateCollege(College college) { 78 | 79 | if (college.getAdminId() != null) { 80 | try { 81 | College college1 = collegeMapper.queryCollegeById(college.getCollegeId()); 82 | PersonInfo personInfo = new PersonInfo(); 83 | personInfo.setPersonId(college1.getAdminId()); 84 | personInfo.setCollegeId(null); 85 | personInfoMapper.updatePerseonofCollege(personInfo); 86 | collegeMapper.updateCollege(college); 87 | PersonInfo personInfo1 = new PersonInfo(); 88 | personInfo1.setPersonId(college.getAdminId()); 89 | personInfo1.setCollegeId(college.getCollegeId()); 90 | personInfoMapper.updatePerseonofCollege(personInfo1); 91 | return true; 92 | }catch (Exception e){ 93 | throw new RuntimeException("修改时出错"); 94 | } 95 | }else{ 96 | collegeMapper.updateCollege(college); 97 | return true; 98 | } 99 | } 100 | 101 | @Override 102 | @Transactional 103 | public Boolean delCollege(Integer collegeId){ 104 | try { 105 | College college = collegeMapper.queryCollegeById(collegeId); 106 | organizationNumMapper.delCollegeCount(collegeId); 107 | PersonInfo personInfo = new PersonInfo(); 108 | personInfo.setCollegeId(null); 109 | personInfo.setPersonId(college.getAdminId()); 110 | personInfoMapper.updatePerseonofCollege(personInfo); 111 | List specialty = specialtyService.getSpecialty(collegeId); 112 | for (int i = 0; i < specialty.size(); i++) { 113 | specialtyService.delSpecialty(specialty.get(i).getSpecialtyId()); 114 | } 115 | personInfoMapper.delPerson(collegeId); 116 | collegeMapper.delCollegeById(collegeId); 117 | return true; 118 | }catch (Exception e){ 119 | throw new RuntimeException("删除出错,请重试"); 120 | } 121 | } 122 | 123 | @Override 124 | public College getCollegeById(Integer collegeId) { 125 | return collegeMapper.queryCollegeById(collegeId); 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/controller/InitController.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.controller; 2 | 3 | 4 | import com.gr.geias.entity.*; 5 | import com.gr.geias.enums.EnableStatusEnums; 6 | import com.gr.geias.mapper.AreaMapper; 7 | import com.gr.geias.service.*; 8 | import org.apache.ibatis.annotations.Param; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.web.bind.annotation.RequestMapping; 11 | 12 | import org.springframework.web.bind.annotation.RequestParam; 13 | import org.springframework.web.bind.annotation.RestController; 14 | 15 | import javax.management.monitor.StringMonitor; 16 | import javax.servlet.http.HttpServletRequest; 17 | import java.util.HashMap; 18 | import java.util.List; 19 | import java.util.Map; 20 | 21 | /** 22 | *

    23 | * 前端控制器 24 | *

    25 | * 26 | * @author maotentai 27 | * @since 2020-03-06 28 | */ 29 | @RestController 30 | @RequestMapping("/init") 31 | public class InitController { 32 | @Autowired 33 | AreaService areaService; 34 | @Autowired 35 | CollegeService collegeService; 36 | @Autowired 37 | SpecialtyService specialtyService; 38 | @Autowired 39 | ClassGradeService classGradeService; 40 | @Autowired 41 | EmploymentWayService employmentWayService; 42 | @Autowired 43 | UnitKindService unitKindService; 44 | 45 | /** 46 | * 获取普通分类信息 如:地区 就业途径 职业分类 权限 0,1,2 47 | * @param areaId 48 | * @param request 49 | * @return 50 | */ 51 | @RequestMapping("/getinit") 52 | public Map getinit(@RequestParam(value = "areaId", required = false) Integer areaId, 53 | HttpServletRequest request) { 54 | Map ruslt = getArea(areaId); 55 | if ((Boolean) ruslt.get("success")) { 56 | List employmentWay = employmentWayService.getEmploymentWay(); 57 | ruslt.put("employmentWayList", employmentWay); 58 | List unitKind = unitKindService.getUnitKind(); 59 | ruslt.put("unitKindList", unitKind); 60 | } 61 | return ruslt; 62 | } 63 | 64 | /** 65 | * 获取高级分类信息 如:班级 专业 学院 权限 0,1,2 66 | * @param levelId 67 | * @param request 68 | * @return 69 | */ 70 | @RequestMapping("/getleve") 71 | public Map getLeve(@Param("levelId")Integer levelId,HttpServletRequest request){ 72 | 73 | Map map = new HashMap<>(3); 74 | PersonInfo person = (PersonInfo)request.getSession().getAttribute("person"); 75 | if (levelId!=null && levelId==0){ 76 | if (person.getEnableStatus()==EnableStatusEnums.schoolmaster.getState()){ 77 | List college = collegeService.getCollege(null); 78 | map.put("success",true); 79 | map.put("list",college); 80 | map.put("level", 2); 81 | } 82 | if (person.getEnableStatus()==EnableStatusEnums.PREXY.getState()){ 83 | List college = collegeService.getCollege(person.getPersonId()); 84 | College college1 = college.get(0); 85 | List specialty = specialtyService.getSpecialty(college1.getCollegeId()); 86 | map.put("success",true); 87 | map.put("list",specialty); 88 | map.put("level", 1); 89 | } 90 | if (person.getEnableStatus()==EnableStatusEnums.TEACHER.getState()){ 91 | List classGrade = classGradeService.getClassGrade(null, person.getPersonId()); 92 | map.put("success",true); 93 | map.put("list",classGrade); 94 | map.put("level", 0); 95 | } 96 | } 97 | return map; 98 | } 99 | 100 | 101 | private Map getArea(Integer areaId) { 102 | Map map = new HashMap<>(5); 103 | if (areaId == 0) { 104 | List area = areaService.getArea(null); 105 | map.put("success", true); 106 | map.put("areaList", area); 107 | return map; 108 | } 109 | if (areaId < 0) { 110 | map.put("success", false); 111 | map.put("errMsg", "参数错误"); 112 | return map; 113 | } else { 114 | Area area = new Area(); 115 | area.setParentId(areaId); 116 | List areaList = areaService.getArea(area); 117 | if (areaList.size() > 0) { 118 | map.put("success", true); 119 | map.put("areaList", areaList); 120 | return map; 121 | } else { 122 | Area area1 = new Area(); 123 | area1.setAreaId(areaId); 124 | List areaList1 = areaService.getArea(area1); 125 | map.put("success", true); 126 | map.put("areaList", areaList1); 127 | return map; 128 | } 129 | } 130 | } 131 | 132 | } 133 | -------------------------------------------------------------------------------- /src/main/resources/static/html/toExcal.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 毕业生就业信息分析平台(GEIAS) 7 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 20 | 21 | 22 |
    23 |
    24 |
    25 |
    26 |
    27 | 28 |
    Id
    30 | 31 |
    学号
    33 | 34 |
    姓名
    36 | 37 |
    性别
    39 | 40 |
    班级
    42 | 43 |
    专业
    45 | 46 |
    学院
    48 | 49 |
    就业地区
    51 | 52 |
    职业种类
    54 | 55 |
    工作来源
    57 | 58 |
    工资
    60 |
    61 |
    62 |
    63 | 64 | 65 |
    66 |
    67 |
    68 |
    69 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /src/main/resources/static/js/bmap.min.js: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Licensed to the Apache Software Foundation (ASF) under one 4 | * or more contributor license agreements. See the NOTICE file 5 | * distributed with this work for additional information 6 | * regarding copyright ownership. The ASF licenses this file 7 | * to you under the Apache License, Version 2.0 (the 8 | * "License"); you may not use this file except in compliance 9 | * with the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, 14 | * software distributed under the License is distributed on an 15 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | * KIND, either express or implied. See the License for the 17 | * specific language governing permissions and limitations 18 | * under the License. 19 | */ 20 | 21 | 22 | !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("echarts")):"function"==typeof define&&define.amd?define(["exports","echarts"],e):e(t.bmap={},t.echarts)}(this,function(t,e){"use strict";function o(t,e){this._bmap=t,this.dimensions=["lng","lat"],this._mapOffset=[0,0],this._api=e,this._projection=new BMap.MercatorProjection}function n(t,o){return o=o||[0,0],e.util.map([0,1],function(e){var n=o[e],i=t[e]/2,a=[],r=[];return a[e]=n-i,r[e]=n+i,a[1-e]=r[1-e]=o[1-e],Math.abs(this.dataToPoint(a)[e]-this.dataToPoint(r)[e])},this)}function i(){function t(t){this._root=t}return t.prototype=new BMap.Overlay,t.prototype.initialize=function(t){return t.getPanes().labelPane.appendChild(this._root),this._root},t.prototype.draw=function(){},t}function a(t,e){return t&&e&&t[0]===e[0]&&t[1]===e[1]}o.prototype.dimensions=["lng","lat"],o.prototype.setZoom=function(t){this._zoom=t},o.prototype.setCenter=function(t){this._center=this._projection.lngLatToPoint(new BMap.Point(t[0],t[1]))},o.prototype.setMapOffset=function(t){this._mapOffset=t},o.prototype.getBMap=function(){return this._bmap},o.prototype.dataToPoint=function(t){var e=new BMap.Point(t[0],t[1]),o=this._bmap.pointToOverlayPixel(e),n=this._mapOffset;return[o.x-n[0],o.y-n[1]]},o.prototype.pointToData=function(t){var e=this._mapOffset;return[(t=this._bmap.overlayPixelToPoint({x:t[0]+e[0],y:t[1]+e[1]})).lng,t.lat]},o.prototype.getViewRect=function(){var t=this._api;return new e.graphic.BoundingRect(0,0,t.getWidth(),t.getHeight())},o.prototype.getRoamTransform=function(){return e.matrix.create()},o.prototype.prepareCustoms=function(t){var o=this.getViewRect();return{coordSys:{type:"bmap",x:o.x,y:o.y,width:o.width,height:o.height},api:{coord:e.util.bind(this.dataToPoint,this),size:e.util.bind(n,this)}}};var r;o.dimensions=o.prototype.dimensions,o.create=function(t,e){var n,a=e.getDom();t.eachComponent("bmap",function(t){var p=e.getZr().painter,s=p.getViewportRoot();if("undefined"==typeof BMap)throw new Error("BMap api is not loaded");if(r=r||i(),n)throw new Error("Only one bmap component can exist");if(!t.__bmap){var m=a.querySelector(".ec-extension-bmap");m&&(s.style.left="0px",s.style.top="0px",a.removeChild(m)),(m=document.createElement("div")).style.cssText="width:100%;height:100%",m.classList.add("ec-extension-bmap"),a.appendChild(m);var c=t.__bmap=new BMap.Map(m),d=new r(s);c.addOverlay(d),p.getViewportRootOffset=function(){return{offsetLeft:0,offsetTop:0}}}var c=t.__bmap,f=t.get("center"),l=t.get("zoom");if(f&&l){var h=new BMap.Point(f[0],f[1]);c.centerAndZoom(h,l)}(n=new o(c,e)).setMapOffset(t.__mapOffset||[0,0]),n.setZoom(l),n.setCenter(f),t.coordinateSystem=n}),t.eachSeries(function(t){"bmap"===t.get("coordinateSystem")&&(t.coordinateSystem=n)})},e.extendComponentModel({type:"bmap",getBMap:function(){return this.__bmap},setCenterAndZoom:function(t,e){this.option.center=t,this.option.zoom=e},centerOrZoomChanged:function(t,e){var o=this.option;return!(a(t,o.center)&&e===o.zoom)},defaultOption:{center:[104.114129,37.550339],zoom:5,mapStyle:{},roam:!1}}),e.extendComponentView({type:"bmap",render:function(t,e,o){function n(){i||o.dispatchAction({type:"bmapRoam"})}var i=!0,a=t.getBMap(),r=o.getZr().painter.getViewportRoot(),p=t.coordinateSystem,s=function(e,n){if(!i){var a=r.parentNode.parentNode.parentNode,s=[-parseInt(a.style.left,10)||0,-parseInt(a.style.top,10)||0];r.style.left=s[0]+"px",r.style.top=s[1]+"px",p.setMapOffset(s),t.__mapOffset=s,o.dispatchAction({type:"bmapRoam"})}};a.removeEventListener("moving",this._oldMoveHandler),a.removeEventListener("zoomend",this._oldZoomEndHandler),a.addEventListener("moving",s),a.addEventListener("zoomend",n),this._oldMoveHandler=s,this._oldZoomEndHandler=n;var m=t.get("roam");m&&"scale"!==m?a.enableDragging():a.disableDragging(),m&&"move"!==m?(a.enableScrollWheelZoom(),a.enableDoubleClickZoom(),a.enablePinchToZoom()):(a.disableScrollWheelZoom(),a.disableDoubleClickZoom(),a.disablePinchToZoom());var c=t.__mapStyle,d=t.get("mapStyle")||{},f=JSON.stringify(d);JSON.stringify(c)!==f&&(Object.keys(d).length&&a.setMapStyle(d),t.__mapStyle=JSON.parse(f)),i=!1}}),e.registerCoordinateSystem("bmap",o),e.registerAction({type:"bmapRoam",event:"bmapRoam",update:"updateLayout"},function(t,e){e.eachComponent("bmap",function(t){var e=t.getBMap(),o=e.getCenter();t.setCenterAndZoom([o.lng,o.lat],e.getZoom())})});t.version="1.0.0"}); 23 | -------------------------------------------------------------------------------- /src/main/resources/static/html/echarts1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 毕业生就业信息分析平台(GEIAS) 6 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 |
    22 | 23 | 24 | 25 | 27 | 28 | 29 |
    30 |
    31 |
    32 |
    33 |
    34 |
    35 | 36 | 37 |
    38 | 39 |
    40 |
    41 |
    42 |
    43 |
    44 | 45 | 46 | 142 | 143 | -------------------------------------------------------------------------------- /src/main/resources/static/html/person_1_add.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 毕业生就业信息分析平台(GEIAS) 7 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 20 | 21 | 22 |
    23 |
    24 |
    25 |
    26 | 28 |
    29 |
    31 |
    32 |
    33 | 35 |
    36 |
    38 |
    39 |
    40 | 42 |
    43 |
    45 |
    46 |
    47 | 48 | 49 |
    50 |
    51 |
    52 |
    53 | 104 | 105 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/util/ExcalUtil.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.util; 2 | 3 | 4 | import com.alibaba.excel.EasyExcel; 5 | import com.alibaba.excel.ExcelWriter; 6 | import com.alibaba.excel.write.metadata.WriteSheet; 7 | import com.gr.geias.dto.EmploymentInformationExcal; 8 | import com.gr.geias.entity.EmploymentInformation; 9 | import com.gr.geias.entity.PersonInfo; 10 | import com.gr.geias.mapper.EmploymentInformationMapper; 11 | import org.springframework.beans.factory.annotation.Autowired; 12 | import org.springframework.stereotype.Component; 13 | 14 | import javax.servlet.http.HttpServletResponse; 15 | import java.io.IOException; 16 | import java.net.URLEncoder; 17 | import java.text.SimpleDateFormat; 18 | import java.util.*; 19 | 20 | /** 21 | * @author maitentai 22 | * @version 1.0 23 | * @date 2020-03-13 21:33 24 | */ 25 | @Component 26 | public class ExcalUtil { 27 | @Autowired 28 | EmploymentInformationMapper employmentInformationMapper; 29 | 30 | private final static String TAG = "on"; 31 | 32 | public void createExcal(HttpServletResponse response, 33 | PersonInfo personInfo, 34 | Set excludeColumnFiledNames) throws IOException { 35 | response.setContentType("application/vnd.ms-excel"); 36 | response.setCharacterEncoding("utf-8"); 37 | SimpleDateFormat sdf = new SimpleDateFormat(); 38 | sdf.applyPattern("yyyy-MM-dd HH:mm:ss"); 39 | String format = sdf.format(new Date()); 40 | 41 | String fileName = URLEncoder.encode("毕业生就业信息" + format, "UTF-8"); 42 | response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); 43 | ExcelWriter excelWriter = EasyExcel.write( 44 | response.getOutputStream(), 45 | EmploymentInformationExcal.class) 46 | .excludeColumnFiledNames(excludeColumnFiledNames).build(); 47 | WriteSheet writeSheet = EasyExcel.writerSheet("信息1").build(); 48 | Integer integer = employmentInformationMapper.queryListCount(null, personInfo, null); 49 | Integer num = (integer / 100) + 1; 50 | for (int i = 0; i < num; i++) { 51 | excelWriter.write(getdata(i, personInfo), writeSheet); 52 | } 53 | // 千万别忘记finish 会帮忙关闭流 54 | excelWriter.finish(); 55 | } 56 | 57 | public Set getExcludeColumn(String id,String studentNum,String name,String gender,String classGrade,String specialty,String college,String area,String unit,String way,String salary) { 58 | Set set = new HashSet<>(); 59 | if (id==null){ 60 | set.add("informationId"); 61 | } 62 | if (studentNum==null){ 63 | set.add("studentNum"); 64 | } 65 | if (name==null){ 66 | set.add("name"); 67 | } 68 | if (gender==null){ 69 | set.add("gender"); 70 | } 71 | if (classGrade==null){ 72 | set.add("className"); 73 | } 74 | if (specialty==null){ 75 | set.add("specialtyName"); 76 | } 77 | if (college==null){ 78 | set.add("collegeName"); 79 | } 80 | if (area==null){ 81 | set.add("areaName"); 82 | } 83 | if (unit==null){ 84 | set.add("unitName"); 85 | } 86 | if (way==null){ 87 | set.add("wayName"); 88 | } 89 | if (salary==null){ 90 | set.add("salary"); 91 | } 92 | return set; 93 | } 94 | 95 | private List getdata(Integer num, PersonInfo personInfo) { 96 | List list = new ArrayList<>(); 97 | int indexNum = PageMath.pageNumtoRowIndex(num, 100); 98 | List employmentInformations = 99 | employmentInformationMapper.queryList(null, indexNum, 100 | 100, personInfo, null); 101 | for (int i = 0; i < employmentInformations.size(); i++) { 102 | EmploymentInformation info = employmentInformations.get(i); 103 | EmploymentInformationExcal infoExcal = getInfoExal(info); 104 | list.add(infoExcal); 105 | } 106 | return list; 107 | } 108 | 109 | private EmploymentInformationExcal getInfoExal(EmploymentInformation info) { 110 | EmploymentInformationExcal infoExcal = new EmploymentInformationExcal(); 111 | infoExcal.setAreaName(info.getArea().getAreaName()); 112 | infoExcal.setClassName(info.getClassGrade().getClassName()); 113 | infoExcal.setCollegeName(info.getCollege().getCollegeName()); 114 | infoExcal.setCreateTime(info.getCreateTime()); 115 | infoExcal.setGender(getGender(info.getGender())); 116 | infoExcal.setInformationId(info.getInformationId()); 117 | infoExcal.setMsg(info.getMsg()); 118 | infoExcal.setName(info.getName()); 119 | infoExcal.setSalary(info.getSalary()); 120 | infoExcal.setSpecialtyName(info.getSpecialty().getSpecialtyName()); 121 | infoExcal.setStudentNum(info.getStudentNum()); 122 | infoExcal.setUnitName(info.getUnitKind().getUnitName()); 123 | infoExcal.setWayName(info.getEmploymentWay().getVayName()); 124 | return infoExcal; 125 | } 126 | 127 | private String getGender(Integer gender) { 128 | if (gender == 1) { 129 | return "男"; 130 | } else { 131 | return "女"; 132 | } 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /src/main/java/com/gr/geias/controller/PersonInfoController.java: -------------------------------------------------------------------------------- 1 | package com.gr.geias.controller; 2 | 3 | 4 | import com.gr.geias.entity.PersonInfo; 5 | import com.gr.geias.entity.Specialty; 6 | import com.gr.geias.enums.EnableStatusEnums; 7 | import com.gr.geias.service.PersonInfoService; 8 | import com.gr.geias.service.SpecialtyService; 9 | import com.gr.geias.util.Faseutil; 10 | import org.json.JSONObject; 11 | import org.springframework.beans.factory.annotation.Autowired; 12 | import org.springframework.web.bind.annotation.*; 13 | import org.springframework.web.multipart.MultipartFile; 14 | 15 | import javax.servlet.http.HttpServletRequest; 16 | import java.util.HashMap; 17 | import java.util.List; 18 | import java.util.Map; 19 | 20 | /** 21 | *

    22 | * 前端控制器 23 | *

    24 | * 25 | * @author maotentai 26 | * @since 2020-03-06 27 | */ 28 | @RestController 29 | @RequestMapping("/personinfo") 30 | public class PersonInfoController { 31 | @Autowired 32 | PersonInfoService personInfoService; 33 | @Autowired 34 | SpecialtyService specialtyService; 35 | 36 | /** 37 | * 登录 权限 无权限者即可接入 38 | * 39 | * @param username 40 | * @param password 41 | * @param request 42 | * @return 43 | */ 44 | @RequestMapping(value = "/login", method = RequestMethod.POST) 45 | public Map login(@RequestParam(value = "username") String username, 46 | @RequestParam(value = "password") String password, 47 | HttpServletRequest request) { 48 | Map map = new HashMap<>(3); 49 | if (username == null || username.equals("") || password == null || password.equals("")) { 50 | map.put("success", false); 51 | map.put("errMsg", "用户名或者密码为空"); 52 | } else { 53 | PersonInfo login = personInfoService.login(username, password); 54 | if (login != null) { 55 | request.getSession().setAttribute("person", login); 56 | if (login.getEnableStatus() == EnableStatusEnums.PREXY.getState()) { 57 | List specialtyList = specialtyService.getSpecialty(login.getCollegeId()); 58 | List person0 = personInfoService.getPersonByCollegeId(login.getCollegeId()); 59 | request.getSession().setAttribute("person0List", person0); 60 | request.getSession().setAttribute("specialtyList", specialtyList); 61 | } 62 | map.put("success", true); 63 | } else { 64 | map.put("success", false); 65 | map.put("errMsg", "用户名或者密码错误"); 66 | } 67 | } 68 | return map; 69 | } 70 | 71 | @RequestMapping(value = "/getuser") 72 | public Map getUser(HttpServletRequest request) { 73 | Map map = new HashMap<>(2); 74 | PersonInfo person = (PersonInfo) request.getSession().getAttribute("person"); 75 | map.put("success", true); 76 | map.put("person", person); 77 | return map; 78 | } 79 | 80 | @RequestMapping(value = "/updateuser") 81 | public Map updateUser(HttpServletRequest request, 82 | @RequestParam("personname") String personname, 83 | @RequestParam("username") String username, 84 | @RequestParam("password") String password) { 85 | Map map = new HashMap<>(2); 86 | PersonInfo person = (PersonInfo) request.getSession().getAttribute("person"); 87 | person.setUsername(username); 88 | person.setPassword(password); 89 | person.setPersonName(personname); 90 | Boolean aBoolean = personInfoService.updatePerson(person); 91 | if (aBoolean) { 92 | map.put("success", true); 93 | return map; 94 | } else { 95 | map.put("success", false); 96 | map.put("errMsg", "修改出错"); 97 | return map; 98 | } 99 | } 100 | 101 | @RequestMapping("/addFase") 102 | public Map addFase(@RequestParam("file") String file, 103 | HttpServletRequest request) throws Exception { 104 | Map map = new HashMap<>(2); 105 | PersonInfo person = (PersonInfo) request.getSession().getAttribute("person"); 106 | String[] split = file.split(","); 107 | Boolean aBoolean = personInfoService.addFace(person, split[1]); 108 | if (aBoolean) { 109 | request.getSession().setAttribute("person", person); 110 | map.put("success", true); 111 | } else { 112 | map.put("success", false); 113 | map.put("errMsg", "添加出错"); 114 | } 115 | return map; 116 | } 117 | 118 | @RequestMapping("/faseLogin") 119 | public Map faseLogin(@RequestParam("file") String file, 120 | HttpServletRequest request) { 121 | Map map = new HashMap<>(2); 122 | String[] split = file.split(","); 123 | PersonInfo personInfo = personInfoService.checkFace(split[1]); 124 | if (personInfo == null) { 125 | map.put("success", false); 126 | map.put("errMsg", "没有识别到人脸"); 127 | }else if (personInfo.getPersonId() == null) { 128 | map.put("success", false); 129 | map.put("errMsg", "没有该用户"); 130 | }else if (personInfo.getPersonId() != null) { 131 | request.getSession().setAttribute("person", personInfo); 132 | map.put("success", true); 133 | }else { 134 | map.put("success", false); 135 | map.put("errMsg", "登录失败"); 136 | } 137 | return map; 138 | } 139 | 140 | } 141 | --------------------------------------------------------------------------------