17727267930 5 years ago
commit 14bdb38155

@ -6,19 +6,20 @@
<div class="personal-message"> <div class="personal-message">
<!-- 未编辑状态--> <!-- 未编辑状态-->
<el-form :model="data" label-width="100px" class="demo-ruleForm"> <el-form :model="data" label-width="100px" class="demo-ruleForm">
<el-form-item label="工号" prop="name"> <el-form-item label="工号" prop="username">
<el-input v-model="data.username" disabled></el-input> <el-input v-model="data.username" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item label="姓名" prop="name"> <el-form-item label="姓名" prop="nickname" :rules="[{ required: true, message: '请输入姓名', trigger: 'blur' }]">
<el-input v-model="data.nickname" :disabled="!edit"></el-input> <el-input v-model="data.nickname" :disabled="!edit"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系电话" prop="name"> <el-form-item label="联系电话" prop="tel" :rules="[{ required: true, message: '请输入联系电话', trigger: 'blur' }]">
<el-input v-model="data.tel" :disabled="!edit"></el-input> <el-input v-model="data.tel" :disabled="!edit"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="办公室" prop="name"> <el-form-item label="办公室" prop="office" :rules="[{ required: true, message: '请输入办公室', trigger: 'blur' }]">
<el-input v-model="data.office" :disabled="!edit"></el-input> <el-input v-model="data.office" :disabled="!edit"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="邮箱" prop="name"> <el-form-item label="邮箱" prop="email" :rules="[{ required: true, message: '', trigger: 'blur' },
{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }]">
<el-input v-model="data.email" :disabled="!edit"></el-input> <el-input v-model="data.email" :disabled="!edit"></el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="edit"> <el-form-item v-if="edit">

@ -1,41 +1,76 @@
<template> <template>
<el-dialog <el-dialog
title="提示"
:visible.sync="addLabDialog" :visible.sync="addLabDialog"
width="30%"> width="48%">
<div style="width: 100%;height: 120% ">
<el-form :model="form"> <el-form :model="form">
<el-row>
<el-form-item label="位置"> <el-col style="width:45%">
<el-input v-model="form.position" placeholder="位置"></el-input> <el-form-item label="位置" style="">
<el-input v-model="form.position" placeholder="位置" class="position" style="width:70%;border-style: outset "></el-input>
</el-form-item> </el-form-item>
<el-form-item label="地址"> </el-col>
<el-input v-model="form.address" placeholder="地址"></el-input> <el-col style="width:45% ;">
</el-form-item> <el-form-item label=""> <el-form-item label="地址" style="">
<el-input v-model="form.status" placeholder="地址id"></el-input> <el-input v-model="form.status" placeholder="地址id" style="width:60% ;left:10%;border-style: outset" ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="实验室id"> </el-col>
<el-input v-model="form.labId" placeholder="请输入id"></el-input> </el-row>
<el-row>
<el-col style="width:45%">
<el-form-item label="实验室id" style="">
<el-input v-model="form.labId" placeholder="请输入id" style="width:70%;left: -5%;border-style: outset"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="实验室名称"> </el-col>
<el-input v-model="form.name" placeholder="实验室名称"></el-input> <el-col style="width:45%">
<el-form-item label="实验室名称" style="">
<el-select v-model="form.name" style="border-style: outset;width: 60%;left: 3%" >
<el-option value="509"></el-option>
<el-option value="2"></el-option>
<el-option value="3"></el-option>
<el-option value="4"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="状态"> </el-col>
<el-input v-model="form.status" placeholder="状态"></el-input> </el-row>
<el-row>
<el-col style="width:45%">
<el-form-item label="状态"style="">
<el-select v-model="form.status" style="border-style: outset;" >
<el-option label="可预约" value="0"></el-option>
<el-option label="不可预约" value="1"></el-option>
<el-option label="故障" value="2"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="可容量认人数"> </el-col>
<el-input v-model="form.compacity" placeholder="输入数量"></el-input> <el-col style="width:45%">
<el-form-item label="可容量认人数"style="">
<el-input v-model="form.compacity" placeholder="输入数量" style="width:60%;border-style: outset"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="管理员"> </el-col>
<el-input v-model="form.manager" placeholder="管理员"></el-input> </el-row>
<el-row>
<el-col style="width:45%">
<el-form-item label="管理员"style="">
<el-input v-model="form.manager" placeholder="管理员" style="width:70%;left: -1%;;border-style: outset"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="管理员id"> </el-col>
<el-input v-model="form.managerId" placeholder="管理员id"></el-input> <el-col style="width:45%">
<el-form-item label="管理员id"style="">
<el-input v-model="form.managerId" placeholder="管理员id" style="width:60%;left:6%;border-style: outset"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="可申请时间段"style="">
<el-input v-model="form.managerId" placeholder="点击编辑" style="width:80%"></el-input>
</el-form-item> </el-form-item>
<el-button type="success" style="width: 120px;text-align: left" icon="el-icon-circle-plus-outline" <el-button type="success" style="width: 120px;text-align: left" icon="el-icon-circle-plus-outline"
@click="showAddLab">新增 @click="showAddLab">新增
</el-button> </el-button>
</el-form> </el-form>
</div>
</el-dialog> </el-dialog>
</template> </template>
@ -49,8 +84,8 @@
position:'', position:'',
address:'', address:'',
labId:'', labId:'',
name:'', name:'509',
status:'', status:'0',
compacity:'', compacity:'',
manager:'', manager:'',
managerId:'' managerId:''

