aiyadc 5 years ago
commit d88dd2619a

31
.gitignore vendored

@ -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/

@ -0,0 +1,27 @@
<template>
<div>
<el-container>
<el-aside width="300px">
<personal-aside></personal-aside>
</el-aside>
<el-main>
<personal-message></personal-message>
</el-main>
</el-container>
</div>
</template>
<script>
import personalMessage from "~/components/personalMessage";
import personalAside from "~/components/personalAside";
export default {
components: {personalMessage, personalAside}
}
</script>
<style scoped>
.personal-message {
margin: 200px 20% 0 20%;
}
</style>

@ -0,0 +1,59 @@
<template>
<div>
<home
:names="homeParams"
:user="nickname"
@goPersonal="$router.push('/supManager/index/personal')"
@back="logout"
></home>
</div>
</template>
<script>
import home from "~/components/home";
import {get} from "~/utils";
import {showSuccess} from "~/utils/dialog";
export default {
components: {
home
},
data() {
return {
nickname: '未登录',
homeParams: [
{
name: '实验室管理', func: () => {
this.$router.push('/supManager/index/labManage')
}
},
{
name: '用户管理', func: () => {
this.$router.push('/supManager/index/userManage')
}
},
{
name: '个人中心', func: () => {
this.$router.push('/supManager/index/personal')
}
}
]
}
},
methods: {
async logout() {
await get('lb/user/logout')
await showSuccess('退出成功', this)
setTimeout(() => {
this.$router.push('/login')
}, 1000)
}
},
async mounted() {
this.nickname = await get('lb/user/getUserName')
}
}
</script>
<style scoped>
</style>

@ -0,0 +1,19 @@
<template>
<div>
<nav-bar></nav-bar>
<router-view></router-view>
</div>
</template>
<script>
import navBar from "~/components/supManager/navBar";
export default {
components:{navBar},
name: "empty"
}
</script>
<style scoped>
</style>

@ -0,0 +1,60 @@
<template>
<div>
<el-menu
:default-active="activeIndex"
class="el-menu-demo nav"
mode="horizontal"
@select="handleSelect"
background-color="#1989fa"
text-color="#ffffff"
router
active-text-color="#ffd04b">
<el-menu-item index="1" route="../">首页</el-menu-item>
<el-menu-item index="2" route="labManage"">实验室管理</el-menu-item>
<el-menu-item index="3" route="userManage">用户管理</el-menu-item>
<drop-down-user :user="nickname" @back="backLogin" @goPersonal="goPersonal"></drop-down-user>
</el-menu>
</div>
</template>
<script>
import dropDownUser from "~/components/dropDownUser";
import {get} from "~/utils";
import {showSuccess} from "~/utils/dialog";
export default {
data() {
return {
activeIndex: '',
nickname: ''
};
},
methods: {
handleSelect(key, keyPath) {
console.log(key, keyPath);
},
async backLogin() {
await get('lb/user/logout')
await showSuccess("退出成功", this)
setTimeout(() => {
this.$router.push('/login')
}, 1000)
},
goPersonal: function () {
this.$router.push('/supManager/index/personal')
}
},
components: {
dropDownUser
},
async mounted() {
this.nickname = await get('lb/user/getUserName')
}
}
</script>
<style scoped>
.nav {
width: 100%;
}
</style>

