HouseViewController代码
package com.yiju.controller;
import com.github.pagehelper.PageInfo;
import com.yiju.bean.House;
import com.yiju.bean.HouseInfo;
import com.yiju.bean.HouseInter;
import com.yiju.pojo.HouseView;
import com.yiju.service.IHouseViewService;
import com.yiju.util.YijuUtil;
import net.sf.json.JSONObject;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@Controller
@RequestMapping("house")
public class HouseViewController {
@Autowired
public IHouseViewService houseViewService;
@RequestMapping("findFourHouse.do")
public ModelAndView findFoundHouse(){
ModelAndView mv=new ModelAndView();
List<HouseView> newHouses=houseViewService.findFourHouseByType(0);
List<HouseView> oldHouses=houseViewService.findFourHouseByType(1);
List<HouseView> rentHouses=houseViewService.findFourHouseByType(2);
mv.addObject("newHouses",newHouses);
mv.addObject("oldHouses",oldHouses);
mv.addObject("rentHouses",rentHouses);
mv.setViewName("../main");
return mv;
}
@RequestMapping("findHouseById.do")
public ModelAndView findHouseById(int houseId){
HouseView house=houseViewService.findHouseByHouseId(houseId);
ModelAndView mv=new ModelAndView();
mv.addObject("houseInfo",house);
mv.setViewName("details");
return mv;
}
@RequestMapping("findHouse.do")
public ModelAndView findFourHouse(int currentPage,int houseType){
ModelAndView mv=new ModelAndView();
List<HouseView>houses=houseViewService.findHouseByType(currentPage,houseType);
List<HouseView>fh=houseViewService.findFourHouseByType(houseType);
PageInfo<HouseView>pageInfo=new PageInfo<>(houses);
mv.addObject("pageInfo",pageInfo);
mv.addObject("fh",fh);
if (houseType==0){
mv.setViewName("newhouse");
}else if (houseType==1){
mv.setViewName("oldhouse");
}else {
mv.setViewName("renthouse");
}
return mv;
}
@RequestMapping("toHousePost2.do")
public ModelAndView toHousePost2(@Param(value = "houseTitle") String houseTitle,
@Param(value = "houseAddress") String houseAddress,
@Param(value = "housePrice") BigDecimal housePrice,
@Param(value = "priceUnit") String priceUnit,
@Param(value = "houseHeadimg") MultipartFile houseHeadimg,
@Param(value = "housePlanimg1") MultipartFile housePlanimg1,
@Param(value = "housePlanimg2") MultipartFile housePlanimg2,
@Param(value = "houseImg1") MultipartFile houseImg1,
@Param(value = "houseImg2") MultipartFile houseImg2,
@Param(value = "houseImg3") MultipartFile houseImg3,
@Param(value = "houseImg4") MultipartFile houseImg4,
@Param(value = "houseImg5") MultipartFile houseImg5,
@Param(value = "houseImg6") MultipartFile houseImg6,
HttpSession session
) throws IOException {
House house=new House();
house.setHouseTitle(houseTitle);
house.setHouseAddress(houseAddress);
house.setHousePrice(housePrice);
house.setPriceUnit(priceUnit);
//house.setUserId(10005);
Map<String, byte[]> images=new HashMap<>();
if (houseHeadimg.getSize()!=0){
String picName = YijuUtil.getPicName();
house.setHouseHeadimg(picName);
images.put(picName,houseHeadimg.getBytes());
}
if (housePlanimg1.getSize()!=0){
String picName = YijuUtil.getPicName();
house.setHouseHeadimg(picName);
images.put(picName,housePlanimg1.getBytes());
}
if (housePlanimg2.getSize()!=0){
String picName = YijuUtil.getPicName();
house.setHouseHeadimg(picName);
images.put(picName,housePlanimg2.getBytes());
}
if (houseImg1.getSize()!=0){
String picName = YijuUtil.getPicName();
house.setHouseHeadimg(picName);
images.put(picName,houseImg1.getBytes());
}
if (houseImg2.getSize()!=0){
String picName = YijuUtil.getPicName();
house.setHouseHeadimg(picName);
images.put(picName,houseImg2.getBytes());
}
if (houseImg3.getSize()!=0){
String picName = YijuUtil.getPicName();
house.setHouseHeadimg(picName);
images.put(picName,houseImg3.getBytes());
}
if (houseImg4.getSize()!=0){
String picName = YijuUtil.getPicName();
house.setHouseHeadimg(picName);
images.put(picName,houseImg4.getBytes());
}
if (houseImg5.getSize()!=0){
String picName = YijuUtil.getPicName();
house.setHouseHeadimg(picName);
images.put(picName,houseImg5.getBytes());
}
if (houseImg6.getSize()!=0){
String picName = YijuUtil.getPicName();
house.setHouseHeadimg(picName);
images.put(picName,houseImg6.getBytes());
}
session.setAttribute("house",house);
session.setAttribute("images",images);
/* Set<String>keys=images.keySet();
for (String key:keys){
MultipartFile file=images.get(key);
YijuUtil.upload(file.getBytes(),key);
}
houseViewService.postHouse(house);*/
ModelAndView mv=new ModelAndView();
mv.setViewName("housePost2");
return mv;
}
@RequestMapping("responsePost2.do")
@ResponseBody
public String responsePost2(HouseInfo houseInfo,HttpSession session){
// houseInfo.setHouseId(10001);
// houseViewService.postHouseInfo(houseInfo);
session.setAttribute("houseInfo",houseInfo);
return new JSONObject().toString();
}
@RequestMapping("responsePost3.do")
@ResponseBody
public String responsePost3(HouseInter houseInter,HttpSession session){
//houseInter.setHouseId(10013);
//houseViewService.postHouseInter(houseInter);
session.setAttribute("houseInter",houseInter);
return new JSONObject().toString();
}
@RequestMapping("doHousePost.do")
public String doHousePost(HttpSession session) throws IOException {
House house=(House)session.getAttribute("house");
house.setUserId(10001);
Map<String,byte[]>images= (Map<String, byte[]>) session.getAttribute("images");
HouseInfo houseInfo=(HouseInfo)session.getAttribute("houseInfo");
HouseInter houseInter=(HouseInter)session.getAttribute("houseInter");
houseViewService.postHouse(house);
Set<String>keys=images.keySet();
for (String key:keys){
byte[] bytes=images.get(key);
YijuUtil.upload(bytes,key);
}
houseInfo.setHouseId(house.getHouseId());
houseViewService.postHouseInfo(houseInfo);
houseInter.setHouseId(house.getHouseId());
houseViewService.postHouseInter(houseInter);
return "redirect:findHouseById.do?houseId=" + house.getHouseId();
}
}
IHouseViewDao代码
package com.yiju.dao;
import com.yiju.bean.House;
import com.yiju.bean.HouseInfo;
import com.yiju.bean.HouseInter;
import com.yiju.pojo.HouseView;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface IHouseViewDao {
List<HouseView> findFourHouseByType(@Param("houseType") int houseType);
HouseView findHouseByHouseId(int houseId);
List<HouseView> findHouseByType(@Param("houseType") int houseType);
void postHouse(House house);
void postHouseInfo(HouseInfo houseInfo);
void postHouseInter(HouseInter houseInter);
}
HouseViewService代码
package com.yiju.service.impl;
import com.github.pagehelper.PageHelper;
import com.yiju.bean.House;
import com.yiju.bean.HouseInfo;
import com.yiju.bean.HouseInter;
import com.yiju.dao.IHouseViewDao;
import com.yiju.pojo.HouseView;
import com.yiju.service.IHouseViewService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class HouseViewService implements IHouseViewService {
@Autowired IHouseViewDao houseViewDao;
@Override
public List<HouseView> findFourHouseByType(int houseType) {
return houseViewDao.findFourHouseByType(houseType);
}
@Override
public HouseView findHouseByHouseId(int houseId) {
return houseViewDao.findHouseByHouseId(houseId);
}
@Override
public List<HouseView> findHouseByType(int currentPage,int houseType) {
PageHelper.startPage(currentPage,5);
return houseViewDao.findHouseByType(houseType);
}
@Override
public void postHouse(House house) {
houseViewDao.postHouse(house);
}
@Override
public void postHouseInfo(HouseInfo houseInfo) {
houseViewDao.postHouseInfo(houseInfo);
}
@Override
public void postHouseInter(HouseInter houseInter) {
houseViewDao.postHouseInter(houseInter);
}
}
HouseMapper代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yiju.dao.IHouseViewDao">
<select id="findFourHouseByType" parameterType="int" resultType="com.yiju.pojo.HouseView">
select * from tb_house a,tb_house_info b where a.house_id=b.house_id and a.is_delete=0
and a.house_type=#{houseType} order by rand() limit 4
</select>
<select id="findHouseByHouseId" parameterType="int" resultType="com.yiju.pojo.HouseView">
select * from tb_house a,tb_house_info b where a.house_id=b.house_id and a.is_delete=0
and a.house_Id=#{houseId}
</select>
<select id="findHouseByType" parameterType="int" resultType="com.yiju.pojo.HouseView">
select * from tb_house a,tb_house_info b where a.house_id=b.house_id and a.is_delete=0
and a.house_type=#{houseType}
</select>
<insert id="postHouse" parameterType="com.yiju.bean.House" useGeneratedKeys="true" keyProperty="houseId">
insert into tb_house(user_id, house_type, house_title, house_headimg, house_planimg1, house_planimg2, house_img1, house_img2, house_img3, house_img4, house_img5, house_img6, house_price, price_unit, house_address, is_delete, create_time, update_time)
values (#{userId}, #{houseType}, #{houseTitle}, #{houseHeadimg}, #{housePlanimg1}, #{housePlanimg2}, #{houseImg1}, #{houseImg2}, #{houseImg3}, #{houseImg4}, #{houseImg5}, #{houseImg6}, #{housePrice}, #{priceUnit}, #{houseAddress}, #{isDelete}, #{createTime}, #{updateTime})
</insert>
<insert id="postHouseInfo" parameterType="com.yiju.bean.HouseInfo" useGeneratedKeys="true" keyProperty="infoId">
insert into tb_house_info(house_id, house_nature, house_model, house_year, house_valid, house_layout, house_area, house_turn, house_floor, floor_all, house_decorate, house_lift, create_time, update_time)
values (#{houseId}, #{houseNature}, #{houseModel}, #{houseYear}, #{houseValid}, #{houseLayout}, #{houseArea}, #{houseTurn}, #{houseFloor}, #{floorAll}, #{houseDecorate}, #{houseLift}, #{createTime}, #{updateTime})
</insert>
<insert id="postHouseInter" parameterType="com.yiju.bean.HouseInter" useGeneratedKeys="true" keyProperty="interId">
insert into tb_house_inter(house_id, bed, washing, air, balcony, ice, toilet, kitchen, tv, heater, wardrobe, heating, internet, sofa, create_time, update_time)
values (#{houseId}, #{bed}, #{washing}, #{air}, #{balcony}, #{ice}, #{toilet}, #{kitchen}, #{tv}, #{heater}, #{wardrobe}, #{heating}, #{internet}, #{sofa}, #{createTime}, #{updateTime})
</insert>
</mapper>