@ -0,0 +1,15 @@
<template>
<div>
这是审核页面
</div>
</template>
<script>
export default {
name:'check'
}
</script>
<style>
</style>

@ -1,59 +1,156 @@
<template> <template>
<div> <div style="width: 100%" >
<el-form :model="form" :inline="true"> <el-form :model="form" :inline="true">
<el-form-item label="类型"> <el-form-item label="类型" style="width: 20% ">
<el-input v-model="form.type" placeholder="安卓实验室" ></el-input>
<el-select v-model="form.type" style="border-style: outset;" >
<el-option label="安卓实验室" value="0"></el-option>
<el-option label="window实验室" value="1"></el-option>
<el-option label="ios实验室" value="2"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="位置"> <el-form-item label="位置" style="width: 20% ;">
<el-input v-model="form.position" placeholder="位置"></el-input> <el-select v-model="form.position" style="border-style: outset;" >
<el-option label="旭日楼" value="0"></el-option>
<el-option label="电子楼" value="1"></el-option>
<el-option label="实训楼" value="2"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="状态"> <el-form-item label="状态" style="width: 20%">
<el-input v-model="form.status" placeholder="状态"></el-input> <el-select v-model="form.status" style="border-style: outset;" >
<el-option label="可预约" value="0"></el-option>
<el-option label="不可预约" value="1"></el-option>
<el-option label="故障" value="2"></el-option>
</el-select>
</el-form-item > </el-form-item >
<el-input v-model="search" placeholder="输入关键字搜索" suffix-icon="el-icon-search"/> <el-input v-model="search" placeholder="输入关键字搜索" suffix-icon="el-icon-search" style="width: 20%;border-style: outset;"/>
<el-button type="success" style="width: 120px;text-align: left" icon="el-icon-circle-plus-outline" <el-button type="success" style="width: 6%;text-align: left" icon="el-icon-circle-plus-outline"
@click="showAddLab" >新增 @click="showAddLab" >新增
</el-button> </el-button>
<el-button type="success" style="width: 8%;text-align: left" icon="el-icon-circle-plus-outline"
@click="showAddLab" >批量操作
</el-button>
</el-form> </el-form>
<el-form :model="time" :inline="true" style="width: 100%">
<span style="width: 10% ;:-20px">可预约时间段:
</span>
<el-form-item label="学年" style="width: 20% ;">
<el-select v-model="time.year" style="border-style: outset;" >
<el-option label="2017-2018" value="0"></el-option>
<el-option label="2018-2019" value="1"></el-option>
<el-option label="2019-2020" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" style="width: 20%">
<el-select v-model="time.semester" style="border-style: outset;" >
<el-option label="第一学期" value="0"></el-option>
<el-option label="第二学期" value="1"></el-option>
</el-select>
</el-form-item >
<el-form-item label="周次" style="width: 5%">
</el-form-item >
<el-select v-model="time.day1" style="border-style: outset;;width:5%" >
<el-option label="1" value="0"></el-option>
<el-option label="2" value="1"></el-option>
<el-option label="3" value="0"></el-option>
<el-option label="4" value="1"></el-option>
<el-option label="5" value="0"></el-option>
<el-option label="6" value="1"></el-option>
<el-option label="7" value="0"></el-option>
</el-select>
<span></span>
<el-select v-model="time.day2" style="border-style: outset;;width: 5%" >
<el-option label="1" value="0"></el-option>
<el-option label="2" value="1"></el-option>
<el-option label="3" value="0"></el-option>
<el-option label="4" value="1"></el-option>
<el-option label="5" value="0"></el-option>
<el-option label="6" value="1"></el-option>
<el-option label="7" value="0"></el-option>
</el-select>
<el-form-item label="星期几" style="width: 5%">
</el-form-item >
<el-select v-model="time.day1" style="border-style: outset;;width: 10%" >
<el-option label="星期一" value="0"></el-option>
<el-option label="星期二" value="1"></el-option>
<el-option label="星期三" value="0"></el-option>
<el-option label="星期四" value="1"></el-option>
<el-option label="星期五" value="0"></el-option>
<el-option label="星期六" value="1"></el-option>
<el-option label="星期七" value="0"></el-option>
</el-select>
<el-button type="success" style="width: 6%;text-align: left" icon="el-icon-circle-plus-outline"
@click="showAddLab" >检索
</el-button>
</el-form>
<el-table <el-table
:data="tableData" :data="tableData"
border border
style="width: 100%"> >
<el-table-column <el-table-column
fixed
prop="name" prop="name"
label="实验室名称" label="实验室名称"
width="150">
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="address"
label="地点" label="地点"
width="120"> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="status" prop="status"
label="状态" label="状态"
width="120"> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="week" prop="week"
label="可申请周次" label="可申请周次"
width="120"> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="manage" prop="manage"
label="管理员" label="管理员"
width="300"> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
fixed="right"
label="操作" label="操作"
width="100">
width="300px"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="" type="text" size="small">查看申请详情</el-button> <el-button @click="" style="border: lightpink solid 1px " size="small">查看申请详情</el-button>
<el-button @click="" type="text" size="small">详细信息</el-button> <el-button @click="" size="small">详细信息</el-button>
<el-button @click="" type="text" size="small">查看</el-button> <el-button @click="" size="small">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -62,6 +159,7 @@
</template> </template>
<script> <script>
import addLab from "~/components/supManager/addLab" ; import addLab from "~/components/supManager/addLab" ;
import {get, post} from "~/utils"; import {get, post} from "~/utils";
import {showDialog, showFail, showSuccess} from "~/utils/dialog"; import {showDialog, showFail, showSuccess} from "~/utils/dialog";
@ -71,12 +169,21 @@
return{ return{
edit:"", edit:"",
form:{ form:{
type:'', type:'0',
position:'', position:'0',
status:'', status:'0',
}, },
time:{
year:'0',
week:'0',
day1:"0",
day2:"16",
semester:'0'
},
search:'', search:'',
tableData:[ tableData:[
{ name:"aaaa" , address:"509"}
], ],
} }
}, },
@ -117,7 +224,7 @@
}, },
mounted() { mounted() {
// this.tableData=get('/lb/getall') // this.tableData=get('/url')
} }
} }
</script> </script>

