发表于: 2019-11-04 20:07:57

2 764


今天完成的事:
1、添加banner增加、上架banner展示、根据banner的id查询作品url的接口。
编写完banner添加service后,进行测试,报错如下。


认为是spring的全局配置文件读取错误,而且所有的mapper的bean错误创建。因为之前其他测试都没问题,这里突然出了毛病,就用之前的留言查询测试,发现也是一样的报错,就认为是扫描包的时候出了问题,导致bean的自动注入出错,一通操作都没解决,最后看到了一个非常精辟的答案!!
果然最后一个错误是个奇怪的报错。


这个报错说没找到这种类型的别名,也找不到这个类,就很纳闷,这是个什么东西,因为banner查询的sql语句入参是boolean,所以回头看了看sql语句,结果发现是把入参类型错写成“Blooean”。
没想到会是这里出了问题就会导致所有的mapper的bean报错错误创建。。果然是一点也马虎不得。。

改过来后测试查询,成功。

编写banner的封面添加。

成功添加,并显示图片。

下图为上架banner展示接口返回的json数据。

下图为根据banner的id查询作品url返回的json数据。

mapper的sql语句:

controller类:
// 添加banner接口
    @RequestMapping(value = "/banner/add",method = RequestMethod.POST)
    @ResponseBody
    public ModelAndView insertBanner(Banner banner, MultipartFile multipartFile,ModelAndView mav) throws IOException {
        // 调用 ImageUtil 类的图片上传方法,返回图片的上传路径
        String coverName = ImageUtil.upload(multipartFile);
        banner.setCover(coverName);
        banner.setStatus(false);
        banner.setCreateAt(System.currentTimeMillis());
        banner.setUpdateAt(System.currentTimeMillis());
        banner.setUpdateBy("最后修改人");
        Boolean flag = bannerService.insertBanner(banner);
        Map<String,String> map = new HashMap<>();
        if(flag == true){
            map.put("code","1");
            map.put("message","添加成功");
        }else {
            map.put("code","0");
            map.put("message","添加失败");
        }
        mav.setViewName("image");
        return mav;
    }
    // 将上架的banner展示,最多6个
    @RequestMapping(value = "/banners",method = RequestMethod.GET)
    @ResponseBody
    public List<Banner> selectBannerByStatus(){
        List<Banner> banners = bannerService.selectBannerByStatus(true);
        return banners;
    }
    // 根据banner的id,查询对应的作品url,进而查看作品
    @RequestMapping(value = "/banner/{id}",method = RequestMethod.GET)
    @ResponseBody
    public String selectUrlById(@PathVariable Integer id){
        String bannerUrl = bannerService.selectUrlById(id);
        return bannerUrl;
    }
2、添加工作室增加、上架工作室展示接口。
下图为上架工作室展示接口返回的json数据。

实现工作室多图片上传功能,最多5个图片。

尝试多图片上传,报错。

百度说是需要使用注解绑定参数,如下。

多图片上传成功。

mapper的sql语句:

controller类:
// 添加工作室简介,5个图片上传
    @RequestMapping(value = "/studio/add",method = RequestMethod.POST)
    @ResponseBody
    public ModelAndView insertStudio(Studio studio,
                 @RequestParam(value = "multipartFile")MultipartFile[] multipartFile, ModelAndView mav) throws IOException {
        studio.setStatus(false);
        List<String> imagesPathList = new ArrayList<>();
        for (MultipartFile file : multipartFile) {
            // 调用 ImageUtil 类的图片上传方法,返回图片的上传路径
            String pictureName = ImageUtil.upload(file);
            imagesPathList.add(pictureName);
        }
        studio.setPicture1(imagesPathList.get(0));
        studio.setPicture2(imagesPathList.get(1));
        studio.setPicture3(imagesPathList.get(2));
        studio.setPicture4(imagesPathList.get(3));
        studio.setPicture5(imagesPathList.get(4));
        studio.setCreateAt(System.currentTimeMillis());
        studio.setUpdateAt(System.currentTimeMillis());
        studio.setUpdateBy("最后修改");
        Boolean flag = studioService.insertStudio(studio);
        Map<String,String> map = new HashMap<>();
        if (flag == true){
            map.put("code","1");
            map.put("message","添加成功");
        }else {
            map.put("code", "0");
            map.put("message", "添加失败");
        }
        mav.addObject("imagesPathList",imagesPathList);
        mav.setViewName("image");
        return mav;
    }
    // 根据上架状态,查看工作室简介
    @RequestMapping(value = "/studios",method = RequestMethod.GET)
    @ResponseBody
    public List<Studio> selectStudioByStatus(){
        List<Studio> studios = studioService.selectStudioByStatus(true);
        return studios;
    }
图片添加的jsp。

图片显示的jsp。

明天计划的事:
1、整理代码,规范接口。
2、查看接口响应时间,进行调整优化。学习postman的用法。
3、尝试编写部分后台功能接口。
遇到的问题:
因为失误写错了sql语句入参类型,找错找了半天,还好找到了问题,以后要小心谨慎。
代码还有比较乱,需要整理整理,规范一下。
收获:
1、添加banner增加、上架banner展示、根据banner的id查询作品url的接口。
2、添加工作室增加、上架工作室展示接口, 实现工作室多图片上传功能,最多5个图片。

返回列表 返回列表
评论

    分享到