Java實(shí)戰(zhàn)房屋租賃網(wǎng)的實(shí)現(xiàn)流程
一、項(xiàng)目簡述
功能包括: 前臺(tái):系統(tǒng)首頁,酒店介紹,系統(tǒng)公告,客房信息,客房類型,用 戶預(yù)等等。 用戶:注冊(cè)登陸修改我的信息客房預(yù)訂等等。 管理員修改登錄密碼,添加客房,會(huì)員信息管理等等。
二、項(xiàng)目運(yùn)行
環(huán)境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
項(xiàng)目技術(shù): JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。





用戶控制器:
/**
* 控制器層
*
*/
@RestController
@CrossOrigin
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private HttpServletRequest request;
@Autowired
BCryptPasswordEncoder encoder;
/**
* 查詢?nèi)繑?shù)據(jù)
*
* @return
*/
@RequestMapping(value = "userList",method = RequestMethod.GET)
public Result findAll() {
List<User> all = userService.findAll();
return new Result(true, StatusCode.OK, "查詢成功",all,all.size());
}
/**
* 根據(jù)ID查詢
*
* @param id ID
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public Result findById(@PathVariable Long id) {
return new Result(true, StatusCode.OK, "查詢成功", userService.findById(id));
}
/**
* 分頁+多條件查詢
* @param searchMap 查詢條件封裝
* @param page 頁碼
* @param size 頁大小
* @return 分頁結(jié)果
*/
@RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST)
public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){
Page<User> pageList = userService.findSearch(searchMap, page, size);
return new Result(true,StatusCode.OK,"查詢成功", new PageResult<User>(pageList.getTotalElements(), pageList.getContent()) );
}
/**
* 根據(jù)條件查詢
* @param searchMap
* @return
*/
@RequestMapping(value="/search",method = RequestMethod.POST)
public Result findSearch( @RequestBody Map searchMap){
return new Result(true,StatusCode.OK,"查詢成功",userService.findSearch(searchMap));
}
/**
* 增加
* @param user
*/
@RequestMapping(method=RequestMethod.POST)
public Result add(@RequestBody User user ){
userService.add(user);
return new Result(true,StatusCode.OK,"增加成功");
}
/**
* 修改
* @param user
*/
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.PUT)
public Result update(User user, @PathVariable Long id ){
User oldUser=userService.findById(id);
user.setId(id);
user.setPassword(oldUser.getPassword());
userService.update(user);
return new Result(true,StatusCode.OK,"修改成功");
}
/**
* 修改
* @param user
*/
@RequestMapping(value="/change",method= RequestMethod.POST,consumes = "application/json")
public Result update(@RequestBody User user, HttpSession session){
User us= (User) session.getAttribute("user");
user.setId(us.getId());
user.setPassword(us.getPassword());
userService.update(user);
return new Result(true,StatusCode.OK,"修改成功");
}
/**
* 刪除
* @param id
*/
@RequestMapping(value="/{id}",method= RequestMethod.DELETE)
public Result delete(@PathVariable String id ){
userService.deleteById(id);
return new Result(true,StatusCode.OK,"刪除成功");
}
/**
* 用戶注冊(cè)
* @param code
* @param user
* @return
*/
@ResponseBody
@RequestMapping(value = "/register/",method = RequestMethod.POST)
public Result regist(@RequestParam(name = "code") String code,User user,HttpServletRequest request){
String sCode = (String) request.getSession().getAttribute("user_register_email_code");
if(!sCode.equalsIgnoreCase(code)){
return new Result(false,StatusCode.ERROR,"驗(yàn)證碼錯(cuò)誤!");
}
userService.add(user);
return new Result(true,StatusCode.OK,"注冊(cè)成功");
}
/**
*判斷賬號(hào)是否存在
* @param user
* @return
*/
@RequestMapping(value = "/checkPhone",method = RequestMethod.POST)
@ResponseBody
public Result checkPhone(User user){
String phone = user.getMobile();
if(!StringUtil.isMobile(phone)){
return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懻_的手機(jī)號(hào)!");
}
User userphone= userService.findByMobile(phone);
if (userphone == null){
return new Result(true,StatusCode.OK,"該手機(jī)號(hào)可以注冊(cè)");
}
return new Result(false,StatusCode.ERROR,"該手機(jī)號(hào)已經(jīng)被注冊(cè)");
}
/**
* 郵箱驗(yàn)證
* @param user
* @return
*/
@RequestMapping(value = "/email",method = RequestMethod.POST)
@ResponseBody
public Result findemail(User user){
String email = user.getEmail();
if(!StringUtil.emailFormat(email)){
return new Result(true,StatusCode.ERROR,"請(qǐng)?zhí)顚懻_的郵箱格式");
}
User useremail= userService.findByEmail(email);
if (useremail == null){
return new Result(true,StatusCode.OK,"該郵箱可以注冊(cè)");
}
return new Result(false,StatusCode.ERROR,"該郵箱已經(jīng)被注冊(cè)");
}
/**
* 用戶登錄
* @param loginMap
* @return
*/
@ResponseBody
@RequestMapping(value="/login",method=RequestMethod.POST)
public Result login(@RequestParam Map<String,String> loginMap,HttpServletRequest request){
String mobile = loginMap.get("login");
if (StringUtil.isMobile(mobile)){
User user = userService.findByMobileAndPassword(loginMap.get("login"),loginMap.get("password"));
if(user!=null){
request.getSession().setAttribute("user",user);
Map map=new HashMap();
return new Result(true,StatusCode.OK,"登陸成功");
}else{
return new Result(false,StatusCode.LOGINERROR,"用戶名或密碼錯(cuò)誤");
}
}else {
User user = userService.findByNameAndPassword(loginMap.get("login"),loginMap.get("password"));
if(user!=null){
request.getSession().setAttribute("user",user);
Map map=new HashMap();
map.put("name",user.getName());//姓名
return new Result(true,StatusCode.OK,"登陸成功",map);
}else{
return new Result(false,StatusCode.LOGINERROR,"用戶名或密碼錯(cuò)誤");
}
}
}
/**
* 用戶注銷
* @param request
* @param response
* @throws IOException
*/
@RequestMapping(value="/logout",method=RequestMethod.GET)
public void logout(HttpServletRequest request,HttpServletResponse response) throws IOException {
request.getSession().setAttribute("user", null);
response.sendRedirect(request.getContextPath() + "/dist/view");
}
}
酒店房屋控制器:
/**
* 控制器層
*
*/
@Controller
@CrossOrigin
@RequestMapping("/hotel")
public class HotelController {
@Autowired
private HotelService hotelService;
@Autowired
private ScenicService scenicService;
/**
* 查詢?nèi)烤频晷畔?
* @return
*/
@ResponseBody
@RequestMapping(value = "/list",method= RequestMethod.GET)
public Result findAll(){
List<Hotel> all = hotelService.findAll();
return new Result(true, StatusCode.OK,"查詢成功",all,all.size());
}
/**
* 根據(jù)ID查詢
* @param id ID
* @return
*/
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.GET)
public Result findById(@PathVariable Long id){
return new Result(true,StatusCode.OK,"查詢成功",hotelService.findById(id));
}
/**
* 酒店添加操作
* @param hotel
*/
@ResponseBody
@RequestMapping(value = "/add",method=RequestMethod.POST)
public Result add(Hotel hotel){
if(StringUtils.isEmpty(hotel.getName())){
return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懢频昝Q");
}
if(StringUtils.isEmpty(hotel.getImg())){
return new Result(false,StatusCode.ERROR,"請(qǐng)上傳酒店封面圖片");
}
if(StringUtils.isEmpty(hotel.getAddr())){
return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懢频甑刂?);
}
if(StringUtils.isEmpty(hotel.getMiaoshu())){
return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懢频昝枋?);
}
hotel.setCommentCount(0);
hotel.setStar(0);
if(hotelService.add(hotel)==null){
return new Result(false,StatusCode.ERROR,"酒店添加失敗");
}
return new Result(true,StatusCode.OK,"添加成功");
}
/**
* 分頁+多條件查詢
* @param searchMap 查詢條件封裝
* @param page 頁碼
* @param size 頁大小
* @return 分頁結(jié)果
*/
@ResponseBody
@RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST)
public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){
Page<Hotel> pageList = hotelService.findSearch(searchMap, page, size);
return new Result(true,StatusCode.OK,"查詢成功", new PageResult<Hotel>(pageList.getTotalElements(), pageList.getContent()) );
}
/**
* 根據(jù)條件查詢
* @param searchMap
* @return
*/
@ResponseBody
@RequestMapping(value="/search",method = RequestMethod.POST)
public Result findSearch( @RequestBody Map searchMap){
return new Result(true,StatusCode.OK,"查詢成功",hotelService.findSearch(searchMap));
}
/**
* 修改
* @param hotel
*/
@ResponseBody
@RequestMapping(value="/edit",method= RequestMethod.PUT)
public Result update(Hotel hotel){
Hotel hotelById = hotelService.findById(hotel.getId());
if(hotelById==null){
return new Result(false,StatusCode.ERROR,"該酒店信息不存在");
}
if(StringUtils.isEmpty(hotel.getName())){
return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懢频昝Q");
}
BeanUtils.copyProperties(hotel,hotelById,"id","img","miaoshu","day","startdate","addr","commentCount");
if(hotelService.update(hotelById)==null){
return new Result(false,StatusCode.ERROR,"酒店編輯失敗");
}
return new Result(true,StatusCode.OK,"修改成功");
}
/**
* 刪除
* @param id
*/
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.DELETE)
public Result delete(@PathVariable String id ){
hotelService.deleteById(id);
return new Result(true,StatusCode.OK,"刪除成功");
}
/**
* 酒店列表跳轉(zhuǎn)路徑
* @return
*/
@RequestMapping(value = "/hotelList")
public String hotelList(){
return "admin/hotelmanage/hotelList";
}
@RequestMapping(value = "/hotelAdd")
public String hotelAdd(){
return "admin/hotelmanage/hotelAdd";
}
/**
* 查詢單個(gè)酒店
* @param model
* @param id
* @return
*/
@RequestMapping("/oneAttr")
public String One_attr(Model model, Long id){
Hotel scenic=hotelService.findById(id);
model.addAttribute("oneAttr",scenic);
return "page/hotelDetail";
}
@RequestMapping("/local")
public String localRefresh(Model model,Long id) {
Hotel hotel=hotelService.findById(id);
// Sort sort=new Sort(Sort.Direction.DESC,"star");
System.out.println("1111"+hotel.toString());
List<Scenic> scenics=scenicService.findByCountryLike(hotel.getAddr());
System.out.println("2222"+scenics.toString());
Collections.sort(scenics, new Comparator<Scenic>() {
@Override
public int compare(Scenic o1, Scenic o2) {
if (o1.getStart()<o2.getStart()){
return 2;
}
if (o1.getStart().equals(o2.getStart()) ){
return 1;
}
return -1;
}
});
if (scenics.size()>=4){
List newList=scenics.subList(0,3);
model.addAttribute("scenics",newList);
}else {
model.addAttribute("scenics",scenics);
}
return "page/hotelDetail::table_refresh";
}
}
后臺(tái)管理員控制器:
/**
* 控制器層
* @author yy
*
*/
@Controller
@CrossOrigin
@RequestMapping("/admin")
public class AdminController {
@Autowired
private AdminService adminService;
@Autowired
BCryptPasswordEncoder encoder;
/**
* 查詢?nèi)繑?shù)據(jù)
* @return
*/
@ResponseBody
@RequestMapping(method= RequestMethod.GET)
public Result findAll(){
return new Result(true, StatusCode.OK,"查詢成功",adminService.findAll());
}
/**
* 根據(jù)ID查詢
* @param id ID
* @return
*/
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.GET)
public Result findById(@PathVariable Long id){
return new Result(true,StatusCode.OK,"查詢成功",adminService.findById(id));
}
/**
* 分頁+多條件查詢
* @param searchMap 查詢條件封裝
* @param page 頁碼
* @param size 頁大小
* @return 分頁結(jié)果
*/
@ResponseBody
@RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST)
public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){
Page<Admin> pageList = adminService.findSearch(searchMap, page, size);
return new Result(true,StatusCode.OK,"查詢成功", new PageResult<Admin>(pageList.getTotalElements(), pageList.getContent()) );
}
/**
* 根據(jù)條件查詢
* @param searchMap
* @return
*/
@ResponseBody
@RequestMapping(value="/search",method = RequestMethod.POST)
public Result findSearch( @RequestBody Map searchMap){
return new Result(true,StatusCode.OK,"查詢成功",adminService.findSearch(searchMap));
}
/**
* 增加
* @param admin
*/
@ResponseBody
@RequestMapping(method=RequestMethod.POST)
public Result add(@RequestBody Admin admin ){
adminService.add(admin);
return new Result(true,StatusCode.OK,"增加成功");
}
/**
* 修改
* @param admin
*/
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.PUT)
public Result update(@RequestBody Admin admin, @PathVariable Long id ){
admin.setId(id);
adminService.update(admin);
return new Result(true,StatusCode.OK,"修改成功");
}
/**
* 刪除
* @param id
*/
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.DELETE)
public Result delete(@PathVariable String id ){
adminService.deleteById(id);
return new Result(true,StatusCode.OK,"刪除成功");
}
/**
* 管理員跳轉(zhuǎn)
* @return
*/
@RequestMapping(value = "/adminlogin")
public String adminlogin()
{
return "admin/login/login";
}
/**
* admin登錄
* @param loginMap
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value="/login",method= RequestMethod.POST)
public Result login(@RequestParam Map<String,String> loginMap,HttpServletRequest request){
Admin admin = adminService.finbyNameAndPassword(loginMap.get("name"),loginMap.get("password"));
if (admin!=null){
request.getSession().setAttribute("admin",admin);
Map map=new HashMap();
map.put("name",admin.getName());
return new Result(true,StatusCode.OK,"登錄成功");
}else {
return new Result(false,StatusCode.ERROR,"賬號(hào)密碼錯(cuò)誤");
}
}
/**
* 管理員登錄成功
* @return
*/
@RequestMapping(value = "/index")
public String success(){
return "admin/index";
}
/**
* 用戶列表
* @return
*/
@RequestMapping(value = "/userList")
public String user(){
return "admin/usermanage/userList";
}
@RequestMapping(value = "/echars")
public String analysis(){
return "admin/echars/console";
}
/**
* 管理員退出登錄
* @return
*/
@RequestMapping(value = "/logout")
public String logout(HttpSession session){
session.removeAttribute("admin");
return "admin/login/login";
}
/**
* 管理員修改密碼
* @return
*/
@ResponseBody
@RequestMapping(value = "/passwd")
public Result passwd(HttpSession session,String passwd,String oldpad){
Admin admindmin= (Admin) session.getAttribute("admin");
Admin admins=adminService.findById(admindmin.getId());
boolean old=encoder.matches(oldpad,admins.getPassword());
if (old){
String newPassd=encoder.encode(passwd);
admins.setPassword(newPassd);
adminService.update(admins);
return new Result(true,StatusCode.OK,"成功");
}else {
return new Result(false,StatusCode.ERROR,"更新失敗");
}
}
}
以上就是Java實(shí)戰(zhàn)房屋租賃網(wǎng)的實(shí)現(xiàn)流程的詳細(xì)內(nèi)容,更多關(guān)于Java?房屋租賃網(wǎng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Java實(shí)戰(zhàn)之實(shí)現(xiàn)文件資料上傳并生成縮略圖
- Java實(shí)戰(zhàn)之實(shí)現(xiàn)物流配送系統(tǒng)示例詳解
- Java實(shí)戰(zhàn)之郵件的撰寫和發(fā)送
- Java實(shí)戰(zhàn)在線選課系統(tǒng)的實(shí)現(xiàn)流程
- Java 實(shí)戰(zhàn)圖書管理系統(tǒng)的實(shí)現(xiàn)流程
- Java?實(shí)戰(zhàn)范例之校園二手市場系統(tǒng)的實(shí)現(xiàn)
- Java?實(shí)戰(zhàn)項(xiàng)目之家政服務(wù)平臺(tái)系統(tǒng)的實(shí)現(xiàn)流程
- Java?實(shí)戰(zhàn)項(xiàng)目之學(xué)生信息管理系統(tǒng)的實(shí)現(xiàn)流程
- Java實(shí)戰(zhàn)項(xiàng)目練習(xí)之球館在線預(yù)約系統(tǒng)的實(shí)現(xiàn)
相關(guān)文章
Java SpringBoot的相關(guān)知識(shí)點(diǎn)詳解
這篇文章主要介紹了SpringBoot的相關(guān)知識(shí)點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-10-10
Java實(shí)現(xiàn)打飛機(jī)小游戲(附完整源碼)
這篇文章主要介紹了Java實(shí)現(xiàn)打飛機(jī)小游戲(附完整源碼),這里整理了詳細(xì)的代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Java對(duì)象方法的調(diào)用執(zhí)行過程詳解
這篇文章主要介紹了Java對(duì)象方法的調(diào)用執(zhí)行過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Java中BigInteger類的使用方法詳解(全網(wǎng)最新)
這篇文章主要介紹了Java中BigInteger類的使用方法詳解,常用最全系列,本章作為筆記使用,內(nèi)容比較全面,但常用的只有:構(gòu)造函數(shù),基本運(yùn)算以及compareTo(),intValue(),setBit(),testBit()方法,需要的朋友可以參考下2023-05-05
springboot2.2.2集成dubbo的實(shí)現(xiàn)方法
這篇文章主要介紹了springboot2.2.2集成dubbo的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
SpringBoot如何IDEA中實(shí)現(xiàn)熱部署
這篇文章主要介紹了SpringBoot如何IDEA中實(shí)現(xiàn)熱部署,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Java加密 消息摘要算法MAC實(shí)現(xiàn)詳解
這篇文章主要介紹了Java 消息摘要算法MAC實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07