@ -0,0 +1,118 @@
<template>
<!-- 弹出层-->
<el-dialog :title="edit ? '编辑用户' : '新增用户'" :visible.sync="dialogVisible" width="40rem" @close="cancel"
style="text-align: left" :close-on-click-modal="false">
<el-form :model="userForm" ref="userForm">
<el-form-item prop="position" label="职位" label-width="80px"
:rules="[{ required: true, message: '请选择职位', trigger: 'blur' }]">
<el-select v-model="userForm.position" placeholder="请选择职位">
<el-option label="教师" :value="1"></el-option>
<el-option label="实验室管理员" :value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="username" label="工号" label-width="80px"
:rules="[{ required: true, message: '请输入工号', trigger: 'blur' }]">
<el-input v-model="userForm.username" autocomplete="off" :disabled="edit">
</el-input>
</el-form-item>
<el-form-item prop="password" label="密码" label-width="80px" v-if="!edit"
:rules="[{ required: true, message: '请输入密码', trigger: 'blur' }]"
>
<el-input v-model="userForm.password" type="userForm.password" autocomplete="off" :disabled="edit"></el-input>
</el-form-item>
<el-form-item prop="nickname" label="姓名" label-width="80px"
:rules="[{ required: true, message: '请输入姓名', trigger: 'blur' }]">
<el-input v-model="userForm.nickname" autocomplete="off"></el-input>
</el-form-item>
<el-form-item prop="tel" label="联系电话" label-width="80px"
:rules="[{ required: true, message: '请输入联系电话', trigger: 'blur' }]">
<el-input v-model="userForm.tel" autocomplete="off"></el-input>
</el-form-item>
<el-form-item prop="office" label="办公室" label-width="80px"
:rules="[{ required: true, message: '请输入办公室', trigger: 'blur' }]">
<el-input v-model="userForm.office" autocomplete="off"></el-input>
</el-form-item>
<el-form-item prop="email" label="邮箱" label-width="80px"
:rules="[{ required: true, message: '请输入邮箱地址', trigger: 'blur' },
{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }]">
<el-input v-model="userForm.email" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" @click="confirm"> </el-button>
</div>
</el-dialog>
</template>
<script>
import {get, post, stop} from "~/utils";
import {showDialog, showFail, showSuccess} from "~/utils/dialog";
export default {
props: {
dialogFormVisible: {required: true},
userForm: {required: true},
edit: {required: true}
},
data() {
return {
dialogVisible: false
}
},
methods: {
async confirm() {
//
this.$refs['userForm'].validate(async (valid) => {
if (valid) {
//
await showDialog("确定要" + (this.edit ? '编辑' : '新增') + '吗?', this)
//
if (this.edit) {
await post('lb/user/updateUser', {
nickname: this.userForm.nickname,
tel: this.userForm.tel,
email: this.userForm.email,
username: this.userForm.username,
office: this.userForm.office,
position: parseInt(this.userForm.position),
uId: this.userForm.uid
}).catch(async e => {
await showFail(e.msg, this)
await stop()
})
showSuccess('编辑完成', this)
} else {
//
await post('lb/user/addUser', {
nickname: this.userForm.nickname,
tel: this.userForm.tel,
email: this.userForm.email,
username: this.userForm.username,
office: this.userForm.office,
position: parseInt(this.userForm.position),
password: this.userForm.password
}).catch(async e => {
await showFail(e.msg, this)
await stop()
})
showSuccess('新增完成', this)
}
this.$emit('confirm')
}
});
},
cancel() {
this.$refs['userForm'].resetFields()
this.$emit('cancel')
}
},
watch: {
dialogFormVisible(val) {
this.dialogVisible = val
this.password = ''
}
}
}
</script>

