作者主页:Java毕设网
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
一、项目介绍
我国的动物管理正处于起步阶段,注册在线的宠物数量非常有限,信息也很封闭,因此必须发挥民间力量扩容,加强宠物信息的宣传力度,使更多爱护动物的好心人可以领养宠物,同时也就收纳有家宠物信息,以防宠物丢失,恶性伤人的事件发生,由此可见,建立一个规范化,科学化的流浪狗领养系统是非常必要的。
二、环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7版本;
三、技术栈
1. 后端:Spring SpringMVC MyBatis
2. 前端:JSP+Bootstrap+JQuery
四、使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中yml配置文件中的数据库配置改为自己的配置
3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
4.修改DogController.java中第86行及第147行左右的uploadDB,根据自己的系统打开对应代码;
5. 运行项目,输入localhost:8088/ssm-adopt 登录
五、运行截图
前台界面
后台界面
六、相关代码
流浪狗管理控制器
@Controller
@RequestMapping("/dog")
public class DogController extends BaseController{
@Autowired
private DogService dogService;
@Autowired
private AdoptService adoptService;
@RequestMapping("/showDogInfoListPage")
public String showDogInfoListPage(){
return "/dog/dogInfoList";
}
@RequestMapping("/showCreateDogPage")
public ModelAndView showCreateDogPage(HttpServletRequest request){
ModelAndView mv = new ModelAndView("dog/createDog");
return mv;
}
@RequestMapping("/getDogInfoList")
@ResponseBody
public JqGridResult getDogInfoList(TDog dog,Integer page){
if(page == null){
page = 1;
}
JqGridResult jqGridResult = dogService.queryAllDog(dog, page, pageSize);
return jqGridResult;
}
@RequestMapping("/delete")
@ResponseBody
public AdoptJSONResult deleteDog(Integer dogId){
dogService.deleteDog(dogId);
return AdoptJSONResult.ok();
}
@RequestMapping("/saveOrUpdate")
@ResponseBody
public AdoptJSONResult saveOrUpdate(TDog dog,@RequestParam(name="file",required=false) MultipartFile file,
HttpServletRequest request) throws IOException{
// 狗id不为空,则修改狗;狗id为空,则新建狗
Integer dogId = dog.getId();
if (dogId != null) {
dogService.updateDog(dog);
} else {
if(file != null){
//保存到数据库的路径
String temp=Thread.currentThread().getContextClassLoader().getResource("").getPath();
int num=temp.indexOf(".metadata");
//String path=temp.substring(1,num).replace('/', '\\')+request.getContextPath().replaceAll("/", "")+"\\src\\main\\webapp\\";
String path=request.getSession().getServletContext().getRealPath("");
// windows下使用该路径;
//String uploadDB = "static\\pages\\img\\dog\\";
// mac下使用该路径
String uploadDB = "static/pages/img/dog/";
String fileName = file.getOriginalFilename();
String[] fileNames = fileName.split("\\.");
String sufixName = fileNames[fileNames.length-1];
fileName = new Date().getTime() + "." +sufixName;
uploadDB += fileName;
dog.setFaceImage(uploadDB);
InputStream in = file.getInputStream();
File finalFile = new File(path+uploadDB);
OutputStream os = new FileOutputStream(finalFile);
IOUtils.copy(in, os);
}
dogService.addDog(dog);
}
return AdoptJSONResult.ok();
}
@RequestMapping("/saveAdoptUserInfo")
public String saveOrUpdate(TDog dog,HttpServletRequest request) throws IOException{
HttpSession session = request.getSession();
dogService.addDog(dog);
int dogId = dog.getId();
TDogUser adopt = new TDogUser();
TUser user = (TUser) session.getAttribute("sessionUser");
adopt.setUserId(user.getId());
//type 1:收养 2:送养
adopt.setType(2);
adopt.setStatus(0);
adopt.setDogId(dogId);
adoptService.addAdoptRecord(adopt);
return "forward:/frontPage/adoptDog.jsp";
}
@RequestMapping("/showModifyDogPage")
public ModelAndView showModifyDog(Integer dogId, HttpServletRequest request){
// 查询狗信息
TDog dogInfo = dogService.queryDogInfoById(dogId);
ModelAndView mv = new ModelAndView("dog/modifyDog");
mv.addObject("dogInfo", dogInfo);
return mv;
}
@PostMapping("/upload")
@ResponseBody
public AdoptJSONResult faceUpload(MultipartFile file,HttpServletRequest request)throws Exception{
//保存到数据库中的相对路径
// windows系统
String uploadPathDB = "static\\pages\\img\\dog\\";
try {
if(file != null){
//保存到数据库的路径
String temp=Thread.currentThread().getContextClassLoader().getResource("").getPath();
int num=temp.indexOf(".metadata");
//String path=temp.substring(1,num).replace('/', '\\')+request.getContextPath().replaceAll("/", "")+"\\src\\main\\webapp\\";
String path=request.getSession().getServletContext().getRealPath("");
// mac系统
//uploadPathDB = "static/pages/img/dog/";
String fileName = file.getOriginalFilename();
String[] fileNames = fileName.split("\\.");
String sufixName = fileNames[fileNames.length-1];
fileName = new Date().getTime() + "." +sufixName;
uploadPathDB += fileName;
InputStream in = file.getInputStream();
File finalFile = new File(path+uploadPathDB);
OutputStream os = new FileOutputStream(finalFile);
IOUtils.copy(in, os);
}else{
return AdoptJSONResult.errorMsg("上传出错...");
}
} catch (Exception e) {
e.printStackTrace();
return AdoptJSONResult.errorMsg("上传出错...");
}
return AdoptJSONResult.ok(uploadPathDB);
}
}
用户管理控制器
@Controller
@RequestMapping("/user")
public class UserController extends BaseController {
final static Logger log = LoggerFactory.getLogger(UserController.class);
@Autowired
private UserService userService;
@Autowired
private AdoptService adoptService;
@RequestMapping("/showUserInfoListPage")
public String showUserInfoListPage(){
return "/user/userInfoList";
}
@RequestMapping("/showCreateUserPage")
public ModelAndView showCreateUserPage(HttpServletRequest request){
ModelAndView mv = new ModelAndView("user/createUser");
return mv;
}
@RequestMapping("/delete")
@ResponseBody
public AdoptJSONResult deleteUser(Integer userId){
userService.deleteUser(userId);
return AdoptJSONResult.ok();
}
@RequestMapping("/getUserInfoList")
@ResponseBody
public JqGridResult getUserInfoList(TUser user,Integer page){
if(page == null){
page = 1;
}
JqGridResult jqGridResult = userService.queryAllUser(user, page, pageSize);
return jqGridResult;
}
@RequestMapping("/saveOrUpdate")
@ResponseBody
public AdoptJSONResult saveOrUpdate(TUser user){
// 用户id不为空,则修改用户;用户id为空,则新建用户
Integer userId = user.getId();
if (userId != null) {
userService.updateUser(user);
} else {
userService.addUser(user);
}
return AdoptJSONResult.ok();
}
@RequestMapping("/modifyUser")
public ModelAndView showModifyUser(Integer userId, HttpServletRequest request){
// 查询用户个人信息
TUser userInfo = userService.queryUserInfoById(userId);
ModelAndView mv = new ModelAndView("user/modifyUser");
mv.addObject("userInfo", userInfo);
return mv;
}
/**
* 管理员登陆
* @param username
* @param password
* @param request
* @return
*/
@PostMapping("/login")
@ResponseBody
public AdoptJSONResult userLogin(String username, String password,
HttpServletRequest request) {
if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) {
return AdoptJSONResult.errorMap("用户名和密码不能为空");
} else {
TAdmin admin = new TAdmin(Integer.parseInt(username), password);
TAdmin currentAdmin =userService.queryAdminByUsernameAndPassword(admin);
if(currentAdmin != null){
request.getSession().setAttribute("sessionAdmin", currentAdmin);
return AdoptJSONResult.ok();
}else{
return AdoptJSONResult.errorMsg("登陆失败,请重试...");
}
}
}
/**
* 用户登陆
* @param username
* @param password
* @param request
* @return
*/
@PostMapping("/customLogin")
@ResponseBody
public AdoptJSONResult customLogin(String username, String password,
HttpServletRequest request) {
if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) {
return AdoptJSONResult.errorMap("用户名和密码不能为空");
} else {
TUser user = new TUser(username,password);
TUser currentUser =userService.queryUserByUsernameAndPassword(user);
if(currentUser != null){
request.getSession().setAttribute("sessionUser", currentUser);
return AdoptJSONResult.ok();
}else{
return AdoptJSONResult.errorMsg("登陆失败,请重试...");
}
}
}
@PostMapping("/customReg")
@ResponseBody
public AdoptJSONResult customReg(String username, String password,String tel,
HttpServletRequest request) {
if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) {
return AdoptJSONResult.errorMap("用户名和密码不能为空");
} else {
TUser user = new TUser(username,password);
//TUser currentUser =userService.queryUserByUsername(username);
//if(currentUser != null){
// return AdoptJSONResult.errorMsg("用户已存在...");
//request.getSession().setAttribute("sessionUser", currentUser);
//return AdoptJSONResult.ok();
//}else{
TUser user1 = new TUser();
user1.setUsername(username);
user1.setPassword(password);
user1.setTel(tel);
userService.addUser(user1);
request.getSession().setAttribute("sessionUser", user1);
return AdoptJSONResult.ok();
//}
}
}
/**
* 用户注销
* @param request
* @return
*/
@GetMapping("/logout")
public String logout(HttpServletRequest request) {
request.getSession().invalidate();
return "redirect:/frontPage/login.jsp";
}
/**
* 用户收养流浪狗
* @param dogId
* @param request
* @return
* @throws IOException
*/
@PostMapping("/adoptDog")
@ResponseBody
public AdoptJSONResult saveOrUpdate(Integer dogId,HttpServletRequest request) throws IOException{
HttpSession session = request.getSession();
TDogUser adopt = new TDogUser();
TUser user = (TUser) session.getAttribute("sessionUser");
adopt.setUserId(user.getId());
//type 1:收养 2:送养
adopt.setType(1);
adopt.setStatus(0);
adopt.setDogId(dogId);
adoptService.addAdoptRecord(adopt);
return AdoptJSONResult.ok();
}
}