package com.example.sens.controller.home;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.sens.controller.common.BaseController;
import com.example.sens.dto.JsonResult;
import com.example.sens.entity.*;
import com.example.sens.enums.OrderStatusEnum;
import com.example.sens.enums.PostStatusEnum;
import com.example.sens.service.*;
import com.example.sens.util.DateUtil;
import com.example.sens.util.FileUtil;
import com.example.sens.util.PageUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @author 言曌
* @date 2020/3/11 4:59 下午
*/
@Controller
public class FrontPostController extends BaseController {
@Autowired
private CategoryService categoryService;
@Autowired
private PostService postService;
@Autowired
private CityService cityService;
@Autowired
private OrderService orderService;
@Autowired
private UserService userService;
/**
* 房屋列表
*
* @param model
* @return
*/
@GetMapping("/post")
public String postList(@RequestParam(value = "page", defaultValue = "1") Integer pageNumber,
@RequestParam(value = "size", defaultValue = "6") Integer pageSize,
@RequestParam(value = "sort", defaultValue = "createTime") String sort,
@RequestParam(value = "order", defaultValue = "desc") String order,
@RequestParam(value = "postTitle", defaultValue = "") String postTitle,
@RequestParam(value = "cityId", defaultValue = "-1") Long cityId,
@RequestParam(value = "cateId", defaultValue = "-1") Long cateId,
@RequestParam(value = "area", defaultValue = "") String area,
@RequestParam(value = "price", defaultValue = "") String price,
@RequestParam(value = "status", defaultValue = "-1") Integer status,
HttpSession session,
Model model) {
Post condition = new Post();
List<Category> categoryList = categoryService.findAll();
model.addAttribute("categoryList", categoryList);
List<City> cityList = cityService.findAll();
model.addAttribute("cityList", cityList);
model.addAttribute("postCount", postService.count(null));
try {
if (StringUtils.isNotEmpty(price)) {
String[] priceArr = price.split("-");
if (priceArr.length == 2) {
condition.setMinPrice(Integer.valueOf(priceArr[0]));
condition.setMaxPrice(Integer.valueOf(priceArr[1]));
}
}
if (StringUtils.isNotEmpty(area)) {
String[] areaArr = price.split("-");
if (areaArr.length == 2) {
condition.setMinArea(Integer.valueOf(areaArr[0]));
condition.setMaxArea(Integer.valueOf(areaArr[1]));
}
}
} catch (Exception e) {
e.printStackTrace();
}
// 查询日期列表
Page page = PageUtil.initMpPage(pageNumber, pageSize, sort, order);
condition.setPostTitle(postTitle);
condition.setPostStatus(status);
condition.setCateId(cateId);
condition.setCityId(cityId);
Page<Post> postPage = postService.findPostByCondition(condition, page);
model.addAttribute("page", postPage);
model.addAttribute("postTitle", postTitle);
model.addAttribute("cityId", cityId);
model.addAttribute("cateId", cateId);
model.addAttribute("status", status);
model.addAttribute("area", area);
model.addAttribute("price", price);
// 侧边栏
model.addAttribute("onCount", postService.countByStatus(PostStatusEnum.ON_SALE.getCode()));
model.addAttribute("offCount", postService.countByStatus(PostStatusEnum.OFF_SALE.getCode()));
if (cityId != null && cityId != -1) {
City city = cityService.get(cityId);
if (city != null) {
session.setAttribute("city", city);
}
} else {
session.removeAttribute("city");
}
return "home/postList";
}
/**
* 房屋详情
*
* @param id
* @param model
* @return
*/
@GetMapping("/post/{id}")
public String postDetails(@PathVariable("id") Long id,
@RequestParam(value = "startDate", required = false) String start,
@RequestParam(value = "quantity", defaultValue = "1") Integer quantity,
HttpSession session,
Model model) {
// 房屋
Post post = postService.get(id);
if (post == null) {
return renderNotFound();
}
// 分类和城市
Category category = categoryService.get(post.getCateId());
City city = cityService.get(post.getCityId());
User user = userService.get(post.getUserId());
post.setCategory(category);
post.setCity(city);
post.setUser(user);
model.addAttribute("post", post);
boolean allowEdit = getLoginUser() != null && (loginUserIsAdmin() || Objects.equals(post.getUserId(), getLoginUserId()));
model.addAttribute("allowEdit", allowEdit);
String[] imgUrlList = post.getImgUrl().split(",");
model.addAttribute("imgUrlList", imgUrlList);
List<Category> categoryList = categoryService.findAll();
model.addAttribute("categoryList", categoryList);
List<City> cityList = cityService.findAll();
model.addAttribute("cityList", cityList);
City citySession = (City) session.getAttribute("city");
Long cityId = citySession == null ? null : citySession.getId();
List<Post> latestPostList = postService.getLatestPost(cityId, 6);
model.addAttribute("latestPostList", latestPostList);
// 可以考虑优化下,暂时没有时间优化
List<Post> unionRentPost = postService.getUnionRentPost(post);
List<Order> orderList = new ArrayList<>();
for (Post temp : unionRentPost) {
Order order = orderService.findByPostId(temp.getId());
if (order == null) {
order = new Order();
} else {
order.setUser(userService.get(order.getUserId()));
}
order.setPost(temp);
orderList.add(order);
}
model.addAttribute("orderList", orderList);
return "home/post";
}
/**
* 结算页面
*
* @param postId
* @param start
* @param quantity
* @param model
* @return
*/
@GetMapping("/checkout")
public String checkout(@RequestParam("postId") Long postId,
@RequestParam(value = "startDate", required = false) String start,
@RequestParam(value = "quantity", defaultValue = "1") Integer quantity,
Model model) {
DateFormat dateFormat = new SimpleDateFormat(DateUtil.FORMAT);
if (quantity == null |
没有合适的资源?快使用搜索试试~ 我知道了~
java房屋租赁系统(平台)
共470个文件
java:104个
js:103个
css:93个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 150 浏览量
2023-04-23
14:09:09
上传
评论
收藏 28.76MB ZIP 举报
温馨提示
java房屋租赁系统 仅供学习交流及一切非盈利用途,禁止商用。
资源推荐
资源详情
资源评论
收起资源包目录
java房屋租赁系统(平台) (470个子文件)
bootstrap.min.css 157KB
bootstrap.css 143KB
bootstrap.min.css 118KB
AdminLTE.css 109KB
materialdesignicons.min.css 91KB
AdminLTE.min.css 89KB
AdminLTE-without-plugins.css 88KB
AdminLTE-without-plugins.min.css 72KB
froala_editor.pkgd.css 71KB
froala_editor.pkgd.min.css 60KB
loaders.css 55KB
animate.min.css 52KB
_all-skins.css 47KB
dashicons.min.css 45KB
_all-skins.min.css 41KB
royal.css 40KB
dark.css 40KB
gray.css 40KB
font-awesome.css 37KB
red.css 36KB
royal.min.css 35KB
gray.min.css 35KB
dark.min.css 35KB
froala_editor.css 34KB
red.min.css 32KB
font-awesome.min.css 30KB
froala_editor.min.css 29KB
bootstrap-theme.css 26KB
login.min.css 25KB
bootstrap-theme.min.css 23KB
pretty-checkbox.css 22KB
pretty-checkbox.min.css 19KB
style.css 17KB
select2-bootstrap.css 16KB
AdminLTE-bootstrap-social.css 15KB
select2.min.css 15KB
layer.css 14KB
AdminLTE-bootstrap-social.min.css 12KB
froala_style.css 9KB
image_manager.css 8KB
froala_style.min.css 8KB
image_manager.min.css 7KB
buttons.min.css 6KB
bootstrapStyle.css 6KB
highlight.css 5KB
pay.css 5KB
layer.css 5KB
pay.css 5KB
video.css 5KB
image.css 5KB
jquery.toast.min.css 4KB
video.min.css 4KB
table.css 4KB
image.min.css 4KB
colors.css 4KB
style.css 3KB
table.min.css 3KB
colors.min.css 3KB
loader.css 3KB
AdminLTE-select2.css 3KB
file.css 3KB
code_view.css 3KB
AdminLTE-select2.min.css 3KB
file.min.css 2KB
code_view.min.css 2KB
pace.css 2KB
pace.min.css 2KB
spell_checker.css 2KB
quick_insert.css 2KB
spell_checker.min.css 1KB
help.css 1KB
quick_insert.min.css 1KB
char_counter.css 1KB
embedly.css 1KB
special_characters.css 1KB
font_awesome.css 1KB
help.min.css 1KB
special_characters.min.css 1KB
char_counter.min.css 1KB
embedly.min.css 1KB
font_awesome.min.css 1KB
emoticons.css 897B
draggable.css 868B
emoticons.min.css 758B
image_tui.css 748B
bootstrapValidator.css 700B
bootstrapValidator.min.css 694B
line_breaker.css 681B
draggable.min.css 663B
image_tui.min.css 612B
line_breaker.min.css 574B
fullscreen.css 566B
fullscreen.min.css 489B
materialdesignicons-webfont.eot 309KB
fontawesome-webfont.eot 162KB
glyphicons-halflings-regular.eot 20KB
loading-0.gif 6KB
loading-2.gif 2KB
loading-1.gif 701B
default-50x50.gif 184B
共 470 条
- 1
- 2
- 3
- 4
- 5
资源评论
GeekyGuru
- 粉丝: 1773
- 资源: 1099
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功