17727267930 5 years ago
commit 14bdb38155

@ -6,19 +6,20 @@
<div class="personal-message">
<!-- 未编辑状态-->
<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-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-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-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-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-form-item>
<el-form-item v-if="edit">

@ -1,41 +1,76 @@
<template>
<el-dialog
title="提示"
:visible.sync="addLabDialog"
width="30%">
width="48%">
<div style="width: 100%;height: 120% ">
<el-form :model="form">
<el-form-item label="位置">
<el-input v-model="form.position" placeholder="位置"></el-input>
<el-row>
<el-col style="width:45%">
<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 label="地址">
<el-input v-model="form.address" placeholder="地址"></el-input>
</el-form-item> <el-form-item label="">
<el-input v-model="form.status" placeholder="地址id"></el-input>
</el-col>
<el-col style="width:45% ;">
<el-form-item label="地址" style="">
<el-input v-model="form.status" placeholder="地址id" style="width:60% ;left:10%;border-style: outset" ></el-input>
</el-form-item>
<el-form-item label="实验室id">
<el-input v-model="form.labId" placeholder="请输入id"></el-input>
</el-col>
</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 label="实验室名称">
<el-input v-model="form.name" placeholder="实验室名称"></el-input>
</el-col>
<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 label="状态">
<el-input v-model="form.status" placeholder="状态"></el-input>
</el-col>
</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 label="可容量认人数">
<el-input v-model="form.compacity" placeholder="输入数量"></el-input>
</el-col>
<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 label="管理员">
<el-input v-model="form.manager" placeholder="管理员"></el-input>
</el-col>
</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 label="管理员id">
<el-input v-model="form.managerId" placeholder="管理员id"></el-input>
</el-col>
<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-button type="success" style="width: 120px;text-align: left" icon="el-icon-circle-plus-outline"
@click="showAddLab">新增
</el-button>
</el-form>
</div>
</el-dialog>
</template>
@ -49,8 +84,8 @@
position:'',
address:'',
labId:'',
name:'',
status:'',
name:'509',
status:'0',
compacity:'',
manager:'',
managerId:''

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

@ -1,59 +1,156 @@
<template>
<div>
<div style="width: 100%" >
<el-form :model="form" :inline="true">
<el-form-item label="类型">
<el-input v-model="form.type" placeholder="安卓实验室" ></el-input>
<el-form-item label="类型" style="width: 20% ">
<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 label="位置">
<el-input v-model="form.position" placeholder="位置"></el-input>
<el-form-item label="位置" style="width: 20% ;">
<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 label="状态">
<el-input v-model="form.status" placeholder="状态"></el-input>
<el-form-item label="状态" style="width: 20%">
<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-input v-model="search" placeholder="输入关键字搜索" suffix-icon="el-icon-search"/>
<el-button type="success" style="width: 120px;text-align: left" icon="el-icon-circle-plus-outline"
<el-input v-model="search" placeholder="输入关键字搜索" suffix-icon="el-icon-search" style="width: 20%;border-style: outset;"/>
<el-button type="success" style="width: 6%;text-align: left" icon="el-icon-circle-plus-outline"
@click="showAddLab" >新增
</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 :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
:data="tableData"
border
style="width: 100%">
>
<el-table-column
fixed
prop="name"
label="实验室名称"
width="150">
>
</el-table-column>
<el-table-column
prop="address"
label="地点"
width="120">
>
</el-table-column>
<el-table-column
prop="status"
label="状态"
width="120">
>
</el-table-column>
<el-table-column
prop="week"
label="可申请周次"
width="120">
>
</el-table-column>
<el-table-column
prop="manage"
label="管理员"
width="300">
>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="100">
width="300px"
>
<template slot-scope="scope">
<el-button @click="" type="text" size="small">查看申请详情</el-button>
<el-button @click="" type="text" size="small">详细信息</el-button>
<el-button @click="" type="text" size="small">查看</el-button>
<el-button @click="" style="border: lightpink solid 1px " size="small">查看申请详情</el-button>
<el-button @click="" size="small">详细信息</el-button>
<el-button @click="" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
@ -62,6 +159,7 @@
</template>
<script>
import addLab from "~/components/supManager/addLab" ;
import {get, post} from "~/utils";
import {showDialog, showFail, showSuccess} from "~/utils/dialog";
@ -71,12 +169,21 @@
return{
edit:"",
form:{
type:'',
position:'',
status:'',
type:'0',
position:'0',
status:'0',
},
time:{
year:'0',
week:'0',
day1:"0",
day2:"16",
semester:'0'
},
search:'',
tableData:[
{ name:"aaaa" , address:"509"}
],
}
},
@ -117,7 +224,7 @@
},
mounted() {
// this.tableData=get('/lb/getall')
// this.tableData=get('/url')
}
}
</script>