@ -0,0 +1,141 @@
<template>
<div style="margin: 20px">
<el-row :gutter="20">
<el-col :span="8">
<el-input v-model="search" placeholder="输入关键字搜索" suffix-icon="el-icon-search"/>
</el-col>
<el-col :span="16" style="text-align: left">
<el-button type="success" style="width: 120px;text-align: left" icon="el-icon-circle-plus-outline"
@click="addUser">新增用户
</el-button>
<el-button type="danger" plain icon="el-icon-delete" style="width: 120px;text-align: left"
@click="deleteUserMul" v-if="items.length">多选删除
</el-button>
</el-col>
</el-row>
<el-table
ref="multipleTable"
:data="tableDataComputed"
@selection-change="handleSelectionChange"
border
style="width: 100%;margin-top: 20px">
<el-table-column type="selection" width="40" align="center"></el-table-column>
<el-table-column prop="username" label="工号" sortable></el-table-column>
<el-table-column prop="position" label="职位" sortable align="center">
<template slot-scope="scope">
<el-tag
:type="scope.row.position === 1 ? 'primary' : scope.row.position ===2 ? 'success': 'warning'"
disable-transitions>{{scope.row.position ===1 ? '教 师' :
scope.row.position ===2 ? '实验室管理员': '超级管理员'}}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="nickname" label="姓名" sortable></el-table-column>
<el-table-column prop="tel" label="联系电话"></el-table-column>
<el-table-column prop="office" label="办公室" sortable></el-table-column>
<el-table-column prop="email" label="邮箱"></el-table-column>
<el-table-column fixed="right" label="操作" width="300">
<template slot-scope="scope">
<el-button @click="editUser(scope.row)" type="primary" size="mini" plain icon="el-icon-edit" v-if="scope.row.position!==3"></el-button>
<el-button @click="deleteUser(scope.row)" type="danger" size="mini" plain icon="el-icon-delete" v-if="scope.row.position!==3"></el-button>
<el-button @click="handleClick(scope.row)" size="mini" plain v-if="scope.row.position === 1"></el-button>
</template>
</el-table-column>
</el-table>
<user-edit-form
:dialog-form-visible="dialogFormVisible"
:edit="edit"
:user-form="userForm"
@cancel="cancel"
@confirm="confirm"
></user-edit-form>
</div>
</template>
<script>
import {get, post} from "~/utils";
import {showDialog, showFail, showSuccess} from "~/utils/dialog";
import userEditForm from "~/components/supManager/userEditForm";
export default {
components: {userEditForm},
data() {
return {
search: '',
items: [],
tableData: [],
dialogFormVisible: false,
edit: false,
userForm: {}
}
}
,
methods: {
async load() {
this.tableData = await get('lb/user/getUserList')
},
handleClick(row) {
console.log(row);
},
handleSelectionChange(val) {
this.items = val;
},
addUser() {
this.edit = false
this.userForm = {
nickname: "",
tel: "",
email: "",
username: "",
office: "",
position: ''
}
this.dialogFormVisible = true
},
//
async deleteUser(item) {
await showDialog("确认要删除吗?", this)
await post('lb/user/deleteUser', {
uid: item.uid
}).then(() => {
showSuccess("删除成功", this)
this.load()
}).catch(e => {
showFail("删除失败 " + e.msg, this)
})
},
async deleteUserMul(){
await showDialog("确认要删除吗?", this)
showFail("尚未开发",this)
},
//
async editUser(item) {
this.edit = true
this.userForm = item
this.dialogFormVisible = true
},
cancel(){
this.dialogFormVisible = false
},
confirm(){
this.load()
this.cancel()
}
},
computed: {
tableDataComputed() {
return this.tableData.filter(data => !this.search
|| data.username.toLowerCase().includes(this.search.toLowerCase())
|| data.tel.toLowerCase().includes(this.search.toLowerCase())
|| data.nickname.toLowerCase().includes(this.search.toLowerCase())
|| data.office.toLowerCase().includes(this.search.toLowerCase())
|| data.email.toLowerCase().includes(this.search.toLowerCase())
)
}
},
async mounted() {
this.load()
}
}
</script>

@ -1,21 +1,13 @@
<template>
<div>
<home :names="{name1:'管理实验室',name2:'管理教师/管理员信息',name3:'新增教师/管理员信息'}" :user="user"></home>
<router-view></router-view>
</div>
</template>
<script>
import home from "~/components/home";
export default {
name: "index",
data(){
return{
user:"林大池"
}
},
components:{
home
}
name: "empty"
}
</script>

