** * 发布房子提交 * @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 19:20:57 浏览: 93
这段代码是一个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数据。
相关问题
/** * 提交申诉 * */ @RequestMapping("/appeal") @ResponseBody public R appeal(Appeal appeal){ return appealService.appeal(appeal); } //删除 @RequestMapping("/appeal/del") @ResponseBody public R del(String id){ return appealService.removeById(id); } //操作 @RequestMapping("/appeal/action") @ResponseBody public R action(Integer id, Integer status){ return appealService.action(id, status); }
这是一个 Java Spring MVC 的控制器类,包含了三个处理 HTTP 请求的方法。第一个是 "/appeal" 路径的 POST 请求,用于提交申诉,请求体包含一个 Appeal 对象,返回结果为 R 对象。第二个是 "/appeal/del" 路径的 GET 请求,用于删除申诉,请求参数为 id,返回结果为 R 对象。第三个是 "/appeal/action" 路径的 GET 请求,用于修改申诉状态,请求参数为 id 和 status,返回结果为 R 对象。其中 R 对象是一个封装了请求结果的类,包含了状态码和消息。
/** * 回复反馈 */ @RequestMapping(value = "/admin/feedback/reply/submit",method = RequestMethod.POST) @ResponseBody public JsonResult replySubmit(Feedback feedback){ feedbackService.update(feedback); return JsonResult.success("保存成功"); } /** * 删除反馈 */ @RequestMapping("/admin/feedback/delete") @ResponseBody public JsonResult deleteFeedback(@RequestParam("id")Long id){ try{ Feedback feedback = feedbackService.get(id); if(feedback==null){ return JsonResult.error("反馈不存在"); } if(!loginUserIsAdmin() && !Objects.equals(feedback.getUserId(),getLoginUserId())){ return JsonResult.error("没有权限删除,这不是你的反馈"); } feedbackService.delete(id); }catch (Exception e){ return JsonResult.error("删除反馈失败"); } return JsonResult.success("删除反馈成功"); } }
这段代码是FeedbackController类中的另外两个方法,用于回复反馈和删除反馈操作。replySubmit方法是一个请求映射方法,用于处理/admin/feedback/reply/submit请求,它使用FeedbackService来更新反馈信息,并返回一个JsonResult对象表示操作结果。deleteFeedback方法也是一个请求映射方法,用于处理/admin/feedback/delete请求,它使用FeedbackService来删除指定id的反馈信息,并返回一个JsonResult对象表示操作结果。在删除反馈前,它还会判断当前用户是否为管理员或反馈的创建者,如果不是则无权删除,并返回相应的错误信息。
阅读全文