@ -1,6 +1,9 @@
package com.hzu.bookingsystem.bean; package com.hzu.bookingsystem.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*; import javax.persistence.*;
import java.util.Date; import java.util.Date;
@ -9,6 +12,9 @@ import java.util.Date;
*/ */
@Data @Data
@Entity @Entity
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Table(name = "tb_lab_time") @Table(name = "tb_lab_time")
public class LabTimeBean { public class LabTimeBean {
@Id @Id
@ -25,19 +31,19 @@ public class LabTimeBean {
private String year; private String year;
// 学期 // 学期
private String semester; private Integer semester;
// 几周 // 几周
private String week; private Integer week;
// 周几 // 周几
private String day; private Integer day;
// 第几节课 // 第几节课
private String time; private Integer time;
// 状态 // 状态
private String status; private Integer status;
//备注 //备注
private String remind; private String remind;
@ -78,43 +84,43 @@ public class LabTimeBean {
this.year = year; this.year = year;
} }
public String getSemester() { public Integer getSemester() {
return semester; return semester;
} }
public void setSemester(String semester) { public void setSemester(Integer semester) {
this.semester = semester; this.semester = semester;
} }
public String getWeek() { public Integer getWeek() {
return week; return week;
} }
public void setWeek(String week) { public void setWeek(Integer week) {
this.week = week; this.week = week;
} }
public String getDay() { public Integer getDay() {
return day; return day;
} }
public void setDay(String day) { public void setDay(Integer day) {
this.day = day; this.day = day;
} }
public String getTime() { public Integer getTime() {
return time; return time;
} }
public void setTime(String time) { public void setTime(Integer time) {
this.time = time; this.time = time;
} }
public String getStatus() { public Integer getStatus() {
return status; return status;
} }
public void setStatus(String status) { public void setStatus(Integer status) {
this.status = status; this.status = status;
} }

@ -10,6 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -20,6 +22,9 @@ public class LabTimeController {
@Autowired @Autowired
private LabTimeService labTimeService; private LabTimeService labTimeService;
@Autowired
private UserController userController;
//创建实验室可预约时间段 //创建实验室可预约时间段
@PostMapping(value = "/addLabTime", consumes = "application/json") @PostMapping(value = "/addLabTime", consumes = "application/json")
public ResultVO addLabTime(@RequestBody Map<String, Object> map) { public ResultVO addLabTime(@RequestBody Map<String, Object> map) {
@ -27,8 +32,7 @@ public class LabTimeController {
LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class); LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
System.out.println(labTime1); System.out.println(labTime1);
//查重 //查重
if(labTimeService.findByTime(labTime1.getTime()) != null) if (labTimeService.findByTime(labTime1.getTime()) != null) {
{
return ResultVOUtil.error(-1, "该时间段已存在"); return ResultVOUtil.error(-1, "该时间段已存在");
} }
labTimeService.add(labTime1); labTimeService.add(labTime1);
@ -36,7 +40,7 @@ public class LabTimeController {
} }
//通过ltId删除实验室可预约时间段 //通过ltId删除实验室可预约时间段
@PostMapping(value = "/deleteLabTime" , consumes = "application/json") @PostMapping(value = "/deleteLabTime")
public ResultVO deleteLabTime(@RequestBody LabTimeBean labTime) { public ResultVO deleteLabTime(@RequestBody LabTimeBean labTime) {
//查找实验室是否存在 //查找实验室是否存在
LabTimeBean labTime1 = labTimeService.findByLtId(labTime.getLtId()); LabTimeBean labTime1 = labTimeService.findByLtId(labTime.getLtId());
@ -49,8 +53,8 @@ public class LabTimeController {
} }
//修改实验室可预约时间段 //修改实验室可预约时间段
@PostMapping(value = "/updateLabTime" , consumes = "application/json") @PostMapping(value = "/updateLabTimeOld", consumes = "application/json")
public ResultVO updateLabTime(@RequestBody Map<String,Object> map , HttpServletRequest request){ public ResultVO updateLabTimeOld(@RequestBody Map<String, Object> map, HttpServletRequest request) {
//转换对象 //转换对象
LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class); LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
if (labTime1.getLtId() == null) { if (labTime1.getLtId() == null) {
@ -61,19 +65,97 @@ public class LabTimeController {
return ResultVOUtil.success(); return ResultVOUtil.success();
} }
//查找实验室 //通过ltId查找实验室预约时间段
@GetMapping(value = "/findByLabIdTime" , consumes = "application/json") @GetMapping(value = "/findLabTimeById")
public ResultVO<Map<String,Object>> findByLabTimeId(@RequestParam("LabTimeId") Integer labTimeId){ public ResultVO<Map<String, Object>> findLabTimeById(@RequestParam("ltId") Integer lt_id) {
LabTimeBean labTime1 = labTimeService.findByLtId(labTimeId); LabTimeBean labTime1 = labTimeService.findByLtId(lt_id);
System.out.println(labTime1); System.out.println(labTime1);
return ResultVOUtil.success(labTime1); return ResultVOUtil.success(labTime1);
} }
//查找所有实验室列表 //查找实验室预约周次(包含已预约)
@GetMapping(value = "/getLabListTime") // author 吴志岳
public ResultVO getLabTimeList(){ @GetMapping(value = "/getWeeks")
List<LabTimeDTO> labTimeList = labTimeService.findAllLabInfo(); public ResultVO findLabTimeByLabIdAndYearAndSemester(@RequestParam("labId") Integer lab_id,
return ResultVOUtil.success(labTimeList); @RequestParam("year") String year,
@RequestParam("semester") Integer semester,
@RequestParam("day") Integer day,
@RequestParam("time") Integer time) {
List<Integer> weeks = labTimeService.findWeeks(lab_id, year, semester, day, time);
return ResultVOUtil.success(weeks);
}
//查找实验室可预约周次(不包含已预约)
// author 吴志岳
@GetMapping(value = "/getWeeksAbleBook")
public ResultVO findLabTimeByLabIdAndYearAndSemesterAbleBook(@RequestParam("labId") Integer lab_id,
@RequestParam("year") String year,
@RequestParam("semester") Integer semester,
@RequestParam("day") Integer day,
@RequestParam("time") Integer time) {
List<Integer> weeks = labTimeService.findWeeksAble(lab_id, year, semester, day, time);
return ResultVOUtil.success(weeks);
}
//修改实验室可预约时间段
@PostMapping(value = "/updateLabTime", consumes = "application/json")
public ResultVO updateLabTime(@RequestBody Map<String, Object> map, HttpServletRequest request) {
//1. 转换对象,初始化对象,定义时间段
LabTimeBean labTime = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
labTime.setCreatorId(userController.getUIdByCookie(request));
labTime.setCreateTime(new Date());
labTime.setStatus(0);
// 用户发起的修改请求
List<Integer> weeks = (List<Integer>)map.get("weeks");
// 实验室预约时间段
List<Integer> weeksAll = labTimeService.findWeeks(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime());
// 实验室可预约时间段
List<Integer> weeksAble = labTimeService.findWeeksAble(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime());
// 实验室不可变换或不可选取的时间段
List<Integer> weeksDisable = new ArrayList<>(weeksAll);
weeksDisable.removeAll(weeksAble);
// 如果请求weeks中不包含不可选取的时间段报错
if (!weeks.containsAll(weeksDisable)){
return ResultVOUtil.error(-1,"已被预约的时间段无法去除");
}
// 2. 数据处理
// 需要insert的weeks
List<Integer> weekInsert = new ArrayList<>(weeks);
weekInsert.removeAll(weeksAll);
// 需要delete的weeks
List<Integer> weekDelete = new ArrayList<>(weeksAll);
weekDelete.removeAll(weeks);
// 3.批量删除
List<LabTimeBean> labTimeBeans = labTimeService.findTimes(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime());
labTimeBeans.removeIf(labTimeBean -> !weekDelete.contains(labTimeBean.getWeek()));
for (LabTimeBean labTimeBean : labTimeBeans){
labTimeService.deleteByLtId(labTimeBean.getLtId());
}
// 4.批量插入
for (int i : weekInsert){
LabTimeBean temp = LabTimeBean.builder().labId(labTime.getLabId())
.year(labTime.getYear())
.semester(labTime.getSemester())
.week(i)
.day(labTime.getDay())
.time(labTime.getTime())
.createTime(labTime.getCreateTime())
.creatorId(labTime.getCreatorId())
.status(labTime.getStatus())
.build();
labTimeService.add(temp);
}
System.out.println("用户请求"+weeks);
System.out.println("原来有的"+weeksAll);
System.out.println("要插入的"+weekInsert);
System.out.println("要删除的"+weekDelete);
return ResultVOUtil.success(labTimeService.findWeeks(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime()));
} }
} }

@ -6,9 +6,15 @@ import java.util.Date;
@Data @Data
public class LabDTO { public class LabDTO {
private Integer labId; private Integer lab_id;
// 管理员uID // 管理员uID
private Integer managerId; private Integer manager_id;
// 管理员姓名
private String nickname;
// 管理员联系电话
private String tel;
// 实验室名称 // 实验室名称
private String name; private String name;
@ -21,8 +27,4 @@ public class LabDTO {
// 实验室含有的软件(逗号隔开) // 实验室含有的软件(逗号隔开)
private String software; private String software;
private Date createTime;
private Date updateTime;
} }

@ -18,19 +18,19 @@ public class LabTimeDTO {
private String year; private String year;
// 学期 // 学期
private String semester; private Integer semester;
// 几周 // 几周
private String week; private Integer week;
// 周几 // 周几
private String day; private Integer day;
// 第几节课 // 第几节课
private String time; private Integer time;
// 状态 // 状态
private String status; private Integer status;
//备注 //备注
private String remind; private String remind;

@ -3,6 +3,7 @@ package com.hzu.bookingsystem.repository;
import com.hzu.bookingsystem.bean.LabTimeBean; import com.hzu.bookingsystem.bean.LabTimeBean;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List; import java.util.List;
@ -44,14 +45,44 @@ public interface LabTimeRepository extends JpaRepository<LabTimeBean,String> {
* @param time * @param time
* @return * @return
*/ */
LabTimeBean findByTime(String time); LabTimeBean findByTime(Integer time);
/**
*
*
* @param lab_idyearsemester
* @return
*/
@Query(value = "SELECT " +
" tb_lab_time.* " +
"FROM " +
"tb_lab_time LEFT JOIN tb_lab_record ON tb_lab_time.lt_id=tb_lab_record.lt_id " +
"WHERE " +
" tb_lab_time.lab_id = ?1 AND " +
" tb_lab_time.`year` = ?2 AND " +
" tb_lab_time.semester = ?3 AND " +
" tb_lab_time.`day` = ?4 AND " +
" tb_lab_time.time = ?5 AND " +
"tb_lab_time.lt_id not in (select lt_id from tb_lab_record where status = 1)", nativeQuery = true)
List<LabTimeBean> findByLabIdAndYearAndSemesterAndDayAndTime(Integer lab_id,String year,Integer semester, Integer day,Integer time) ;
/** /**
* *
* *
* @param yearweeksdaytime * @param lab_idyearsemester
* @return * @return
*/ */
LabTimeBean findByYear(String year); @Query(value = "SELECT " +
" tb_lab_time.* " +
"FROM " +
"tb_lab_time LEFT JOIN tb_lab_record ON tb_lab_time.lt_id=tb_lab_record.lt_id " +
"WHERE " +
" tb_lab_time.lab_id = ?1 AND " +
" tb_lab_time.`year` = ?2 AND " +
" tb_lab_time.semester = ?3 AND " +
" tb_lab_time.`day` = ?4 AND " +
" tb_lab_time.time = ?5 AND " +
" tb_lab_time.lt_id not in (select lt_id from tb_lab_record where status is not null)" , nativeQuery = true)
List<LabTimeBean> findWeeksAbleBook(Integer lab_id, String year, Integer semester, Integer day, Integer time) ;
} }

@ -67,4 +67,12 @@ public interface LabService {
*/ */
List<LabDTO> findAllLabInfo(); List<LabDTO> findAllLabInfo();
/**
* author
* IDDTO
*/
LabDTO findDTOById(Integer lab_id);
} }

@ -59,20 +59,32 @@ public interface LabTimeService {
* @param time * @param time
* @return * @return
*/ */
LabTimeBean findByTime(String time); LabTimeBean findByTime(Integer time);
/** /**
* *
*
* @param yearweeksdaytime
* @return * @return
*/ */
LabTimeBean findByYear(String year); List<LabTimeDTO> findAllLabInfo();
/** /**
* *
* @return *author
* @param lab_idyearsemester
* @return List<Integer>
*/ */
List<LabTimeDTO> findAllLabInfo(); List<Integer> findWeeks(Integer lab_id,String year,Integer semester, Integer day,Integer time) ;
/**
*
*author
* @param lab_idyearsemester
* @return List<Integer>
*/
List<Integer> findWeeksAble(Integer lab_id,String year,Integer semester, Integer day,Integer time) ;
/**
*
*/
List<LabTimeBean> findTimes(Integer lab_id,String year,Integer semester, Integer day,Integer time);
} }

@ -64,18 +64,48 @@ public class LabServiceImpl implements LabService {
@Override @Override
public List<LabDTO> findAllLabInfo() { public List<LabDTO> findAllLabInfo() {
String sql = "SELECT tb_lab.lab_id as LabId," + String sql = "SELECT " +
"tb_lab.manager_id as managerId," + " tb_lab.lab_id, " +
" tb_lab.name, " + " tb_lab.name, " +
" tb_lab.position, " + " tb_lab.position, " +
" tb_lab.capacity, " + " tb_lab.capacity, " +
"tb_lab.software " + " tb_lab.software, " +
" tb_lab.manager_id, " +
" tb_user.nickname, " +
" tb_user.tel " +
"FROM " + "FROM " +
"tb_lab "; " tb_lab, " +
" tb_user " +
"WHERE " +
" tb_lab.manager_id = tb_user.u_id";
Query query = entityManager.createNativeQuery(sql); Query query = entityManager.createNativeQuery(sql);
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(LabDTO.class)); query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(LabDTO.class));
List<LabDTO> LabDTOList = query.getResultList(); List<LabDTO> labDTOList = query.getResultList();
return LabDTOList; return labDTOList;
}
@Override
public LabDTO findDTOById(Integer lab_id) {
String sql = "SELECT " +
" tb_lab.lab_id, " +
" tb_lab.name, " +
" tb_lab.position, " +
" tb_lab.capacity, " +
" tb_lab.software, " +
" tb_lab.manager_id, " +
" tb_user.nickname, " +
" tb_user.tel " +
"FROM " +
" tb_lab, " +
" tb_user " +
"WHERE " +
" tb_lab.manager_id = tb_user.u_id AND tb_lab.lab_id = "+ lab_id;
Query query = entityManager.createNativeQuery(sql);
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(LabDTO.class));
List<LabDTO> labDTOList = query.getResultList();
LabDTO labDTO = labDTOList.get(0);
return labDTO;
} }
} }