@ -3,10 +3,10 @@
<nav-bar ></nav-bar>
<time-select style="margin-top: 20px"></time-select>
<div style="margin-bottom: 10px">
<el-row>
<el-row :gutter="20">
<el-col :span="2"><el-button type="success" class="el-icon-circle-plus-outline" style="float: right" @click="dialogAdd=true"></el-button></el-col>
<el-col :span="8" :offset="1">
<el-input type="text" style="max-width: 400px;float: left" placeholder="请输入查询关键字" ><el-button slot="append" icon="el-icon-search">查询</el-button></el-input>
<el-col :span="8" >
<el-input type="text" v-model="search" style="max-width: 400px;float: left" placeholder="请输入查询关键字" ><el-button slot="append" icon="el-icon-search"></el-button></el-input>
</el-col>
</el-row>
@ -71,6 +71,7 @@
components:{navBar,timeSelect},
data(){
return{
search:'',
dialogAdd:false,
tableData:[{
uc_id:'',

@ -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
}
]

@ -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)
})
})
}

@ -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;
}

@ -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;
}

@ -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;

@ -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;
}

@ -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;
}

@ -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<String,Object> 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<String,Object> 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();
}
/**
* cookieUid
* @param request

@ -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<String, Object> 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;
}
}

@ -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;
}

@ -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();

@ -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,String> {
LabRecordBean findByLrId(Integer lt_id);
LabRecordBean save(LabRecordBean labrecord) ;
List<LabRecordBean> findAll() ;
List<LabRecordBean> findByStatus(Integer status ) ;
void deleteBylrId(Integer lt_id);
}

@ -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<LabBean,String> {
/**
* lab_id
*
* @param labId
* @return
*/
void deleteByLabId(Integer labId);
// 查找所有用户
List<LabBean> 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);
}

@ -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<LabTimeBean,String> {
/**
* lt_id
*
* @param ltId
* @return
*/
void deleteByLtId(Integer ltId);
// 查找所有用户
List<LabTimeBean> 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 yearweeksdaytime
* @return
*/
LabTimeBean findByYear(String year);
}

@ -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,String> {
UserAuthBean findByUId(Integer uId);
}

@ -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,String> {
UserCourseBean findByUcId(Integer uc_id);
UserCourseBean save(UserCourseBean uc_id) ;
List<UserCourseBean> findAll() ;
List<UserCourseBean> findByUIdAndYearAndSemester(Integer u_id,String year,Integer semester) ;
void deleteByUcId(Integer uc_id);
}

@ -12,4 +12,6 @@ public interface UserRepository extends JpaRepository<UserBean,String> {
void deleteByUId(Integer uId);
UserBean findByUsernameAndPassword(String username, String password);
UserBean findByUsername(String username);
}

@ -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<LabRecordBean> findAll();
/**
*
* @param stauts
* @return
*/
List<LabRecordBean> 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);
}

@ -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<LabBean> 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);
}

@ -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<LabTimeBean> 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 yearweeksdaytime
* @return
*/
LabTimeBean findByYear(String year);
}

@ -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);
}

@ -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<UserCourseBean> findAll();
/**
* id
* @param u_id
* @param year
* @param semester
* @return
*/
List<UserCourseBean> 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);
}

@ -16,7 +16,7 @@ public interface UserService {
* @param user
* @return
*/
UserBean add(UserBean user);
UserBean add(UserBean user,Integer groupId);
// 查找所有用户
List<UserBean> 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);
/**

@ -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<LabRecordBean> findAll() {
return labrecordRepository.findAll();
}
@Override
public List<LabRecordBean> 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);
}
}

@ -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<LabBean> 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);
}
}

@ -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<LabTimeBean> 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);
}
}

@ -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);
}
}

@ -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<UserCourseBean> findAll() {
return usercourseRepository.findAll();
}
@Override
public List<UserCourseBean> 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);
}
}

@ -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<UserDTO> findAllUserInfo() {
List<UserBean> 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<UserDTO> userDTOList = query.getResultList();
return userDTOList;
}
}

@ -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<UserDTO> userDTOList = query.getResultList();
System.out.println(userDTOList);
// Query query =
// userService.add(user,1);
// userService.save(user);
// userService.deleteById(1);
List<UserDTO> userDTOList = userService.findAllUserInfo();
System.out.println(userDTOList);
// List<UserDTO> 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);
}
}

Loading…
Cancel
Save