@ -1,6 +1,9 @@
package com.hzu.bookingsystem.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
@ -9,6 +12,9 @@ import java.util.Date;
*/
@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Table(name = "tb_lab_time")
public class LabTimeBean {
@Id
@ -25,19 +31,19 @@ public class LabTimeBean {
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;
@ -78,43 +84,43 @@ public class LabTimeBean {
this.year = year;
}
public String getSemester() {
public Integer getSemester() {
return semester;
}
public void setSemester(String semester) {
public void setSemester(Integer semester) {
this.semester = semester;
}
public String getWeek() {
public Integer getWeek() {
return week;
}
public void setWeek(String week) {
public void setWeek(Integer week) {
this.week = week;
}
public String getDay() {
public Integer getDay() {
return day;
}
public void setDay(String day) {
public void setDay(Integer day) {
this.day = day;
}
public String getTime() {
public Integer getTime() {
return time;
}
public void setTime(String time) {
public void setTime(Integer time) {
this.time = time;
}
public String getStatus() {
public Integer getStatus() {
return status;
}
public void setStatus(String status) {
public void setStatus(Integer status) {
this.status = status;
}

@ -10,6 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -20,6 +22,9 @@ public class LabTimeController {
@Autowired
private LabTimeService labTimeService;
@Autowired
private UserController userController;
//创建实验室可预约时间段
@PostMapping(value = "/addLabTime", consumes = "application/json")
public ResultVO addLabTime(@RequestBody Map<String, Object> map) {
@ -27,8 +32,7 @@ public class LabTimeController {
LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
System.out.println(labTime1);
//查重
if(labTimeService.findByTime(labTime1.getTime()) != null)
{
if (labTimeService.findByTime(labTime1.getTime()) != null) {
return ResultVOUtil.error(-1, "该时间段已存在");
}
labTimeService.add(labTime1);
@ -36,7 +40,7 @@ public class LabTimeController {
}
//通过ltId删除实验室可预约时间段
@PostMapping(value = "/deleteLabTime" , consumes = "application/json")
@PostMapping(value = "/deleteLabTime")
public ResultVO deleteLabTime(@RequestBody LabTimeBean labTime) {
//查找实验室是否存在
LabTimeBean labTime1 = labTimeService.findByLtId(labTime.getLtId());
@ -49,8 +53,8 @@ public class LabTimeController {
}
//修改实验室可预约时间段
@PostMapping(value = "/updateLabTime" , consumes = "application/json")
public ResultVO updateLabTime(@RequestBody Map<String,Object> map , HttpServletRequest request){
@PostMapping(value = "/updateLabTimeOld", consumes = "application/json")
public ResultVO updateLabTimeOld(@RequestBody Map<String, Object> map, HttpServletRequest request) {
//转换对象
LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
if (labTime1.getLtId() == null) {
@ -61,19 +65,97 @@ public class LabTimeController {
return ResultVOUtil.success();
}
//查找实验室
@GetMapping(value = "/findByLabIdTime" , consumes = "application/json")
public ResultVO<Map<String,Object>> findByLabTimeId(@RequestParam("LabTimeId") Integer labTimeId){
LabTimeBean labTime1 = labTimeService.findByLtId(labTimeId);
//通过ltId查找实验室预约时间段
@GetMapping(value = "/findLabTimeById")
public ResultVO<Map<String, Object>> findLabTimeById(@RequestParam("ltId") Integer lt_id) {
LabTimeBean labTime1 = labTimeService.findByLtId(lt_id);
System.out.println(labTime1);
return ResultVOUtil.success(labTime1);
}
//查找所有实验室列表
@GetMapping(value = "/getLabListTime")
public ResultVO getLabTimeList(){
List<LabTimeDTO> labTimeList = labTimeService.findAllLabInfo();
return ResultVOUtil.success(labTimeList);
//查找实验室预约周次(包含已预约)
// author 吴志岳
@GetMapping(value = "/getWeeks")
public ResultVO findLabTimeByLabIdAndYearAndSemester(@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.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
public class LabDTO {
private Integer labId;
private Integer lab_id;
// 管理员uID
private Integer managerId;
private Integer manager_id;
// 管理员姓名
private String nickname;
// 管理员联系电话
private String tel;
// 实验室名称
private String name;
@ -21,8 +27,4 @@ public class LabDTO {
// 实验室含有的软件(逗号隔开)
private String software;
private Date createTime;
private Date updateTime;
}

@ -18,19 +18,19 @@ public class LabTimeDTO {
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;

@ -3,6 +3,7 @@ package com.hzu.bookingsystem.repository;
import com.hzu.bookingsystem.bean.LabTimeBean;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
@ -44,14 +45,44 @@ public interface LabTimeRepository extends JpaRepository<LabTimeBean,String> {
* @param time
* @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
*/
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();
/**
* author
* IDDTO
*/
LabDTO findDTOById(Integer lab_id);
}

@ -59,20 +59,32 @@ public interface LabTimeService {
* @param time
* @return
*/
LabTimeBean findByTime(String time);
LabTimeBean findByTime(Integer time);
/**
*
*
* @param yearweeksdaytime
*
* @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
public List<LabDTO> findAllLabInfo() {
String sql = "SELECT tb_lab.lab_id as LabId," +
"tb_lab.manager_id as managerId," +
String sql = "SELECT " +
" tb_lab.lab_id, " +
" tb_lab.name, " +
" tb_lab.position, " +
" tb_lab.capacity, " +
"tb_lab.software " +
" tb_lab.software, " +
" tb_lab.manager_id, " +
" tb_user.nickname, " +
" tb_user.tel " +
"FROM " +
"tb_lab ";
" tb_lab, " +
" tb_user " +
"WHERE " +
" tb_lab.manager_id = tb_user.u_id";
Query query = entityManager.createNativeQuery(sql);
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(LabDTO.class));
List<LabDTO> LabDTOList = query.getResultList();
return LabDTOList;
List<LabDTO> labDTOList = query.getResultList();
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.transform.Transformers;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* author
*/
@ -58,14 +60,10 @@ public class LabTimeServiceImpl implements LabTimeService {
}
@Override
public LabTimeBean findByTime(String time){
public LabTimeBean findByTime(Integer time) {
return labTimeRepository.findByTime(time);
}
@Override
public LabTimeBean findByYear(String year){
return labTimeRepository.findByYear(year);
}
@Override
public List<LabTimeDTO> findAllLabInfo() {
@ -85,4 +83,45 @@ public class LabTimeServiceImpl implements LabTimeService {
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
private LabTimeService labTimeService;
@Test
// public void test(){
@ -53,7 +54,8 @@ class BookingsystemApplicationTests {
System.out.println(labTimeService.findAll());
}
}
/*
@Autowired
private UserService userService;
@Autowired
@ -117,3 +119,4 @@ class BookingsystemApplicationTests {
// userCourseService.add(userCourseBean);
}
}
*/

Loading…
Cancel
Save