** * 发布房子提交 * @return */ @RequestMapping("/publish/submit") @ResponseBody public JsonResult publishSubmit(House house, @RequestParam("key")String key, HttpSession session){ try { if(house.getId() == null){ //新增 house.setCreateTime(new Date()); house.setUserId(getLoginUserId()); }else { //修改 House queryHouse = houseService.get(house.getId()); if(queryHouse==null){ return JsonResult.error("发布失败,没有这个房子"); } //如果不是管理员权限又要编辑别人的房子,跳转403 if(!loginUserIsAdmin() && !Objects.equals(house.getUserId(),getLoginUserId())){ return JsonResult.error("发布失败,你不能编辑别人的房子"); } } house.setStatus(HouseStatusEnum.NOT_CHECK.getValue()); //获取轮播图 String sessionKey = Constant.SESSION_IMG_PREFIX + key; List<String> imgList = (List<String>) session.getAttribute(sessionKey); if(imgList!=null&&imgList.size()>0){ //把轮播图转换成json格式存储 house.setSlideUrl(JSON.toJSONString(imgList)); //把轮播图的第一个图放到缩略图 house.setThumbnailUrl(imgList.get(0)); } houseService.insertOrUpdate(house); }catch (Exception e){ return JsonResult.error("发布失败,请填写完整信息"); } return JsonResult.success("发布成功",house.getId()); }
时间: 2024-02-14 22:20:57 浏览: 96
springmvc关于@requestMapping和@requestParam的使用
这段代码是一个Java Spring MVC的控制器方法,用于处理请求路径为"/admin/house/publish/submit"的POST请求,并返回一个Json格式的数据。
该方法使用了@RequestParam注解,获取了一个请求参数key,其为必需参数,用于获取上传的房屋图片信息。
在方法体内,首先判断House对象house的id是否为空,如果为空,则表示是新增房屋信息,需要设置房屋的创建时间和用户ID;如果不为空,则表示是修改房屋信息,需要查询出对应的房屋信息,并判断当前登录用户是否为管理员或者房屋的userID是否与当前登录用户的ID一致。如果不是管理员且房屋的userID不属于当前登录用户,则返回一个错误信息的Json数据。
接着,将房屋的状态设置为未审核状态,并获取上传的轮播图信息,并将该信息转换为JSON格式存储到房屋对象的slideUrl属性中。同时,将轮播图中的第一张图作为房屋的缩略图,并设置到房屋对象的thumbnailUrl属性中。最后,调用houseService的insertOrUpdate方法,将房屋对象插入或更新到数据库中,如果操作成功,则返回一个成功信息的Json数据,否则返回一个错误信息的Json数据。
阅读全文