基于javaweb+mysql的springboot嘟嘟图片展览馆管理系统(java+springboot+springmvc+jpa+html+maven+mysql+redis)

基于javaweb+mysql的springboot嘟嘟图片展览馆管理系统(java+springboot+springmvc+jpa+html+maven+mysql+redis)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SpringBoot嘟嘟图片展览馆管理系统(java+springboot+springmvc+jpa+html+maven+mysql+redis)

一、项目运行 环境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

项目技术:

Springboot+ SpringMVC + JPA+ Jsp + Html+ JavaScript + JQuery + Ajax + maven等等


    /**
     * 功能描述:删除举报列表
     * 作者: wangzenghui
     */

    ResponseBo delComplains(int compid) throws Exception;
}

@Component
public class LoginInterceptor implements HandlerInterceptor {

    //    在请求处理之前调用,只有返回true才会执行要执行的请求
    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {

        httpServletResponse.setCharacterEncoding("UTF-8");
        String token = httpServletRequest.getHeader("accessToken");
        if (null == token) {
            Map<String, Object> map = new HashMap<>();
            map.put("data", "token is null");
            map.put("code", "401");
            httpServletResponse.getWriter().write(new JSONObject(map).toString());
            return false;
        } else {
            boolean result = TokenSign.verify(token);
    @RequestMapping("/delComplains.do")
    public ResponseBo delComplains(int compid){
        ResponseBo responseBo=new ResponseBo();
        log.info("进入 delComplains 方法");
        try {
            responseBo=adminService.delComplains(compid);
        } catch (Exception e) {
            log.info("delComplains 方法出现异常");
            e.printStackTrace();
        }
        return responseBo;
    }
}

public interface TestService {

    /**
     * 功能描述:注册
     * 作者: wangzenghui
     */

    ResponseBo reg(USERS users) throws Exception;

    /**
     * 功能描述:登录
     * 作者: wangzenghui
     */

        return responseBo;
    }

    /**
     * 功能描述:获取根据点赞量排序的图片
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/selectAllOrderByThumb.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  selectAllOrderByThumb(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        try {
            responseBo=testService.selectAllOrderByThumb();
        } catch (Exception e) {
            log.error("获取失败",e);
            responseBo.setResMsg("获取失败");
        }
        return responseBo;
    }

    /**
     * 功能描述:根据用户id获取图片
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/getImgByUser.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  getImgByUser(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        try {
            String user=request.getParameter("userid");
            int userid=Integer.parseInt(user);
            responseBo=testService.getImgByUser(userid);
        } catch (Exception e) {
            log.error("获取失败",e);
            responseBo.setResMsg("获取失败");
        }
        return responseBo;
    }

    /**
     * 功能描述:修改图片
     * 作者: wangzenghui
     */


    /**
     * 功能描述:关注用户
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/attention.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  attention(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        try {
            String at=request.getParameter("atid");
            String fan=request.getParameter("fanid");
            int atid=Integer.parseInt(at);
            int fanid=Integer.parseInt(fan);
            responseBo=testService.attention(atid,fanid);
        } catch (Exception e) {
            log.error("关注失败",e);
            responseBo.setResMsg("关注失败");
        }
        return responseBo;
    }

    /**
     * 功能描述:取消关注
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/unattention.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  unattention(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        try {
            String at=request.getParameter("atid");
            String fan=request.getParameter("fanid");
            int atid=Integer.parseInt(at);
            int fanid=Integer.parseInt(fan);
            responseBo=testService.unattention(atid,fanid);
        } catch (Exception e) {
            log.error("取消关注失败",e);
            responseBo.setResMsg("取消关注失败");
        }
        return responseBo;
    }

    /**
     * 功能描述:注销
                    responseBo = testService.selectAudiImgLikeName(name);
                else if (type.equals("评论"))
                    responseBo = testService.selectCommentsLikeName(name);
            }
        } catch (Exception e) {
            log.error("查询失败",e);
            responseBo.setResMsg("查询失败");
        }
        return responseBo;
    }

    /**
     * 功能描述:根据类型获取图片
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/getImgsByType.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  getImgsByType(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        try {
            String type=request.getParameter("typeid");
            int typeid=Integer.parseInt(type);
            responseBo=testService.getImgsByType(typeid);
        } catch (Exception e) {
            log.error("获取失败",e);
            responseBo.setResMsg("获取失败");
        }
        return responseBo;
    }

    /**
     * 功能描述:获取根据点赞量排序的图片
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/selectAllOrderByThumb.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  selectAllOrderByThumb(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        try {
            responseBo=testService.selectAllOrderByThumb();
        } catch (Exception e) {
            log.error("获取失败",e);
            responseBo.setResMsg("获取失败");
        }
        return responseBo;
    }

    /**
     * 作者: wangzenghui
     */

    ResponseBo addComplains(COMPLAINS complains) throws Exception;

}

public interface AdminService {
    /**
     * 功能描述:管理员登录
     * 作者: wangzenghui
     */

