diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a2a3040 --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/element-vue/src/components/personal.vue b/element-vue/src/components/personal.vue new file mode 100644 index 0000000..7e82c50 --- /dev/null +++ b/element-vue/src/components/personal.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/element-vue/src/components/supManager/home.vue b/element-vue/src/components/supManager/home.vue new file mode 100644 index 0000000..99a2fce --- /dev/null +++ b/element-vue/src/components/supManager/home.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/element-vue/src/components/supManager/index.vue b/element-vue/src/components/supManager/index.vue new file mode 100644 index 0000000..f0785ce --- /dev/null +++ b/element-vue/src/components/supManager/index.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/element-vue/src/components/supManager/navBar.vue b/element-vue/src/components/supManager/navBar.vue new file mode 100644 index 0000000..105083f --- /dev/null +++ b/element-vue/src/components/supManager/navBar.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/element-vue/src/components/supManager/userEditForm.vue b/element-vue/src/components/supManager/userEditForm.vue new file mode 100644 index 0000000..64a02ed --- /dev/null +++ b/element-vue/src/components/supManager/userEditForm.vue @@ -0,0 +1,118 @@ + + + diff --git a/element-vue/src/components/supManager/userManage.vue b/element-vue/src/components/supManager/userManage.vue new file mode 100644 index 0000000..5523b23 --- /dev/null +++ b/element-vue/src/components/supManager/userManage.vue @@ -0,0 +1,141 @@ + + + diff --git a/element-vue/src/pages/supManager/index.vue b/element-vue/src/pages/supManager/index.vue index d15b384..62148d9 100644 --- a/element-vue/src/pages/supManager/index.vue +++ b/element-vue/src/pages/supManager/index.vue @@ -1,21 +1,13 @@ diff --git a/element-vue/src/pages/teacher/courseManagement.vue b/element-vue/src/pages/teacher/courseManagement.vue index 3e07fbd..f6e0c13 100644 --- a/element-vue/src/pages/teacher/courseManagement.vue +++ b/element-vue/src/pages/teacher/courseManagement.vue @@ -3,10 +3,10 @@
- + 添加课程 - - 查询 + + 查询 @@ -71,6 +71,7 @@ components:{navBar,timeSelect}, data(){ return{ + search:'', dialogAdd:false, tableData:[{ uc_id:'', diff --git a/element-vue/src/router.js b/element-vue/src/router.js index f02f75b..4e6fa36 100644 --- a/element-vue/src/router.js +++ b/element-vue/src/router.js @@ -15,6 +15,10 @@ import labApplyDetail from "~/pages/labApplyDetail"; import applyLab from "~/pages/teacher/applyLab"; import myApplyRecord from "~/pages/teacher/myApplyRecord"; import courseManagement from "~/pages/teacher/courseManagement"; +import supHome from "~/components/supManager/home"; +import supIndex from "~/components/supManager/index"; +import globalPersonal from "~/components/personal"; +import userManage from "~/components/supManager/userManage"; // 要告诉 vue 使用 vueRouter Vue.use(VueRouter); @@ -25,8 +29,8 @@ const routes = [ redirect: '/login' }, { - path:'/test', - component:test + path: '/test', + component: test }, { path: "/teacher", @@ -34,7 +38,7 @@ const routes = [ children: [ { path: '', - name:'teacher', + name: 'teacher', component: teacher }, { @@ -42,12 +46,12 @@ const routes = [ component: personal }, { - path:'myCourse', - component:myCourse + path: 'myCourse', + component: myCourse }, { - path:'applyLab', - component:applyLab + path: 'applyLab', + component: applyLab }, { path:'myApplyRecord', @@ -56,32 +60,57 @@ const routes = [ { path:'courseManagement', component:courseManagement + }, + { + path: 'myApplyRecord', + component: myApplyRecord } ] }, { - path:'/manager', - component:manager, - children:[ - - ] + path: '/manager', + component: manager, + children: [] }, { - path:'/supManager', - component:supManager + path: '/supManager', + component: supManager, + children: [ + { + path: '', + component: supHome + }, + { + path: 'index', + component: supIndex, + children: [ + { + path: 'personal', + component: globalPersonal + },{ + path: 'labManage', + component: globalPersonal + }, + { + path: 'userManage', + component: userManage + } + ] + } + ] }, { - path:"/login", - component:login + path: "/login", + component: login }, { - path:'/tbCourse', - component:tb_course + path: '/tbCourse', + component: tb_course }, { - path:'/labApplyDetail', - component:labApplyDetail + path: '/labApplyDetail', + component: labApplyDetail } ] diff --git a/element-vue/src/utils/index.js b/element-vue/src/utils/index.js index 87edf15..95c3843 100644 --- a/element-vue/src/utils/index.js +++ b/element-vue/src/utils/index.js @@ -10,6 +10,10 @@ export function post(url, data) { return request(url, 'POST', data, '') } +export function stop() { + return new Promise((resolve, reject) => {}) +} + async function request(url, method, data, params, header = {}) { return new Promise((resolve, reject) => { axios({ @@ -25,7 +29,7 @@ async function request(url, method, data, params, header = {}) { console.log(res) // 0:正常请求 // -1:错误请求 - // -2:没有登陆 + // 401:没有登陆 if (res.data.code === 0) { resolve(res.data.data) } else if (res.data.code === 401) { @@ -34,8 +38,6 @@ async function request(url, method, data, params, header = {}) { } else { reject(res.data) } - }).catch(res => { - console.log(res) }) }) } diff --git a/git b/git deleted file mode 100644 index e69de29..0000000 diff --git a/java/src/main/java/com/hzu/bookingsystem/bean/LabBean.java b/java/src/main/java/com/hzu/bookingsystem/bean/LabBean.java index 6aaab74..1b8f433 100644 --- a/java/src/main/java/com/hzu/bookingsystem/bean/LabBean.java +++ b/java/src/main/java/com/hzu/bookingsystem/bean/LabBean.java @@ -15,7 +15,6 @@ public class LabBean { @Id @GeneratedValue(strategy= GenerationType.IDENTITY) private Integer labId; - // 管理员uID private Integer managerId; @@ -26,7 +25,7 @@ public class LabBean { private String position; // 实验室容量 - private String capacity; + private Integer capacity; // 实验室含有的软件(逗号隔开) private String software; @@ -34,5 +33,4 @@ public class LabBean { private Date createTime; private Date updateTime; - } diff --git a/java/src/main/java/com/hzu/bookingsystem/bean/LabRecordBean.java b/java/src/main/java/com/hzu/bookingsystem/bean/LabRecordBean.java index cd7d8ee..14c054f 100644 --- a/java/src/main/java/com/hzu/bookingsystem/bean/LabRecordBean.java +++ b/java/src/main/java/com/hzu/bookingsystem/bean/LabRecordBean.java @@ -1,13 +1,14 @@ package com.hzu.bookingsystem.bean; +import lombok.AllArgsConstructor; import lombok.Data; - +import lombok.NoArgsConstructor; import javax.persistence.*; import java.util.Date; -/** - * author 吴志岳 - */ + @Data +@NoArgsConstructor +@AllArgsConstructor @Entity @Table(name = "tb_lab_record") public class LabRecordBean { @@ -33,5 +34,5 @@ public class LabRecordBean { private Date updateTime; - + private Date deleteTime; } diff --git a/java/src/main/java/com/hzu/bookingsystem/bean/LabTimeBean.java b/java/src/main/java/com/hzu/bookingsystem/bean/LabTimeBean.java index b01f60e..77e4d45 100644 --- a/java/src/main/java/com/hzu/bookingsystem/bean/LabTimeBean.java +++ b/java/src/main/java/com/hzu/bookingsystem/bean/LabTimeBean.java @@ -28,13 +28,13 @@ public class LabTimeBean { private String semester; // 几周 - private Integer week; + private String week; // 周几 - private Integer day; + private String day; // 第几节课 - private Integer time; + private String time; // 状态 private Integer status; diff --git a/java/src/main/java/com/hzu/bookingsystem/bean/UserAuthBean.java b/java/src/main/java/com/hzu/bookingsystem/bean/UserAuthBean.java new file mode 100644 index 0000000..a8a91f0 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/bean/UserAuthBean.java @@ -0,0 +1,25 @@ +package com.hzu.bookingsystem.bean; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +/** + * author 吴志岳 + */ + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +@Table(name = "tb_auth_group_access") +public class UserAuthBean { + @Id + private Integer uId; + + private Integer groupId; +} diff --git a/java/src/main/java/com/hzu/bookingsystem/bean/UserCourseBean.java b/java/src/main/java/com/hzu/bookingsystem/bean/UserCourseBean.java index 26a57f3..70a9f55 100644 --- a/java/src/main/java/com/hzu/bookingsystem/bean/UserCourseBean.java +++ b/java/src/main/java/com/hzu/bookingsystem/bean/UserCourseBean.java @@ -1,13 +1,17 @@ package com.hzu.bookingsystem.bean; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import javax.persistence.*; /** * author 吴志岳 */ @Data +@NoArgsConstructor +@AllArgsConstructor @Entity @Table(name = "tb_user_course") public class UserCourseBean { @@ -28,7 +32,7 @@ public class UserCourseBean { private String year; // 学期 - private String semester; + private Integer semester; // 授课人数 private Integer population; @@ -40,5 +44,6 @@ public class UserCourseBean { private String remind; // 是否有课件 - private Integer isHaveDocuments; + private Integer ishavedocuments; + } diff --git a/java/src/main/java/com/hzu/bookingsystem/controller/UserController.java b/java/src/main/java/com/hzu/bookingsystem/controller/UserController.java index 19380dc..b4398a0 100644 --- a/java/src/main/java/com/hzu/bookingsystem/controller/UserController.java +++ b/java/src/main/java/com/hzu/bookingsystem/controller/UserController.java @@ -1,12 +1,14 @@ package com.hzu.bookingsystem.controller; import com.hzu.bookingsystem.VO.ResultVO; +import com.hzu.bookingsystem.converter.Map2Object; import com.hzu.bookingsystem.dto.UserDTO; import com.hzu.bookingsystem.bean.UserBean; import com.hzu.bookingsystem.service.UserService; import com.hzu.bookingsystem.utils.CookieUtil; import com.hzu.bookingsystem.utils.MD5Util; import com.hzu.bookingsystem.utils.ResultVOUtil; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.util.StringUtils; @@ -15,6 +17,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.util.List; import java.util.Map; import java.util.UUID; @@ -86,8 +89,14 @@ public class UserController { //创建用户 @PostMapping(value = "/addUser", consumes = "application/json") - public ResultVO addUser(@RequestBody UserBean user) { - userService.add(user); + public ResultVO addUser(@RequestBody Map map) { + // 0.转换对象 + UserBean user = (UserBean) Map2Object.map2Object(map,UserBean.class); + // 1.查重 + if (userService.findByUserame(user.getUsername()) != null) + return ResultVOUtil.error(-1,"该工号已存在!"); + // 2.插入 + userService.add(user,(Integer)map.get("position")); return ResultVOUtil.success(); } @@ -134,10 +143,33 @@ public class UserController { UserBean old = userService.findById(uId); user.setUId(uId); user.setPassword(old.getPassword()); + user.setUsername(old.getUsername()); userService.update(user); return ResultVOUtil.success(); } + /** + * 修改用户信息 + * @param map + * @param request + * @return + */ + @PostMapping(value = "/updateUser", consumes = "application/json") + public ResultVO updateUser(@RequestBody Map map, + HttpServletRequest request){ + // 转换对象 + UserBean user = (UserBean) Map2Object.map2Object(map,UserBean.class); + if (user.getUId() == null){ + return ResultVOUtil.error(-1,"未找到该用户ID"); + } + UserBean old = userService.findById(user.getUId()); + user.setUId(user.getUId()); + user.setPassword(old.getPassword()); + user.setUsername(old.getUsername()); + userService.update(user,(Integer) map.get("position")); + return ResultVOUtil.success(); + } + /** * 通过cookie查找Uid * @param request diff --git a/java/src/main/java/com/hzu/bookingsystem/converter/Map2Object.java b/java/src/main/java/com/hzu/bookingsystem/converter/Map2Object.java new file mode 100644 index 0000000..1b64bf5 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/converter/Map2Object.java @@ -0,0 +1,40 @@ +package com.hzu.bookingsystem.converter; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Map; +import java.util.Objects; + +public class Map2Object { + /** + * @param map + * @param clazz + * @return + */ + public static Object map2Object(Map map, Class clazz) { + if (map == null) { + return null; + } + Object ob = null; + try { + ob = clazz.newInstance(); + Field[] fis = ob.getClass().getDeclaredFields(); + for (Field fi : fis) { + int mod = fi.getModifiers(); + if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) { + continue; + } + fi.setAccessible(true); + if (Objects.equals("entranceId", fi.getName())) { + String str = String.valueOf(map.get(fi.getName())); + fi.set(ob, Long.parseLong(str)); + } else { + fi.set(ob, map.get(fi.getName())); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return ob; + } +} \ No newline at end of file diff --git a/java/src/main/java/com/hzu/bookingsystem/dto/UserDTO.java b/java/src/main/java/com/hzu/bookingsystem/dto/UserDTO.java index 3ecf584..bc4e2ba 100644 --- a/java/src/main/java/com/hzu/bookingsystem/dto/UserDTO.java +++ b/java/src/main/java/com/hzu/bookingsystem/dto/UserDTO.java @@ -7,14 +7,7 @@ import lombok.NoArgsConstructor; import javax.persistence.*; @Data -@NoArgsConstructor -@AllArgsConstructor -@Entity -@Table(name = "tb_user") public class UserDTO { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) // 用户ID private Integer uId; @@ -32,4 +25,7 @@ public class UserDTO { //办公室地点 private String office; + + //职位 + private Integer position; } diff --git a/java/src/main/java/com/hzu/bookingsystem/filter/UserAuthorizeAspect.java b/java/src/main/java/com/hzu/bookingsystem/filter/UserAuthorizeAspect.java index 61b7803..d9b856d 100644 --- a/java/src/main/java/com/hzu/bookingsystem/filter/UserAuthorizeAspect.java +++ b/java/src/main/java/com/hzu/bookingsystem/filter/UserAuthorizeAspect.java @@ -24,12 +24,13 @@ public class UserAuthorizeAspect { @Autowired private StringRedisTemplate redisTemplate; - @Pointcut("execution(public * com.hzu.bookingsystem.controller.*.*(..))" + - "&& !execution(public * com.hzu.bookingsystem.controller.UserController.login(..))" + - "&& !execution(public * com.hzu.bookingsystem.controller.UserController.logout(..))") +// @Pointcut("execution(public * com.hzu.bookingsystem.controller.*.*(..))" + +// "&& !execution(public * com.hzu.bookingsystem.controller.UserController.login(..))" + +// "&& !execution(public * com.hzu.bookingsystem.controller.UserController.logout(..))") + @Pointcut( + "execution(public * com.hzu.bookingsystem.controller.UserController.getUserList(..))") public void verify() {} - @Before("verify()") public void doVerify() { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordRepository.java b/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordRepository.java new file mode 100644 index 0000000..a22da5c --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordRepository.java @@ -0,0 +1,30 @@ +package com.hzu.bookingsystem.repository; + +import com.hzu.bookingsystem.bean.LabRecordBean; + +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface LabRecordRepository extends JpaRepository { + + + LabRecordBean findByLrId(Integer lt_id); + + + LabRecordBean save(LabRecordBean labrecord) ; + + + List findAll() ; + + + List findByStatus(Integer status ) ; + + + void deleteBylrId(Integer lt_id); + + + + +} diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/LabRepository.java b/java/src/main/java/com/hzu/bookingsystem/repository/LabRepository.java new file mode 100644 index 0000000..7b4f2ab --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/repository/LabRepository.java @@ -0,0 +1,50 @@ +package com.hzu.bookingsystem.repository; + + +import com.hzu.bookingsystem.bean.LabBean; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +/** + * author 莫家豪 + */ +public interface LabRepository extends JpaRepository { + + /** + * 通过lab_id删除实验室 + * + * @param labId + * @return + */ + void deleteByLabId(Integer labId); + + + // 查找所有用户 + List findAll(); + + /** + * 通过lab_id查找实验室 + * + * @param labId + * @return + */ + LabBean findByLabId(Integer labId); + + /** + * 通过name查找实验室 + * + * @param name + * @return + */ + LabBean findByName(String name); + + /** + * 通过position查找实验室 + * + * @param position + * @return + */ + LabBean findByPosition(String position); + +} diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/LabTimeRepository.java b/java/src/main/java/com/hzu/bookingsystem/repository/LabTimeRepository.java new file mode 100644 index 0000000..f925977 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/repository/LabTimeRepository.java @@ -0,0 +1,57 @@ +package com.hzu.bookingsystem.repository; + + +import com.hzu.bookingsystem.bean.LabTimeBean; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +/** + * author 莫家豪 + */ +public interface LabTimeRepository extends JpaRepository { + + /** + * 通过lt_id删除实验室 + * + * @param ltId + * @return + */ + void deleteByLtId(Integer ltId); + + // 查找所有用户 + List findAll(); + + /** + * 通过lt_id查找实验室可预约时间段 + * + * @param ltId + * @return + */ + LabTimeBean findByLtId(Integer ltId); + + /** + * 通过状态查找实验室可预约时间段 + * + * @param status + * @return + */ + LabTimeBean findByStatus(Integer status); + + /** + * 通过上课时间查找实验室可预约时间段 + * + * @param time + * @return + */ + LabTimeBean findByTime(String time); + + /** + * 通过学期、周、星期、上课时间查找实验室可预约时间段 + * + * @param year、weeks、day、time + * @return + */ + LabTimeBean findByYear(String year); + +} diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/UserAuthRepository.java b/java/src/main/java/com/hzu/bookingsystem/repository/UserAuthRepository.java new file mode 100644 index 0000000..896d05d --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/repository/UserAuthRepository.java @@ -0,0 +1,12 @@ +package com.hzu.bookingsystem.repository; + + +import com.hzu.bookingsystem.bean.UserAuthBean; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * author 吴志岳 + */ +public interface UserAuthRepository extends JpaRepository { + UserAuthBean findByUId(Integer uId); +} diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/UserCourseRepository.java b/java/src/main/java/com/hzu/bookingsystem/repository/UserCourseRepository.java new file mode 100644 index 0000000..22e3ee0 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/repository/UserCourseRepository.java @@ -0,0 +1,34 @@ +package com.hzu.bookingsystem.repository; + + + +import com.hzu.bookingsystem.bean.UserCourseBean; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface UserCourseRepository extends JpaRepository { + + + + UserCourseBean findByUcId(Integer uc_id); + + + UserCourseBean save(UserCourseBean uc_id) ; + + + List findAll() ; + + + List findByUIdAndYearAndSemester(Integer u_id,String year,Integer semester) ; + + + + + + void deleteByUcId(Integer uc_id); + + + +} diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/UserRepository.java b/java/src/main/java/com/hzu/bookingsystem/repository/UserRepository.java index 42fe31c..2c46bd6 100644 --- a/java/src/main/java/com/hzu/bookingsystem/repository/UserRepository.java +++ b/java/src/main/java/com/hzu/bookingsystem/repository/UserRepository.java @@ -12,4 +12,6 @@ public interface UserRepository extends JpaRepository { void deleteByUId(Integer uId); UserBean findByUsernameAndPassword(String username, String password); + + UserBean findByUsername(String username); } diff --git a/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java b/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java new file mode 100644 index 0000000..674464f --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java @@ -0,0 +1,59 @@ +package com.hzu.bookingsystem.service; + + +import com.hzu.bookingsystem.bean.LabRecordBean; + +import java.util.List; + +public interface LabRecordService { + + + /** + * 新增申请记录 + * @param labrecord + * @return + */ + LabRecordBean add(LabRecordBean labrecord); + + /** + * 查看所有申请记录 + * @return + */ + List findAll(); + + /** + * 根据状态查询申请记录 + * @param stauts + * @return + */ + List findByStatus( Integer stauts ); + + /** + * 根据ID查询记录 + * @param lr_id + * @return + */ + LabRecordBean findById(Integer lr_id); + + /** + * 修改申请记录 + * @param labrecord + * @return + */ + LabRecordBean update(LabRecordBean labrecord); + + /** + * 根据Id查询申请记录 + * @param lr_id + */ + void deleteById(Integer lr_id); + + + + + + + + + +} diff --git a/java/src/main/java/com/hzu/bookingsystem/service/LabService.java b/java/src/main/java/com/hzu/bookingsystem/service/LabService.java new file mode 100644 index 0000000..c119714 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/service/LabService.java @@ -0,0 +1,63 @@ +package com.hzu.bookingsystem.service; + + +import com.hzu.bookingsystem.bean.LabBean; + +import java.util.List; +/** + * author 莫家豪 + */ +public interface LabService { + + /** + * 创建实验室 + * + * @param lab + * @return + */ + LabBean add(LabBean lab); + + /** + * 通过lab_id删除实验室 + * + * @param labId + * @return + */ + void deleteByLabId(Integer labId); + + /** + * 修改实验室 + * + * @param lab + * @return + */ + LabBean update(LabBean lab); + + // 查找所有用户 + List findAll(); + + /** + * 通过lab_id查找实验室 + * + * @param labId + * @return + */ + LabBean findByLabId(Integer labId); + + /** + * 通过name查找实验室 + * + * @param name + * @return + */ + LabBean findByName(String name); + + /** + * 通过position查找实验室 + * + * @param position + * @return + */ + LabBean findByPosition(String position); + +} \ No newline at end of file diff --git a/java/src/main/java/com/hzu/bookingsystem/service/LabTimeService.java b/java/src/main/java/com/hzu/bookingsystem/service/LabTimeService.java new file mode 100644 index 0000000..47d4970 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/service/LabTimeService.java @@ -0,0 +1,71 @@ +package com.hzu.bookingsystem.service; + + +import com.hzu.bookingsystem.bean.LabTimeBean; + +import java.util.List; +/** + * author 莫家豪 + */ +public interface LabTimeService { + + /** + * 创建实验室可申请时间段 + * + * @param labTime + * @return + */ + LabTimeBean add(LabTimeBean labTime); + + /** + * 通过lt_id删除实验室 + * + * @param ltID + * @return + */ + void deleteByLtId(Integer ltID); + + /** + * 修改实验室 + * + * @param labTime + * @return + */ + LabTimeBean update(LabTimeBean labTime); + + // 查找所有用户 + List findAll(); + + /** + * 通过lt_id查找实验室可预约时间段 + * + * @param ltId + * @return + */ + LabTimeBean findByLtId(Integer ltId); + + /** + * 通过状态查找实验室可预约时间段 + * + * @param status + * @return + */ + LabTimeBean findByStatus(Integer status); + + /** + * 通过上课时间查找实验室可预约时间段 + * + * @param time + * @return + */ + LabTimeBean findByTime(String time); + + /** + * 通过学期、周、星期、上课时间查找实验室可预约时间段 + * + * @param year、weeks、day、time + * @return + */ + LabTimeBean findByYear(String year); + +} \ No newline at end of file diff --git a/java/src/main/java/com/hzu/bookingsystem/service/UserAuthService.java b/java/src/main/java/com/hzu/bookingsystem/service/UserAuthService.java new file mode 100644 index 0000000..4cf4cc4 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/service/UserAuthService.java @@ -0,0 +1,13 @@ +package com.hzu.bookingsystem.service; + +import com.hzu.bookingsystem.bean.UserAuthBean; + +public interface UserAuthService { + UserAuthBean add(Integer uId, Integer groupId); + + UserAuthBean update(Integer uId, Integer groupId); + + void delete(Integer uId, Integer groupId); + + UserAuthBean findByUId(Integer uId); +} diff --git a/java/src/main/java/com/hzu/bookingsystem/service/UserCourseService.java b/java/src/main/java/com/hzu/bookingsystem/service/UserCourseService.java new file mode 100644 index 0000000..61604cb --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/service/UserCourseService.java @@ -0,0 +1,55 @@ +package com.hzu.bookingsystem.service; + + +import com.hzu.bookingsystem.bean.UserCourseBean; + +import java.util.List; + +public interface UserCourseService { + + /** + *新增课程记录 + * @param usercourse + * @return + */ + UserCourseBean add(UserCourseBean usercourse); + + /** + * 查看所有课程列表 + * @return + */ + List findAll(); + + /** + * 根据教师id和学年,学期查询课程 + * @param u_id + * @param year + * @param semester + * @return + */ + List findAllByUidAndYearAndSemester(Integer u_id,String year,Integer semester) ; + + /** + * 根据课程I课程记录 + * @param uc_id + * @return + */ + UserCourseBean findById(Integer uc_id); + + /** + * 修改课程记录 + * @param usercourse + * @return + */ + UserCourseBean update(UserCourseBean usercourse); + + /** + * 通过i删除课程记录 + * @param uc_id + */ + void deleteByUcId(Integer uc_id); + + + + +} diff --git a/java/src/main/java/com/hzu/bookingsystem/service/UserService.java b/java/src/main/java/com/hzu/bookingsystem/service/UserService.java index 64c5508..9a72f61 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/UserService.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/UserService.java @@ -16,7 +16,7 @@ public interface UserService { * @param user * @return */ - UserBean add(UserBean user); + UserBean add(UserBean user,Integer groupId); // 查找所有用户 List findAll(); @@ -29,12 +29,15 @@ public interface UserService { */ UserBean findById(Integer uId); + UserBean findByUserame(String username); + /** * 修改用户 * * @param user * @return */ + UserBean update(UserBean user,Integer groupId); UserBean update(UserBean user); /** diff --git a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java new file mode 100644 index 0000000..717fbe1 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java @@ -0,0 +1,48 @@ +package com.hzu.bookingsystem.service.impl; + +import com.hzu.bookingsystem.bean.LabRecordBean; +import com.hzu.bookingsystem.repository.LabRecordRepository; +import com.hzu.bookingsystem.service.LabRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.transaction.Transactional; +import java.util.List; + +@Service +public class LabRecordServiceImpl implements LabRecordService{ + @Resource + private LabRecordRepository labrecordRepository; + + @Override + public LabRecordBean add(LabRecordBean labrcecord) { + return labrecordRepository.save(labrcecord); + } + + @Override + public List findAll() { + return labrecordRepository.findAll(); + } + @Override + public List findByStatus(Integer status) { + return labrecordRepository.findByStatus(status); + } + + @Override + public LabRecordBean findById(Integer lr_id) { + return labrecordRepository.findByLrId(lr_id); + } + + @Override + public LabRecordBean update(LabRecordBean labrcecord) { + return labrecordRepository.save(labrcecord); + } + + @Override + @Transactional + public void deleteById(Integer lr_id) { + labrecordRepository.deleteBylrId(lr_id); + } + +} diff --git a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabServiceImpl.java b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabServiceImpl.java new file mode 100644 index 0000000..c8fc084 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabServiceImpl.java @@ -0,0 +1,56 @@ +package com.hzu.bookingsystem.service.impl; + +import com.hzu.bookingsystem.bean.LabBean; +import com.hzu.bookingsystem.repository.LabRepository; +import com.hzu.bookingsystem.service.LabService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.transaction.Transactional; +import java.util.List; +/** + * author 莫家豪 + */ +@Service +public class LabServiceImpl implements LabService { + @Resource + private LabRepository labRepository; + + @Override + public LabBean add(LabBean lab) { + lab.setLabId(null); + return labRepository.save(lab); + } + + @Override + @Transactional + public void deleteByLabId(Integer labId){ + labRepository.deleteByLabId(labId); + } + + @Override + public LabBean update(LabBean lab){ + return labRepository.save(lab); + } + + @Override + public List findAll() { + return labRepository.findAll(); + } + + @Override + public LabBean findByLabId(Integer labId){ + return labRepository.findByLabId(labId); + } + + @Override + public LabBean findByName(String name) { + return labRepository.findByName(name); + } + + @Override + public LabBean findByPosition(String position){ + return labRepository.findByPosition(position); + } + +} diff --git a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabTimeServiceImpl.java b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabTimeServiceImpl.java new file mode 100644 index 0000000..755ffb3 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabTimeServiceImpl.java @@ -0,0 +1,61 @@ +package com.hzu.bookingsystem.service.impl; + +import com.hzu.bookingsystem.bean.LabTimeBean; +import com.hzu.bookingsystem.repository.LabTimeRepository; +import com.hzu.bookingsystem.service.LabTimeService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.transaction.Transactional; +import java.util.List; +/** + * author 莫家豪 + */ +@Service +public class LabTimeServiceImpl implements LabTimeService { + @Resource + private LabTimeRepository labTimeRepository; + + @Override + public LabTimeBean add(LabTimeBean labTime) { + labTime.setLtId(null); + return labTimeRepository.save(labTime); + } + + @Override + @Transactional + public void deleteByLtId(Integer ltId){ + labTimeRepository.deleteByLtId(ltId); + } + + @Override + public LabTimeBean update(LabTimeBean labTime){ + return labTimeRepository.save(labTime); + } + + @Override + public List findAll() { + return labTimeRepository.findAll(); + } + + @Override + public LabTimeBean findByLtId(Integer ltId){ + return labTimeRepository.findByLtId(ltId); + } + + @Override + public LabTimeBean findByStatus(Integer status) { + return labTimeRepository.findByStatus(status); + } + + @Override + public LabTimeBean findByTime(String time){ + return labTimeRepository.findByTime(time); + } + + @Override + public LabTimeBean findByYear(String year){ + return labTimeRepository.findByYear(year); + } + +} \ No newline at end of file diff --git a/java/src/main/java/com/hzu/bookingsystem/service/impl/UserAuthServiceImpl.java b/java/src/main/java/com/hzu/bookingsystem/service/impl/UserAuthServiceImpl.java new file mode 100644 index 0000000..1505a4f --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/service/impl/UserAuthServiceImpl.java @@ -0,0 +1,36 @@ +package com.hzu.bookingsystem.service.impl; + +import com.hzu.bookingsystem.bean.UserAuthBean; +import com.hzu.bookingsystem.repository.UserAuthRepository; +import com.hzu.bookingsystem.service.UserAuthService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class UserAuthServiceImpl implements UserAuthService { + @Autowired + private UserAuthRepository userAuthRepository; + + @Override + public UserAuthBean add(Integer uId, Integer groupId) { + UserAuthBean userAuth = new UserAuthBean(uId,groupId); + return userAuthRepository.save(userAuth); + } + + @Override + public UserAuthBean update(Integer uId, Integer groupId) { + UserAuthBean userAuth = new UserAuthBean(uId,groupId); + return userAuthRepository.save(userAuth); + } + + @Override + public void delete(Integer uId, Integer groupId) { + UserAuthBean userAuth = new UserAuthBean(uId,groupId); + userAuthRepository.delete(userAuth); + } + + @Override + public UserAuthBean findByUId(Integer uId) { + return userAuthRepository.findByUId(uId); + } +} diff --git a/java/src/main/java/com/hzu/bookingsystem/service/impl/UserCourseServiceImpl.java b/java/src/main/java/com/hzu/bookingsystem/service/impl/UserCourseServiceImpl.java new file mode 100644 index 0000000..5f4505b --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/service/impl/UserCourseServiceImpl.java @@ -0,0 +1,51 @@ +package com.hzu.bookingsystem.service.impl; + + +import com.hzu.bookingsystem.bean.UserCourseBean; +import com.hzu.bookingsystem.repository.UserCourseRepository; +import com.hzu.bookingsystem.service.UserCourseService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class UserCourseServiceImpl implements UserCourseService{ + + @Resource + private UserCourseRepository usercourseRepository; + + @Override + public UserCourseBean add(UserCourseBean usercourse) { + return usercourseRepository.save(usercourse); + } + + @Override + public List findAll() { + return usercourseRepository.findAll(); + } + + @Override + public List findAllByUidAndYearAndSemester(Integer u_id,String year,Integer semester) + { + return usercourseRepository.findByUIdAndYearAndSemester(u_id,year,semester); + } + + @Override + public UserCourseBean findById(Integer uc_id) { + return usercourseRepository.findByUcId(uc_id); + } + + @Override + public UserCourseBean update(UserCourseBean usercourse) { + return usercourseRepository.save(usercourse); + } + + @Override + @Transactional + public void deleteByUcId(Integer uc_id) { + usercourseRepository.deleteByUcId(uc_id); + } + +} diff --git a/java/src/main/java/com/hzu/bookingsystem/service/impl/UserServiceImpl.java b/java/src/main/java/com/hzu/bookingsystem/service/impl/UserServiceImpl.java index 05d3e9d..bc799c5 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/impl/UserServiceImpl.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/impl/UserServiceImpl.java @@ -4,11 +4,18 @@ import com.hzu.bookingsystem.converter.UserBean2UserDTO; import com.hzu.bookingsystem.dto.UserDTO; import com.hzu.bookingsystem.bean.UserBean; import com.hzu.bookingsystem.repository.UserRepository; +import com.hzu.bookingsystem.service.UserAuthService; import com.hzu.bookingsystem.service.UserService; import com.hzu.bookingsystem.utils.MD5Util; +import org.hibernate.SQLQuery; +import org.hibernate.transform.Transformers; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; import javax.transaction.Transactional; import java.util.List; /** @@ -16,16 +23,26 @@ import java.util.List; */ @Service public class UserServiceImpl implements UserService { - @Resource + + @Autowired private UserRepository userRepository; + @Autowired + private UserAuthService userAuthService; + + @PersistenceContext + private EntityManager entityManager; + @Override - public UserBean add(UserBean user) { + @Transactional + public UserBean add(UserBean user,Integer groupId) { // 1.保证ID为空 user.setUId(null); // 2.加密密码 user.setPassword(MD5Util.md5Encrypt32Upper(user.getPassword())); - return userRepository.save(user); + UserBean userBean = userRepository.save(user); + userAuthService.add(userBean.getUId(),groupId); + return userBean; } @Override @@ -38,6 +55,17 @@ public class UserServiceImpl implements UserService { return userRepository.findByUId(uId); } + @Override + public UserBean findByUserame(String username) { + return userRepository.findByUsername(username); + } + + @Override + public UserBean update(UserBean user,Integer groupId) { + userAuthService.update(user.getUId(),groupId); + return userRepository.save(user); + } + @Override public UserBean update(UserBean user) { return userRepository.save(user); @@ -59,7 +87,21 @@ public class UserServiceImpl implements UserService { @Override public List findAllUserInfo() { - List userBeanList = userRepository.findAll(); - return UserBean2UserDTO.convert(userBeanList); + String sql = "SELECT tb_user.u_id as uId," + + "tb_user.nickname," + + "tb_user.tel," + + "tb_user.email," + + "tb_user.username," + + "tb_user.office," + + "tb_auth_group_access.group_id as position " + + "FROM " + + "tb_auth_group_access," + + "tb_user " + + "WHERE " + + "tb_auth_group_access.u_id = tb_user.u_id"; + Query query = entityManager.createNativeQuery(sql); + query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(UserDTO.class)); + List userDTOList = query.getResultList(); + return userDTOList; } } diff --git a/java/src/test/java/com/hzu/bookingsystem/BookingsystemApplicationTests.java b/java/src/test/java/com/hzu/bookingsystem/BookingsystemApplicationTests.java index 48e3fdf..3d9e32d 100644 --- a/java/src/test/java/com/hzu/bookingsystem/BookingsystemApplicationTests.java +++ b/java/src/test/java/com/hzu/bookingsystem/BookingsystemApplicationTests.java @@ -1,13 +1,26 @@ package com.hzu.bookingsystem; +import com.hzu.bookingsystem.bean.LabRecordBean; +import com.hzu.bookingsystem.bean.LabTimeBean; import com.hzu.bookingsystem.bean.UserBean; +import com.hzu.bookingsystem.bean.UserCourseBean; import com.hzu.bookingsystem.dto.UserDTO; +import com.hzu.bookingsystem.repository.UserRepository; +import com.hzu.bookingsystem.service.LabRecordService; +import com.hzu.bookingsystem.service.LabTimeService; +import com.hzu.bookingsystem.service.UserCourseService; import com.hzu.bookingsystem.service.UserService; +import org.hibernate.SQLQuery; +import org.hibernate.transform.Transformers; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; +import java.util.Date; import java.util.List; @SpringBootTest @@ -18,20 +31,89 @@ class BookingsystemApplicationTests { } @Autowired - private UserService userService; + private LabTimeService labTimeService; @Test +// public void test(){ +// LabBean lab = new LabBean(); +// lab.setLabId(1); +// lab.setName("android实验室"); +// lab.setPosition("5-501"); +// lab.setCapacity(50); +// lab.setSoftware("android studio"); +// lab.setManagerId(321); +// System.out.println(labService.findAll()); +// labService.add(lab); +// labService.save(lab); +// labService.deleteById(1); +// +// } public void test(){ + LabTimeBean lab = new LabTimeBean(); + System.out.println(labTimeService.findAll()); + + } + + @Autowired + private UserService userService; + @Autowired + private UserRepository userRepository; + @PersistenceContext + private EntityManager entityManager; + @Test + public void userServiceTest(){ UserBean user = new UserBean(); user.setUsername("123456"); user.setNickname("莫家豪"); user.setEmail("???@qq.com"); user.setPassword("123456"); user.setOffice("18#???"); - userService.add(user); + String sql = "SELECT tb_user.u_id as uId," + + "tb_user.nickname," + + "tb_user.tel," + + "tb_user.email," + + "tb_user.username," + + "tb_user.office," + + "tb_auth_group_access.group_id as position " + + "FROM " + + "tb_auth_group_access," + + "tb_user " + + "WHERE " + + "tb_auth_group_access.u_id = tb_user.u_id"; + Query query = entityManager.createNativeQuery(sql); + query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(UserDTO.class)); + List userDTOList = query.getResultList(); + System.out.println(userDTOList); +// Query query = +// userService.add(user,1); // userService.save(user); // userService.deleteById(1); - List userDTOList = userService.findAllUserInfo(); - System.out.println(userDTOList); +// List userDTOList = userService.findAllUserInfo(); +// System.out.println(userDTOList); +// System.out.println(userRepository.findAllUserDTO()); + } + + + @Autowired + private LabRecordService labRecordService; + @Test + public void labRecordTest(){ + LabRecordBean labRecordBean = new LabRecordBean( + 1,1,2,0,"",new Date(),new Date(),new Date(),null + ); + + labRecordService.add(labRecordBean); + } + + + @Autowired + private UserCourseService userCourseService; + @Test + public void UserCourseTest(){ + UserCourseBean userCourseBean = new UserCourseBean( + null,2,"数据库课程设计","MySQL","2019",1,50,"17软件工程6班","",1 + ); + System.out.println(userCourseService.findAllByUidAndYearAndSemester(1,"2019",1)); +// userCourseService.add(userCourseBean); } }