package com.lin.lostandfound.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PushbackInputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.io.IOUtils;
import org.apache.poi.POIXMLDocument;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import com.lin.lostandfound.constants.Constants;
import com.lin.lostandfound.domain.LostThings;
import com.lin.lostandfound.domain.MenuItem;
import com.lin.lostandfound.domain.Notice;
import com.lin.lostandfound.domain.PickThings;
import com.lin.lostandfound.domain.User;
import com.lin.lostandfound.service.IExpressThanksService;
import com.lin.lostandfound.service.ILostThingsService;
import com.lin.lostandfound.service.IMenuItemService;
import com.lin.lostandfound.service.INoticeService;
import com.lin.lostandfound.service.IPickThingsService;
import com.lin.lostandfound.service.ISystemLogService;
import com.lin.lostandfound.service.IUserService;
import com.lin.lostandfound.utils.DataBaseInfoUtils;
import com.lin.lostandfound.utils.DataHandlingUtil;
import com.lin.lostandfound.utils.ExcelImportUtil;
import com.lin.lostandfound.utils.JSONUtil;
import com.lin.lostandfound.utils.MD5Util;
import com.lin.lostandfound.utils.MysqlDumpUtils;
import com.lin.lostandfound.utils.MysqlDumpUtils.BackupInfo;
@Controller
@RequestMapping(value = "/admin")
public class AdminController extends BaseController {
@Autowired
@Qualifier("userService")
private IUserService userService;
@Autowired
@Qualifier("menuItemService")
private IMenuItemService menuItemService;
@Autowired
@Qualifier("pickThingsService")
private IPickThingsService pickThingsService;
@Autowired
@Qualifier("lostThingsService")
private ILostThingsService lostThingsService;
@Autowired
@Qualifier("noticeService")
private INoticeService noticeService;
@Autowired
@Qualifier("systemLogService")
private ISystemLogService systemLogService;
@Autowired
@Qualifier("expressThanksService")
private IExpressThanksService expressThanksService;
@RequestMapping(value = { "/", "/index.do", "/index.html", "/index" }, method = RequestMethod.GET)
public String index() {
System.out.println("adminIndex...");
return "admin/index";
}
@RequestMapping(value = { "/default.html" })
public String defaultView() {
return "admin/default";
}
@RequestMapping(value = { "/datagrid.html" })
public String datagridView() {
return "admin/datagrid";
}
// 加载菜单项
@RequestMapping(value = { "/menuItem.html" }, produces = "text/html;charset=UTF-8")
public @ResponseBody String menuItem(HttpSession session) throws IOException {
User admin = (User) session.getAttribute(Constants.ADMIN);
// 根据权限(管理员级别)加载菜单
List<MenuItem> jsonMenuList = menuItemService.queryAll(admin.getState());
//System.out.println(JSONUtil.encode(jsonMenuList));
return JSONUtil.encode(jsonMenuList);
}
// 加载全部菜单项
@RequestMapping(value = { "/load-menuItem.html" }, produces = "text/html;charset=UTF-8")
public @ResponseBody String loadMenuItem(HttpSession session) throws IOException {
List<MenuItem> jsonMenuList = menuItemService.queryAll();
return JSONUtil.encode(jsonMenuList);
}
// 下载
@RequestMapping(value = {"/download.html"})
public String download(String fileName, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
response.setCharacterEncoding("UTF-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName="+ URLEncoder.encode("用户数据模板", "UTF-8") +fileName.substring(fileName.lastIndexOf(".")));
InputStream is = null;
OutputStream os = null;
try {
String path = Thread.currentThread().getContextClassLoader()
.getResource("/").getPath() + "resource/download";// 这个resources\\download目录为啥建立在classes下的
//System.out.println(URLDecoder.decode(path, "UTF-8"));
path = URLDecoder.decode(path, "UTF-8");
is = new FileInputStream(new File(path + File.separator + fileName));
os = response.getOutputStream();
byte[] b = new byte[2048];
int length;
while ((length = is.read(b)) > 0) {
os.write(b, 0, length);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(is);
IOUtils.closeQuietly(os);
}
// 返回值要注意,要不然就出现下面这句错误!
// java+getOutputStream() has already been called for this response
return null;
}
// 获取批量导入用户视图
@RequestMapping(value = { "/user-import.html" }, method = RequestMethod.GET)
public String toImportUserView() {
return "admin/user/user-import";
}
// 批量导入用户
@RequestMapping(value = { "/user-import.do" }, method = RequestMethod.POST)
public @ResponseBody Map<String, String> toImportUser(HttpServletRequest request, HttpServletResponse respons) throws InvalidFormatException {
Map<String, String> map = new HashMap<String, String>();
MultipartHttpServletRequest mulRequest = (MultipartHttpServletRequest) request;
MultipartFile file = mulRequest.getFile("excelFile");
String filename = file.getOriginalFilename();
String extension = filename.substring(filename.lastIndexOf("."));
if(!".xls".equals(extension) && !".xlsx".equals(extension)) {
map.put("mesg", "请选择excel格式的文件!");
return map;
}
// 如果文件名为空则什么都不做
if (filename != null && !"".equals(filename)) {
try {
InputStream in = file.getInputStream();
Workbook workBook = null;
if (!in.markSupported()) {
in = new PushbackInputStream(in, 8);
}
// 读写xls和xlsx格式时,HSSFWorkbook针对xls,XSSFWorkbook针对xlsx
if (POIFSFileSystem.hasPOIFSHeader(in)) {
workBook = new HSSFWorkbook(in);
} else if (POIXMLDocument.hasOOXMLHeader(in)) {
workBook = new XSSFWorkbook(OPCPackage.open(in));
}
List<User> userList = ExcelImportUtil.exportListFromExcel(workBook);
userService.addUser(userList);
//System.out.println("获取到的数据:" + userList.size());
} catch (IOException e) {
e.printStackTrace();
map.put("mesg", "导入数据失败!");
return map;
}
}
map.put("mesg", "导入数据成功!");
return map;
}
// 获取用户列表视图
@RequestMapping(value = { "/user-list.html" }, method = RequestMethod.GET)
public String toUserListVi
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
jsp+springmvc+mysql实现的校园失物招领管理平台源码.zip (3935个子文件)
AdminController.class 28KB
UserAgentParserUtil.class 14KB
ExcelUtil.class 13KB
UserDaoImpl.class 11KB
PickThingsDaoImpl.class 9KB
LostThingsDaoImpl.class 9KB
UserController.class 9KB
IndexController.class 8KB
LostThingsController.class 8KB
PickThingsController.class 8KB
SystemLogAspect.class 8KB
DataHandlingUtil.class 8KB
ChatWebSocketHandler.class 7KB
MysqlDumpUtils.class 7KB
UserServiceImpl.class 7KB
LoginController.class 6KB
ImageCodeController.class 6KB
PickThingsServiceImpl.class 6KB
LostThingsServiceImpl.class 6KB
PagerTag.class 5KB
ExcelImportUtil.class 5KB
PickThings.class 5KB
DataBaseBackupUtils.class 5KB
ExpressThanksDaoImpl.class 5KB
BaseController.class 5KB
DateUtil.class 5KB
User.class 5KB
LostThings.class 5KB
Pickthings.class 4KB
NoticeDaoImpl.class 4KB
MenuItemDaoImpl.class 4KB
SystemLogDaoImpl.class 4KB
User.class 4KB
Lostthings.class 4KB
SystemLog.class 4KB
ExpressThanksServiceImpl.class 3KB
DESUtils.class 3KB
MenuItem.class 3KB
ChatMessageController.class 3KB
TokenInterceptor.class 3KB
Systemlog.class 3KB
MysqlDumpUtils$1.class 3KB
LoginLog.class 3KB
InitializedListener.class 3KB
ChatHandshakeInterceptor.class 3KB
NoticeServiceImpl.class 3KB
UserInterceptor.class 3KB
Menuitem.class 3KB
SystemLogServiceImpl.class 3KB
BeanToMapUtil.class 3KB
AdminInterceptor.class 3KB
ExpressThanks.class 2KB
MenuItemServiceImpl.class 2KB
Notice.class 2KB
MessageVo.class 2KB
Loginlog.class 2KB
MD5Util.class 2KB
MySqlBackupTest.class 2KB
ChatWebSocketConfig.class 2KB
DataBaseInfoUtils.class 2KB
Student.class 2KB
DataBaseTimerTask.class 2KB
IPickThingsService.class 2KB
ILostThingsService.class 2KB
Expressthanks.class 2KB
IUserDao.class 2KB
Teacher.class 2KB
MysqlDumpUtils$BackupInfo.class 2KB
IPickThingsDao.class 2KB
ILostThingsDao.class 2KB
TimerManager.class 2KB
Notice.class 2KB
IUserService.class 2KB
PickThingsTest.class 2KB
JSONUtil.class 2KB
MakeFolderUtil.class 2KB
LostThingsTest.class 2KB
StringUtil.class 2KB
DataSourceAspect.class 2KB
DateTransformer.class 1KB
ChatWebSocketHandler$2.class 1KB
Academy.class 1KB
ChatWebSocketHandler$1.class 1KB
Classes.class 1KB
Constants$DataSourceType.class 1KB
UserModel.class 1KB
BaseDao.class 1KB
School.class 1KB
Constants.class 1KB
DataSourceContextHolder.class 1KB
IMenuItemService.class 860B
IMenuItenDao.class 845B
UserAgentParserUtil$Agent.class 843B
ExcelException.class 828B
DigestUtils.class 763B
INoticeService.class 762B
INoticeDao.class 749B
IExpressThanksService.class 738B
SessionListener.class 719B
IExpressThanksDao.class 701B
共 3935 条
- 1
- 2
- 3
- 4
- 5
- 6
- 40
资源评论
weixin_43712132
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功