    ResponseBo login(String name,String password) throws Exception;

    /**
     * 功能描述:获得所有用户信息
     * 作者: wangzenghui
     */

    ResponseBo getUsers() throws Exception;

    /**
     * 功能描述:通过id删除用户
     * 作者: wangzenghui
     */

    ResponseBo deleteUserById(int userid) throws Exception;

    /**
     * 功能描述:获取被封禁的用户
     * 作者: wangzenghui
     */

    ResponseBo getBanUsers() throws Exception;

    /**
     * 功能描述:封禁用户
        return responseBo;
    }

    @Override
    public ResponseBo getTypeByid(int typeid) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        TYPES types = typesMapper.selectByPrimaryKey(typeid);
        if (types == null) {
            responseBo.setResMsg("查询失败");
            return responseBo;
        }
        responseBo.setResMsg("查询成功");
        responseBo.setResult(types);
        return responseBo;
    }

    @Override
    public ResponseBo updateType(int typeid, String typename) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        int res = 0;
        TYPES newtypes = new TYPES();
        newtypes.setId(typeid);
        newtypes.setName(typename);
        res = typesMapper.updateByPrimaryKey(newtypes);
        if (res == 0) {
            responseBo.setResMsg("更新失败");
            return responseBo;
        }
        responseBo.setResMsg("更新成功");
        return responseBo;
    }

    @Override
    public ResponseBo deleteType(int typeid) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        int res = 0;

        List result = imagesMapper.selectByType(typeid);
        if (result != null && result.size() > 0) {
            responseBo.setResMsg("删除失败,该类型还有图片");
            return responseBo;
        }
        res = typesMapper.deleteByPrimaryKey(typeid);
        String token=request.getHeader("accessToken");
        if (token!=null) {
            if (TokenSign.verify(token)) {
                ADMINS admins = new ADMINS();
                admins.setName(TokenSign.getUsername(token));
                admins.setId(Integer.parseInt(TokenSign.getUserId(token)));
                admins.setPic(TokenSign.getUserPic(token));
                responseBo.setResult(admins);
                return responseBo;
            } else {
                responseBo.setResMsg("token失效");
                return responseBo;
            }
        }
        try {
            log.info("admin/AdminController======>login 进入接口,入参:name=",name);
            responseBo=adminService.login(name,password);
        } catch (Exception e) {
            log.error("admin/AdminController======>login 登录方法出错:{}",e);
            responseBo.setResMsg("登录失败");
            responseBo.setResult(e);
        }
        return responseBo;
    }

    /**
     * 功能描述:获取所有用户信息
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/getUsers.do",method = RequestMethod.GET)
    public ResponseBo getUsers(HttpServletRequest request){
        log.info("admin/AdminController======>getUsers 进入方法");
        ResponseBo responseBo=new ResponseBo();
        try {
            log.info("admin/AdminController======>getUsers 进入接口,入参:无");
            responseBo=adminService.getUsers();
        } catch (Exception e) {
            log.error("admin/AdminController======>getUsers 方法出错:{}",e);
            responseBo.setResMsg("查询失败");
            responseBo.setResult(e);
        }
        responseBo.setResult(result);
        return responseBo;
    }

    @Cacheable(value = "imgscache")
    @Override
    public ResponseBo selectAllOrderByThumb() throws Exception {
        ResponseBo responseBo = new ResponseBo();
        List result = imagesMapper.selectAllOrderByThumb();
        if (result == null) {
            log.info("获取失败");
            responseBo.setResMsg("获取失败");
            return responseBo;
        }
        log.info("selectAllOrderByThumb 方法 出参 result:" + result);
        responseBo.setResMsg("获取成功");
        responseBo.setResult(result);
        return responseBo;
    }

    @Override
    public ResponseBo getImgByUser(int userid) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        List images = imagesMapper.selectByUser(userid);
        if (images == null) {
            log.info("获取失败");
            responseBo.setResMsg("获取失败");
            return responseBo;
        }
        log.info("getImgByUser 方法 出参 result:" + images);
        responseBo.setResMsg("获取成功");
        responseBo.setResult(images);
        return responseBo;
    }

    @Caching(evict = {@CacheEvict(value = "imgscache", allEntries = true)})
    @Override
    public ResponseBo updateImg(IMAGES images) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        IMAGES imgDB = imagesMapper.selectByPrimaryKey(images.getId());
                if (type == null || type.equals("图片"))
                    responseBo = testService.selectImgLikeName(name);
                else if (type.equals("用户"))
                    responseBo = testService.selectUserLikeName(name);
                else if (type.equals("封禁用户"))
                    responseBo = testService.selectBanUserLikeName(name);
                else if (type.equals("待审核图片"))
                    responseBo = testService.selectAudiImgLikeName(name);
                else if (type.equals("评论"))
                    responseBo = testService.selectCommentsLikeName(name);
            }
        } catch (Exception e) {
            log.error("查询失败",e);
            responseBo.setResMsg("查询失败");
        }
        return responseBo;
    }

    /**
     * 功能描述:根据类型获取图片
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/getImgsByType.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  getImgsByType(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        try {
            String type=request.getParameter("typeid");
            int typeid=Integer.parseInt(type);
            responseBo=testService.getImgsByType(typeid);
        } catch (Exception e) {
            log.error("获取失败",e);
            responseBo.setResMsg("获取失败");
        }
        return responseBo;
    }

    /**
     * 功能描述:获取根据点赞量排序的图片
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/selectAllOrderByThumb.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  selectAllOrderByThumb(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        try {
            responseBo=testService.selectAllOrderByThumb();
        } catch (Exception e) {
            log.error("获取失败",e);
            responseBo.setResMsg("获取失败");
    }

    @Override
    public ResponseBo getTypes() throws Exception {
        ResponseBo responseBo = new ResponseBo();
        List result = typesMapper.selectAll();
        if (result == null) {
            responseBo.setResMsg("查询失败");
            return responseBo;
        }
        responseBo.setResMsg("查询成功");
        responseBo.setResult(result);
        return responseBo;
    }

    @Override
    public ResponseBo getTypeByid(int typeid) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        TYPES types = typesMapper.selectByPrimaryKey(typeid);
        if (types == null) {
            responseBo.setResMsg("查询失败");
            return responseBo;
        }
        responseBo.setResMsg("查询成功");
        responseBo.setResult(types);
        return responseBo;
    }

    @Override
    public ResponseBo updateType(int typeid, String typename) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        int res = 0;
        TYPES newtypes = new TYPES();
        newtypes.setId(typeid);
        newtypes.setName(typename);
        res = typesMapper.updateByPrimaryKey(newtypes);
        if (res == 0) {
            responseBo.setResMsg("更新失败");
            return responseBo;
        }
        responseBo.setResMsg("更新成功");
        return responseBo;
    }

    @Override
            ArrayList<String> names= StringUtil.split(name);
            if (names.size()>1){
                responseBo=testService.selectImgLikeName2(names);
            }else {
                if (type == null || type.equals("图片"))
                    responseBo = testService.selectImgLikeName(name);
                else if (type.equals("用户"))
                    responseBo = testService.selectUserLikeName(name);
                else if (type.equals("封禁用户"))
                    responseBo = testService.selectBanUserLikeName(name);
                else if (type.equals("待审核图片"))
                    responseBo = testService.selectAudiImgLikeName(name);
                else if (type.equals("评论"))
                    responseBo = testService.selectCommentsLikeName(name);
            }
        } catch (Exception e) {
            log.error("查询失败",e);
            responseBo.setResMsg("查询失败");
        }
        return responseBo;
    }

    /**
     * 功能描述:根据类型获取图片
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/getImgsByType.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  getImgsByType(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        try {
            String type=request.getParameter("typeid");
            int typeid=Integer.parseInt(type);
            responseBo=testService.getImgsByType(typeid);
        } catch (Exception e) {
            log.error("获取失败",e);
            responseBo.setResMsg("获取失败");
        }
        return responseBo;
    }
            responseBo.setResMsg("取消关注失败");
            return responseBo;
        }
        log.info("unattention 方法 出参 res:" + res);
        responseBo.setResMsg("取消关注成功");
        return responseBo;
    }

    @Override
    public ResponseBo logout(HttpServletRequest request) throws Exception {
        ResponseBo responseBo = new ResponseBo();

        responseBo.setResMsg("注销成功");
//        request.getSession().invalidate();
        return responseBo;
    }

    @Cacheable(value = "pointscache")
    @Override
    public ResponseBo getPoints(int uid) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        POINTS points = pointsMapper.selectByUid(uid);
        if (points == null) {
            log.info("获取失败");
            responseBo.setResMsg("获取失败");
            return responseBo;
        }
        log.info("getPoints 方法 出参 result:" + points);
        responseBo.setResMsg("获取成功");
        responseBo.setResult(points);
        return responseBo;
    }

    @Caching(evict = {@CacheEvict(value = "pointscache", allEntries = true)})
    @Override
    public ResponseBo purchaseImg(int uid, int imgid) throws Exception {
        ResponseBo responseBo = new ResponseBo();

        PURCHASE purchase = new PURCHASE();
        purchase.setImgid(imgid);
        purchase.setUid(uid);

        PURCHASE purchase1 = purchaseMapper.selectByUserAndImg(uid, imgid);
        if (purchase1 != null) {
            responseBo.setResMsg("已购买,不用再次购买");
            return responseBo;
        }
            }
            responseBo.setResMsg("查询成功");
            responseBo.setResult(result);
        } catch (Exception e) {
            responseBo.setResMsg("查询出错");
            return responseBo;
        }
        return responseBo;
    }

    @Caching(evict = {@CacheEvict(value = "commentscache", allEntries = true)})
    @Override
    public ResponseBo deleteUserById(int userid) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        commentsMapper.deleteByUserId(userid);
        int res = usersMapper.deleteByPrimaryKey(userid);
        if (res == 0) {
            responseBo.setResMsg("删除失败");
            return responseBo;
        }
        responseBo.setResMsg("删除成功");
        return responseBo;
    }

    @Override
    public ResponseBo getBanUsers() throws Exception {
        ResponseBo responseBo = new ResponseBo();
        List result = usersMapper.selectBanUsers();
        if (result == null) {
            responseBo.setResMsg("查询失败");
            return responseBo;
        }
        responseBo.setResMsg("查询成功");
        responseBo.setResult(result);
        return responseBo;
    }

    @Override
    public ResponseBo banUser(int userid) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        USERS users = new USERS();
        users.setId(userid);
        users.setBan((short) 1);
        int res = usersMapper.updateByPrimaryKeySelective(users);
        if (res == 0) {
            responseBo.setResMsg("封禁失败");
                responseBo.setResMsg("token失效");
                return responseBo;
            }
        }
        try {
            log.info("admin/AdminController======>login 进入接口,入参:name=",name);
            responseBo=adminService.login(name,password);
        } catch (Exception e) {
            log.error("admin/AdminController======>login 登录方法出错:{}",e);
            responseBo.setResMsg("登录失败");
            responseBo.setResult(e);
        }
        return responseBo;
    }

    /**
     * 功能描述:获取所有用户信息
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/getUsers.do",method = RequestMethod.GET)
    public ResponseBo getUsers(HttpServletRequest request){
        log.info("admin/AdminController======>getUsers 进入方法");
        ResponseBo responseBo=new ResponseBo();
        try {
            log.info("admin/AdminController======>getUsers 进入接口,入参:无");
            responseBo=adminService.getUsers();
        } catch (Exception e) {
            log.error("admin/AdminController======>getUsers 方法出错:{}",e);
            responseBo.setResMsg("查询失败");
            responseBo.setResult(e);
        }
        return responseBo;
    }

    /**
     * 功能描述:通过id删除用户
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/deleteUserById.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  deleteUserById(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        try {
            String userid=request.getParameter("userid");
            int userid2=Integer.parseInt(userid);
            responseBo=adminService.deleteUserById(userid2);
        } catch (Exception e) {
            log.error("删除失败",e);
            responseBo.setResMsg("删除失败");
        }
        return responseBo;
                //正确的类型,保存文件
                byte[] bytes = file.getBytes();
                newName = new Date().getTime() + "." + suffix;
//        File savedFile = new File(paths+"/src/main/resources/static/images/"+newName);//这里的路径根据自己的要求进行设置,有关路径配置的问题参考文章下半内容
                File savedFile = new File(imageDir + "/" + newName);//这里的路径根据自己的要求进行设置,有关路径配置的问题参考文章下半内容
                BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(savedFile));
                stream.write(bytes);
                stream.close();
                System.out.println("图片上传完毕,存储地址为:" + savedFile.getAbsolutePath());
            } else {
                responseBo.setResMsg("图片类型不支持");
                return responseBo;
            }
        }

        log.info("名字:" + name);
        if (name.equals(""))
            name = users.getName();
        users.setName(name);
        users.setPic(newName);
        int res = usersMapper.updateByPrimaryKeySelective(users);
        responseBo.setResult(users);
        String newToken = TokenSign.sign(users.getName(), String.valueOf(users.getId()), users.getPic());
        responseBo.setAccessToken(newToken);
        return responseBo;
    }

    @Override
    public ResponseBo updatePass(String pass, String newpass, int userid) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        int res = 0;
        USERS users = usersMapper.selectByPrimaryKey(userid);

        MD5Util md5Util = new MD5Util();
        if (!md5Util.EncoderByMd5(pass).equals(users.getPassword())) {
            responseBo.setResMsg("原密码错误");
            return responseBo;
        }

        users.setPassword(md5Util.EncoderByMd5(newpass));
        res = usersMapper.updateByPrimaryKey(users);

    /**
     * 功能描述:获得充值表数据
     * 作者: wangzenghui
     */

