开发环境及工具:
Jdk1.8,大于mysql5.7,idea(eclipse),vscode(webstorm)
已经配好myBatis代码生成插件,整体架构,逻辑清晰,可以轻松二次开发
一、界面
1.部分代码
package com.xynanan.www.controller;
import com.xynanan.www.ctx.KvMap;
import com.xynanan.www.ctx.PageResult;
import com.xynanan.www.entity.*;
import com.xynanan.www.fs.FileService;
import com.xynanan.www.fs.FsFactory;
import com.xynanan.www.pk.IpfPkGenerator;
import com.xynanan.www.service.CommentService;
import com.xynanan.www.service.HouseService;
import com.xynanan.www.service.HouseUserService;
import com.xynanan.www.service.PictureService;
import com.xynanan.www.util.StringUtils;
import com.xynanan.www.util.JsonUtils;
import com.xynanan.www.utils.JwtUtils;
import com.xynanan.www.vo.CommentVO;
import com.xynanan.www.vo.HouseParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @version 2022/4/14 13:10
* <房源>
**/
@RestController
@RequestMapping("house")
public class HouseController {
@Autowired
HouseService houseService;
@Autowired
PictureService pictureService;
@Autowired
HouseUserService houseUserService;
@Autowired
CommentService commentService;
private FileService fileService = FsFactory.tempFileService();
/**
* 新增房源
* @param param
* @return
*/
@PostMapping("add")
@Transactional
public String add(@RequestBody HouseParam param, HttpServletRequest request) throws IOException {
if (StringUtils.isNotBlank(param.getFileId())) {
param.setBlobCover(fileService.readByte(param.getFileId()));
}
String userId = JwtUtils.get(request, "userId");
Long pkHouse = IpfPkGenerator.generateSnow();
param.setPkHouse(pkHouse);
//新增房源
houseService.add(param, Long.parseLong(userId));
//新增图片
for (String fileId : param.getPictures()) {
Picture picture = new Picture();
picture.setPkHouse(pkHouse);
picture.setBlobPicture(fileService.readByte(fileId));
pictureService.insert(picture);
}
return null;
}
@GetMapping("delete")
@Transactional
public String delete(@RequestParam String pkHouse) {
Long id = Long.parseLong(pkHouse);
//删除房源
houseService.delete(id);
//删除图片
pictureService.deleteByHouse(id);
return null;
}
@GetMapping("getHouse")
public Map<String, Object> getHouse(@RequestParam String pkHouse) {
Long id = Long.parseLong(pkHouse);
HouseWithBLOBs house = houseService.getItemWithBlobs(id);
List<Picture> pictures = pictureService.getPicturesByHouse(id);
//查询房东信息
HouseUser user = houseUserService.getUserWithUserNamePassword(house.getPkHouseUser());
//查询评论
List<CommentVO> comments = commentService.getCommentsByHouse(house.getPkHouse());
Map<String, Object> map = new HashMap<>();
map.put("house", house);
map.put("pictures", pictures);
map.put("user", user);
map.put("comments", comments);
return map;
}
/**
* 不用审核和出租条件
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("queryHouseByUser")
public PageResult<HouseWithBLOBs> queryHouseByUser(int pageNum, int pageSize, HttpServletRequest request) {
String userId = JwtUtils.get(request, "userId");
//查询评论数量
return houseService.queryHouseByUser(Long.parseLong(userId), pageNum, pageSize);
}
/**
* 需要查询已审核和未出租
* @param keyword
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("queryHouseByKeyword")
public PageResult<HouseWithBLOBs> queryHouseByKeyword(@RequestParam String keyword, int pageNum, int pageSize) {
KvMap map = JsonUtils.toObject(KvMap.class, keyword);
//查询评论数量
return houseService.queryHouseByKeyword(map, pageNum, pageSize);
}
/**
* 需要查询已审核和未出租
* @param keyword
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("queryHouseByKeywordAuditList")
public PageResult<House> queryHouseByKeywordAuditList(@RequestParam String keyword, int pageNum, int pageSize) {
KvMap map = JsonUtils.toObject(KvMap.class, keyword);
//查询评论数量
return houseService.queryHouseByKeywordAuditList(map, pageNum, pageSize);
}
/**
* 需要查询已审核和未出租
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("queryHotHouse")
public PageResult<HouseWithBLOBs> queryHotHouse(int pageNum, int pageSize) {
//查询评论数量
return houseService.queryHotHouse(pageNum, pageSize);
}
@GetMapping("plusPraiseCount")
public String plusPraiseCount(@RequestParam String pkHouse) {
houseService.plusPraiseCount(Long.parseLong(pkHouse));
return null;
}
/**
* 更改审核状态
* @param pkHouses
* @param auditStatus
* @return
*/
@PostMapping("changeAuditStatus")
public String changeAuditStatus(@RequestBody List<Long> pkHouses, Byte auditStatus) {
for (Long pkHouse : pkHouses) {
houseService.changeAuditStatus(pkHouse, auditStatus);
}
return null;
}
/**
* 更改出租状态
* @param pkHouse
* @param leaseStatus
* @return
*/
@GetMapping("changeLeaseStatus")
public String changeLeaseStatus(@RequestParam String pkHouse, Byte leaseStatus) {
houseService.changeLeaseStatus(Long.parseLong(pkHouse), leaseStatus);
return null;
}
}
2.源码获取
由于开发成本,本人不接受免费获取哈,需要支付一点点费用,包你使用和方便的二次开发
VX:xyn0217-
请注明来意!!!