@ -7,13 +7,15 @@ import com.hzu.bookingsystem.service.LabTimeService;
import org.hibernate.SQLQuery; import org.hibernate.SQLQuery;
import org.hibernate.transform.Transformers; import org.hibernate.transform.Transformers;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContext;
import javax.persistence.Query; import javax.persistence.Query;
import javax.transaction.Transactional; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* author * author
*/ */
@ -58,14 +60,10 @@ public class LabTimeServiceImpl implements LabTimeService {
} }
@Override @Override
public LabTimeBean findByTime(String time){ public LabTimeBean findByTime(Integer time) {
return labTimeRepository.findByTime(time); return labTimeRepository.findByTime(time);
} }
@Override
public LabTimeBean findByYear(String year){
return labTimeRepository.findByYear(year);
}
@Override @Override
public List<LabTimeDTO> findAllLabInfo() { public List<LabTimeDTO> findAllLabInfo() {
@ -85,4 +83,45 @@ public class LabTimeServiceImpl implements LabTimeService {
return LabTimeDTOList; return LabTimeDTOList;
} }
/**
* author
*
* @param lab_idyearsemester
* @param year
* @param semester
* @return
*/
@Override
public List<Integer> findWeeks(Integer lab_id, String year, Integer semester, Integer day, Integer time) {
List<LabTimeBean> list = labTimeRepository.findByLabIdAndYearAndSemesterAndDayAndTime(lab_id, year, semester, day, time);
List<Integer> weeks = new ArrayList<>();
for (LabTimeBean labtime : list) {
weeks.add(labtime.getWeek());
}
return weeks;
}
/**
* author
*
* @param lab_idyearsemester
* @param year
* @param semester
* @return
*/
@Override
public List<Integer> findWeeksAble(Integer lab_id, String year, Integer semester, Integer day, Integer time) {
List<LabTimeBean> list = labTimeRepository.findWeeksAbleBook(lab_id, year, semester, day, time);
List<Integer> weeks = new ArrayList<>();
for (LabTimeBean labtime : list) {
weeks.add(labtime.getWeek());
}
return weeks;
}
@Override
public List<LabTimeBean> findTimes(Integer lab_id, String year, Integer semester, Integer day, Integer time) {
return labTimeRepository.findByLabIdAndYearAndSemesterAndDayAndTime(lab_id, year, semester, day, time);
}
} }

@ -32,6 +32,7 @@ class BookingsystemApplicationTests {
@Autowired @Autowired
private LabTimeService labTimeService; private LabTimeService labTimeService;
@Test @Test
// public void test(){ // public void test(){
@ -53,7 +54,8 @@ class BookingsystemApplicationTests {
System.out.println(labTimeService.findAll()); System.out.println(labTimeService.findAll());
} }
}
/*
@Autowired @Autowired
private UserService userService; private UserService userService;
@Autowired @Autowired
@ -117,3 +119,4 @@ class BookingsystemApplicationTests {
// userCourseService.add(userCourseBean); // userCourseService.add(userCourseBean);
} }
} }
*/

Loading…
Cancel
Save