package com.bs.house.controller.home;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bs.house.controller.common.BaseController;
import com.bs.house.dto.JsonResult;
import com.bs.house.entity.*;
import com.bs.house.service.*;
import com.bs.house.entity.*;
import com.bs.house.enums.OrderStatusEnum;
import com.bs.house.enums.PostStatusEnum;
import com.bs.house.service.*;
import com.bs.house.util.DateUtil;
import com.bs.house.util.PageUtil;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.A;
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.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.*;
/**
* 前台控制器
*/
@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;
@Autowired
private CompanyService companyService;
/**
* 房屋列表
*
* @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,
@RequestParam(value = "companyId", defaultValue = "-1") Integer companyId,
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);
List<Company> companyList = companyService.findAll(new QueryWrapper<Company>().eq("status", 1));
model.addAttribute("companyList", companyList);
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);
condition.setCompanyId(companyId);
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("companyId", companyId);
// 侧边栏
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");
}
if (companyId != null && companyId != -1) {
Company company = companyService.get(companyId);
if (company != null) {
session.setAttribute("company", company);
}
} else {
session.removeAttribute("company");
}
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);
List<Company> companyList = companyService.findAll();
model.addAttribute("companyList", companyList);
City citySession = (City) session.getAttribute("city");
Long cityId = citySession == null ? null : citySession.getId();
Company company = (Company) session.getAttribute("company");
Integer companyId = company == null ? null : company.getId();
List<Post> latestPostList = postService.getLatestPost(cityId,companyId, 6);
model.addAttribute("latestPostList", latestPostList);
List<Post> unionRentPost = postService.getUnionRentPost(post);
List<Order> orderList = new ArrayList<>();
for (Post temp : unionRentPost) {
Order o
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
系统整体上一个多公司的分销租房系统,系统共有五个角色:系统管理员,公司管理员,公司员工,游客,注册租户,游客与租户为系统前台用户,可以进行房屋查询,公司查询,房屋浏览,公司浏览等操作;公司员工,公司管理员为后台用户,因为是分销系统,因此公司员工与公司管理员只能够管理本公司的数据,在进行角色管理时,公司管理员添加的角色会打上该公司的标签(公司外键),进行员工管理时公司管理员只能管理该公司下的员工,房屋,订单同理,系统管理员为本系统的ROOT角色,该角色存在的最大原因在于对数据的维护,因为本系统拟采用业务外键的方式,可能会造成数据错乱等情况,因此引入系统管理员角色好方便对数据进行清洗与修改。
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot的房屋租债网站 (1032个子文件)
FrontPostController.class 18KB
Post.class 14KB
PostController.class 13KB
GlobalExceptionHandler.class 10KB
UserServiceImpl.class 9KB
RoleController.class 8KB
BaseService.class 7KB
CompanyController.class 7KB
UserController.class 7KB
OrderController.class 7KB
User.class 7KB
PermissionServiceImpl.class 7KB
PostServiceImpl.class 7KB
Order.class 6KB
LoginController.class 6KB
PermissionController.class 6KB
CategoryServiceImpl.class 6KB
MyRealm.class 6KB
RoleServiceImpl.class 6KB
IndexController.class 6KB
RechargeRecordController.class 5KB
Company.class 5KB
Permission.class 5KB
NoticeController.class 5KB
CategoryController.class 5KB
ProfileController.class 4KB
FileUtil.class 4KB
Role.class 4KB
BaseEntity.class 4KB
ShiroConfig.class 4KB
Response.class 4KB
PermissionUtil.class 4KB
RechargeRecordServiceImpl.class 4KB
PageUtil.class 4KB
PageVo.class 4KB
URLPathMatchingFilter.class 4KB
BaseController.class 4KB
OrderServiceImpl.class 4KB
MvcConfig.class 4KB
JsonResult.class 4KB
AdminController.class 3KB
Category.class 3KB
SystemSchedule.class 3KB
QueryCondition.class 3KB
RechargeRecord.class 3KB
PostQueryCondition.class 3KB
CompanyUser.class 3KB
DateUtil.class 3KB
Notice.class 2KB
RolePermissionRef.class 2KB
UserRoleRefServiceImpl.class 2KB
UserRoleRef.class 2KB
City.class 2KB
CityServiceImpl.class 2KB
RegexUtil.class 2KB
Md5Util.class 2KB
CompanyServiceImpl.class 2KB
SensUtils.class 2KB
IgnoredUrlsProperties.class 2KB
CommonController.class 2KB
SearchVo.class 2KB
AttachmentController.class 2KB
ResourceTypeEnum.class 2KB
CompanyUserServiceImpI.class 2KB
Application.class 2KB
PostMapper.class 2KB
UserMapper.class 2KB
NoticeServiceImpl.class 2KB
RolePermissionRefServiceImpl.class 2KB
PostService.class 2KB
OrderStatusEnum.class 2KB
CommonParamsEnum.class 2KB
RechargeRecordMapper.class 1KB
PostStatusEnum.class 1KB
SpringUtil.class 1KB
PostIsRecommendEnum.class 1KB
PostTypeEnum.class 1KB
PostIsStickyEnum.class 1KB
RechargeRecordService.class 1KB
ResultCodeEnum.class 1KB
UserStatusEnum.class 1KB
PermissionMapper.class 1KB
ThreadPoolUtil.class 1KB
TrueFalseEnum.class 1KB
RoleEnum.class 1KB
MybatisPlusConfig.class 1KB
PermissionService.class 1KB
OrderMapper.class 1KB
MyBusinessException.class 1KB
UserService.class 1KB
RoleService.class 980B
RoleMapper.class 977B
OrderService.class 915B
CategoryMapper.class 859B
CategoryService.class 820B
RolePermissionRefMapper.class 761B
RolePermissionRefService.class 525B
CommonConstant.class 506B
UserRoleRefMapper.class 500B
CompanyMapper.class 492B
共 1032 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
计算机程序分享达人
- 粉丝: 2
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功