    ResponseBo getDeposits() throws Exception;

    /**
     * 功能描述:添加积分,删除充值表
     * 作者: wangzenghui
     */

    ResponseBo addPoint(POINTS points) throws Exception;

    /**
     * 功能描述:获取评论
     * 作者: wangzenghui
     */

    ResponseBo getComments() throws Exception;

    /**
     * 功能描述:获取举报列表
     * 作者: wangzenghui
     */

    ResponseBo getComplains() throws Exception;

    /**
     * 功能描述:删除举报列表
     * 作者: wangzenghui
     */

    ResponseBo delComplains(int compid) throws Exception;
}

     */

    ResponseBo addComments(COMMENTS comments,int imgid) throws Exception;

    /**
     * 功能描述:获取评论
     * 作者: wangzenghui
     */

    ResponseBo getComments(int imgid) throws Exception;

    /**
     * 功能描述:删除评论
     * 作者: wangzenghui
     */

    ResponseBo delComments(int comid) throws Exception;

    /**
     * 功能描述:举报评论
     * 作者: wangzenghui
     */

    ResponseBo addComplains(COMPLAINS complains) throws Exception;

}

public interface AdminService {
    /**
     * 功能描述:管理员登录
     * 作者: wangzenghui
     */

    ResponseBo login(String name,String password) throws Exception;

    /**

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值