首页
登陆
首页
图书管理
图书新增
借阅管理
借书申请
学生管理
学生列表
老师管理
个人借阅
密码修改
技术描述
开发工具: Idea/Eclipse
数据库: mysql
Jar包仓库:普通jar包
前段框架:jquery/Bootstrap
后端框架: Spring+SpringMVC+Mybatis
package tgc.edu.mcy.controller;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import tgc.edu.mcy.custom.DataGridParam;
import tgc.edu.mcy.custom.EasyuiResult;
import tgc.edu.mcy.custom.JournalUtil;
import tgc.edu.mcy.entity.Book;
import tgc.edu.mcy.entity.Kind;
import tgc.edu.mcy.entity.Records;
import tgc.edu.mcy.entity.SysRole;
import tgc.edu.mcy.entity.SysUser;
import tgc.edu.mcy.form.BookForm;
import tgc.edu.mcy.security.UserUtils;
import tgc.edu.mcy.service.BookService;
import tgc.edu.mcy.service.KindService;
import tgc.edu.mcy.service.RecordsService;
import tgc.edu.mcy.service.SysUserService;
@Controller
@RequestMapping(value="/book")
public class BookController {
@Autowired
private BookService bookDAO;
@Autowired
private KindService kindDAO;
@Autowired
private UserUtils userUtils;
@Autowired
private JournalUtil journalUtil;
@Autowired
private RecordsService recordsDAO;
@Autowired
private SysUserService sysUserDAO;
@RequestMapping(value="/main")
public String main() {
return "book/main";
}
@RequestMapping(value="/edit")
public String edit(Integer id, ModelMap map) {
List<Kind> kind = kindDAO.findAll();
Book model = new Book();
if(id != null) {
model = bookDAO.findById(id);
map.put("type", model.getKind().getType());
}
map.put("kind", kind);
map.put("model", model);
return "book/edit";
}
@RequestMapping(value="/apply")
public String apply() {
return "book/apply";
}
@RequestMapping(value="/message")
public String message(Integer id, ModelMap map) {
Book book = bookDAO.findById(id);
map.put("book", book);
return "book/message";
}
/**
* 还书
* */
@RequestMapping(value="/huanshu")
@ResponseBody
public Object huanshu(Integer id) {
Records records = recordsDAO.findById(id);
Book book = bookDAO.findById(records.getBook().getId());
records.setState("已还");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
String data = df.format(new Date());
records.setReturnTime(data);
recordsDAO.save(records);
book.setNumber(book.getNumber()+1);
book.setLoanNumber(book.getLoanNumber()-1);
bookDAO.save(book);
return new EasyuiResult("操作成功");
}
/**
* 借书
* @throws ParseException
* */
@RequestMapping(value="/borrow")
@ResponseBody
public synchronized Object borrow(Integer id) throws ParseException {
SysUser user = userUtils.getUser();
user.setNumber(user.getNumber()+1);
sysUserDAO.save(user);
List<SysRole> roles = user.getRoles();
String str = null;
for (SysRole sysRole : roles) {
str = sysRole.getName();
}
System.out.println(str+"====");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
String data = df.format(new Date());
Date utilDate = df.parse(data);
Records records = new Records();
records.setUser(user);
records.setBook(bookDAO.findById(id));
if(str.equals("图书管理员")) {
records.setState("未还");
records.setReamark("图书管理员");
}else if(str.equals("老师") || str.equals("学生")){
records.setState("待审核");
records.setReamark("用户");
}
records.setStartTime(data);
Date newDate = stepMonth(utilDate, 2);
records.setEndTime(df.format(newDate));
recordsDAO.save(records);
Book book = bookDAO.findById(id);
Integer number = book.getNumber()-1;
Integer number1 = book.getLoanNumber()+1;
book.setNumber(number);
book.setLoanNumber(number1);
bookDAO.save(book);
return new EasyuiResult("借书成功");
}
//在原有时间是加几个月
public static Date stepMonth(Date sourceDate, int month) {
Calendar c = Calendar.getInstance();
c.setTime(sourceDate);
c.add(Calendar.MONTH, month);
return c.getTime();
}
/**
* 添加图书
* */
@RequestMapping(value="/save")
@ResponseBody
public Object save(BookForm form, MultipartFile file) {
try {
bookDAO.save(form, file);
if(form.getId() == null) {
SysUser user = userUtils.getUser();
journalUtil.save(user.getUsername(), "添加图书", "图书管理员");
}
return new EasyuiResult("数据保存成功");
} catch (Exception e) {
return new EasyuiResult(false, "数据保存失败");
}
}
/**
* 申请同意
* */
@RequestMapping(value="/consent")
@ResponseBody
public Object consent(Integer id) {
Records records = recordsDAO.findById(id);
records.setState("未还");
recordsDAO.save(records);
return new EasyuiResult("操作成功");
}
/**
* 显示所有图书
* */
@RequestMapping(value="/list")
@ResponseBody
public Object list(DataGridParam param, String name, String press, String kind) {
Pageable pageable = param.buildPageable();
Specification<Book> specification = buildSpec(param, name, press, kind);
Page<Book> page = bookDAO.findAll(specification, pageable);
HashMap<String , Object> result = param.getPageResult(page);
return result;
}
private Specification<Book> buildSpec(DataGridParam param, String name, String press, String kind) {
Specification<Book> specification=new Specification<Book>() {
private static final long serialVersionUID = 1L;
@Override
public Predicate toPredicate(Root<Book> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
HashSet<Predicate> rules=new HashSet<>();
if(StringUtils.hasText(name)) {
rules.add(cb.like(root.get("name"), "%"+name+"%"));
}
if(StringUtils.hasText(press)) {
rules.add(cb.like(root.get("press"), "%"+press+"%"));
}
if(StringUtils.hasText(kind)) {
rules.add(cb.like(root.get("kind").get("type"), "%"+kind+"%"));
}
return cb.and(rules.toArray(new Predicate[rules.size()]));
}
};
return specification;
}
/**
* 删除图书
* */
@RequestMapping(value="/delete")
@ResponseBody
public Object delete(Integer id) {
SysUser user = userUtils.getUser();
journalUtil.save(user.getUsername(), "删除图书", "图书管理员");
Book book = bookDAO.findById(id);
Kind kind = kindDAO.findById(book.getKind().getId());
kind.setNumber(kind.getNumber()-book.getNumber());
kindDAO.save(kind);
bookDAO.deleteById(id);
return new EasyuiResult("删除成功");
}
}
@Controller
@RequestMapping(value="/dept")
public class DeptController {
@Autowired
private DeptService deptDAO;
@Autowired
private TeacherService teacherDAO;
@Autowired
private UserUtils userUtils;
@Autowired
private JournalUtil journalUtil;
@RequestMapping(value="/main")
public String main() {
return "dept/main";
}
/**
* 树形菜单
* */
@RequestMapping("/dept_list")
@ResponseBody
public Object dept_list(Integer id) {
List<Dept> list;
if(id == null) {
list = deptDAO.findByDeptIsNull();
}else {
list = deptDAO.findByDeptId(id);
}
List<HashMap<String, Object>> result = new ArrayList<>();
return fun(list, result);
}
/**
* 改变子节点text
* */
private Object fun(List<Dept> list, List<HashMap<String, Object>> result) {
for (Dept dept : list) {
HashMap<String, Object> map = new HashMap<>();
map.put("id", dept.getId());
map.put("text", dept.getName());
List<HashMap<String, Object>> result1 = new ArrayList<>();
List<Dept> children = dept.getChildren();
map.put("children", fun(children, result1));
result.add(map);
}
return result;
}
/**
* 判断是否是子节点
* */
@RequestMapping(value="/node")
@ResponseBody
public Boolean node(Integer id) {
List<Dept> deptId = deptDAO.findByDeptId(id);
if(deptId.size() > 0) {
return false;
}else {
return true;
}
}
@RequestMapping(value="/edit")
public String edit(Integer parentId, Integer id, ModelMap map) {
Dept model = new Dept();
if(id != null) {
model = deptDAO.findById(id);
map.put("name", model.getTeacher().getName());
}
if(parentId != null) {
model.setDept(deptDAO.findById(parentId));
}
List<Teacher> teacher = teacherDAO.findAll();
map.put("teacher", teacher);
map.put("model", model);
return "dept/edit";
}
/**
* 显示最上一层父节点
* */
@RequestMapping(value="/list")
@ResponseBody
public Object list() {
List<Dept> list = deptDAO.findByDeptIsNull();
return list;
}
/**
* 删除
* */
@RequestMapping(value="/delete")
@ResponseBody
public Object delete(Integer id) {
try {
SysUser user = userUtils.getUser();
journalUtil.save(user.getUsername(), "删除学院或班级", "图书管理员");
deptDAO.deleteById(id);
return new EasyuiResult("数据删除成功");
} catch (Exception e) {
return new EasyuiResult(false, "数据删除失败");
}
}
/**
* combotree数据
* */
@RequestMapping(value="/combotree")
@ResponseBody
public Object combotree(Integer id, Integer nodeId) {
List<HashMap<String, Object>> result = new ArrayList<>();
List<Dept> root;
if(id == null) {
root = deptDAO.findByDeptIsNull();
}else {
root = deptDAO.findByDeptId(id);
}
for(Dept dept: root) {
if(nodeId != null && dept.getId() == nodeId) {
continue;
}
HashMap<String, Object> node = new HashMap<>();
node.put("id", dept.getId());
node.put("text", dept.getName());
if(deptDAO.findByDeptId(dept.getId()).size() > 0) {
node.put("state", "closed");
node.put("children", combotree(dept.getId(), nodeId));
}
result.add(node);
}
return result;
}
/**
* 判断学院或班级是否已添加
* */
@RequestMapping(value="/name")
@ResponseBody
public Boolean username(String name) {
Dept dept = deptDAO.findByName(name);
if(dept == null) {
return false;
}else {
return true;
}
}
/**
* 添加
* */
@RequestMapping(value = "/save")
@ResponseBody
public Object save(DeptForm form) {
try {
Dept model = new Dept();
Integer id = form.getId();
if(id != null) {
model = deptDAO.findById(id);
}else {
SysUser user = userUtils.getUser();
journalUtil.save(user.getUsername(), "添加学院或班级", "图书管理员");
}
Integer parentId = form.getParentId();
if(parentId != null) {
model.setDept(deptDAO.findById(parentId));
}
BeanUtils.copyProperties(form, model,"id","dept");
deptDAO.save(model);
return new EasyuiResult("数据保存成功");
} catch (Exception e) {
return new EasyuiResult(false, "数据保存失败");
}
}
}