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

私信源码获取及调试交流

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

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


前台用户:

user1   123456

user2   123456

后台管理员:

admin	123456

一、项目运行 环境配置:

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

项目技术:

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

        responseBo.setResMsg("查询成功");
        responseBo.setResult(result);
        return responseBo;
    }

    @Override
    public ResponseBo selectUserLikeName(String name) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        List result = usersMapper.selectLikeName(name);
        if (result == null) {
            log.info("search方法结果 无查询结果");
            responseBo.setResMsg("查询失败");
            return responseBo;
        }
        log.info("search方法结果 出参 result:" + result);
        responseBo.setResMsg("查询成功");
        responseBo.setResult(result);
        return responseBo;
    }

    @Override
    public ResponseBo selectBanUserLikeName(String name) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        List result = usersMapper.selectBanLikeName(name);
        if (result == null) {
            log.info("search方法结果 无查询结果");
            responseBo.setResMsg("查询失败");
            return responseBo;
        }
        log.info("search方法结果 出参 result:" + result);
        responseBo.setResMsg("查询成功");
        responseBo.setResult(result);
        return responseBo;
    }

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

                responseBo.setResMsg("图片类型不支持");
                return responseBo;
            }
        }
        admins.setPic(newName);
        if (name.equals(""))
            name = admins.getName();
        admins.setName(name);
        int res = adminsMapper.updateByPrimaryKeySelective(admins);
        responseBo.setResult(admins);
        if (res == 1)
            responseBo.setResMsg("上传成功");
        else
            responseBo.setResMsg("上传失败");
        String token = TokenSign.sign(admins.getName(), String.valueOf(admins.getId()), admins.getPic());
        responseBo.setAccessToken(token);
        return responseBo;
    }

    @Caching(evict = {@CacheEvict(value = "imgscache", allEntries = true), @CacheEvict(value = "commentscache", allEntries = true)})
    @Override
    public ResponseBo deleteImgById(int imgid) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        int res = imagesMapper.deleteByPrimaryKey(imgid);
        collectsMapper.deleteByImg(imgid);
        thumbMapper.deleteByImg(imgid);
        purchaseMapper.deleteByImg(imgid);
        tagsMapper.deleteByImgid(imgid);
        commentsMapper.deleteByImgid(imgid);
        if (res == 0) {
            responseBo.setResMsg("删除失败");
            return responseBo;
        }
        responseBo.setResMsg("删除成功");
        return responseBo;
    }

    @Override
    public ResponseBo addType(String name) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        TYPES typeDB = typesMapper.selectByName(name);
        if (typeDB != null) {
            responseBo.setResMsg("类型已存在");
            return responseBo;
        }
        TYPES types = new TYPES();
        types.setName(name);
        int res = typesMapper.insert(types);
        if (res == 1) {
            responseBo.setResMsg("添加成功");
            return responseBo;
        String pass=request.getParameter("pass");
        String newpass=request.getParameter("newpass");
        String user=request.getParameter("userid");
        int userid=Integer.parseInt(user);
        try {
            responseBo=testService.updatePass(pass,newpass,userid);
        } catch (Exception e) {
            log.error("修改出错",e);
            responseBo.setResMsg("修改失败");
        }
        log.info("TestController===>updatePass方法 出参:responseBo="+responseBo);
        return responseBo;
    }

    /**
     * 功能描述:点赞
     * 作者: wangzenghui
     */

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

    /**
     * 功能描述:收藏图片
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/collect.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  collect(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
            log.error("检查失败",e);
            responseBo.setResMsg("检查失败");
        }
        return responseBo;
    }

    /**
     * 功能描述:获取已购买的图片
     * 作者: wangzenghui
     */

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

    /**
     * 功能描述:充值
     * 作者: wangzenghui
     */

    @RequestMapping("/deposit.do")
    public ResponseBo deposit(DEPOSITS deposits){
        ResponseBo responseBo=new ResponseBo();
        log.info("进入 deposit 方法");
        try {
            responseBo=testService.deposit(deposits);
        } catch (Exception e) {

    @RequestMapping(value = "/upload.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  upload(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        ResponseBo responseBoTag=new ResponseBo();
        try {
        String title=request.getParameter("title");
        String intro=request.getParameter("intro");
        String type=request.getParameter("type");
        String tags=request.getParameter("tags");
        int typeid=Integer.parseInt(type);
//        log.info("type:"+typeid);
        String token=request.getHeader("accessToken");
            String userId = TokenSign.getUserId(token);
            StandardMultipartHttpServletRequest  thisRequest = (StandardMultipartHttpServletRequest )request;
        MultipartFile file = thisRequest.getFile("pic");

            responseBo=testService.upload(file,title,intro,typeid,Integer.parseInt(userId));
            int  imgid= (int) responseBo.getResult();
            responseBoTag=testService.addAuditTags(imgid,tags);
        } catch (Exception e) {
            log.error("上传出错",e);
            responseBo.setResMsg("上传失败");
            return responseBo;
        }
        return responseBo;
    }

    /**
     * 功能描述:获取所有图片
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/getImgs.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  getImg(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        try {
            responseBo=testService.getImgs();
        } catch (Exception e) {
            log.error("查询出错",e);
            responseBo.setResMsg("查询失败");
        }
        return responseBo;
    }

    /**
     * 功能描述:充值
     * 作者: wangzenghui
     */

    @RequestMapping("/deposit.do")
    public ResponseBo deposit(DEPOSITS deposits){
        ResponseBo responseBo=new ResponseBo();
        log.info("进入 deposit 方法");
        try {
            responseBo=testService.deposit(deposits);
        } catch (Exception e) {
            log.info("deposit 方法出现异常");
            e.printStackTrace();
        }
        log.info("deposit 方法出参"+responseBo.getResMsg());
        return responseBo;
    }

    /**
     * 功能描述:添加标签
     * 作者: wangzenghui
     */

    @RequestMapping("/addTags.do")
    public ResponseBo addTags(int imgid,String tags){
        ResponseBo responseBo=new ResponseBo();
        log.info("进入 addTags 方法");
        try {
            responseBo=testService.addTags(imgid,tags);
        } catch (Exception e) {
            log.info("addTags 方法出现异常");
            e.printStackTrace();
        }
        log.info("addTags 方法出参"+responseBo.getResMsg());
        return responseBo;
    }

    /**
     * 功能描述:获取标签
     * 作者: wangzenghui
     */

    @RequestMapping("/getTags.do")
    public ResponseBo getTags(String imgid){
        ResponseBo responseBo=new ResponseBo();
        log.info("进入 getTags 方法");
        try {

        res1 = auditimagesMapper.deleteByPrimaryKey(imgid);
        audittagsMapper.deleteByImgId(imgid);
        if (res1 == 0) {
            responseBo.setResMsg("审核失败");
            return responseBo;
        }
        responseBo.setResMsg("审核成功");
        return responseBo;
    }

    @Override
    public ResponseBo getDeposits() throws Exception {
        ResponseBo responseBo = new ResponseBo();
        List list = depositsMapper.selectAll();
        if (list == null) {
            responseBo.setResMsg("获取失败");
            return responseBo;
        }
        responseBo.setResMsg("获取成功");
        responseBo.setResult(list);
        return responseBo;
    }

    @Override
    public ResponseBo addPoint(POINTS points) throws Exception {
        int id = points.getId();//deposits表id
        ResponseBo responseBo = new ResponseBo();
        POINTS selPoint = pointsMapper.selectByUid(points.getUid());
        points.setId(selPoint.getId());
        points.setPoint(selPoint.getPoint() + points.getPoint());
        int res = pointsMapper.updateByPrimaryKey(points);
        depositsMapper.deleteByPrimaryKey(id);
        if (res == 0) {
            responseBo.setResMsg("添加失败");
            return responseBo;
        }
        responseBo.setResMsg("添加成功");
        return responseBo;
    }

    @Cacheable(value = "commentscache")
    @Override
    public ResponseBo getComments() throws Exception {
        log.info("后台评论没有读缓存");
        ResponseBo responseBo = new ResponseBo();
        List list = commentsMapper.selectAll();
        if (list == null) {
            responseBo.setResMsg("获取失败");
            return responseBo;
        }

/**
 * 功能描述: 前台功能
 * 作    者: wangzenghui
 * 修改记录:
 *      <时间>            <作者>        <版本>        <描述>
 *
 */
@RestController
@RequestMapping("/hui/TestController")
@Slf4j
public class TestController {
    @Autowired
    TestService testService;

    @RequestMapping(value = "/hello.do",method = RequestMethod.GET)
    public String hello(){
        return "Hello World";
    }

    /**
     * 功能描述:用户注册
     * 作者: wangzenghui
     */
     
    @RequestMapping(value = "/reg.do",method = RequestMethod.GET)
    public ResponseBo reg(HttpServletRequest request){
        log.info("hui/TestController======>reg 进入方法");
        ResponseBo responseBo=new ResponseBo();
        USERS users=new USERS();
        try {
            String name=request.getParameter("name");
            String  password=request.getParameter("password");
            users.setName(name);
            users.setPassword(password);
            log.info("hui/TestController======>reg 进入接口,入参:person=",users);
            responseBo=testService.reg(users);
        } catch (Exception e) {
            log.error("hui/TestController======>reg 方法出错:{}",e);

    @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);
        if (res == 0) {
            responseBo.setResMsg("删除失败");
            return responseBo;
        }
        responseBo.setResMsg("删除成功");
        return responseBo;
    }

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

    @Caching(evict = {@CacheEvict(value = "imgscache", allEntries = true)})
    @Override
    public ResponseBo auditImg(int imgid) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        int res1, res2 = 0;
        AUDITIMAGES auditimages = auditimagesMapper.selectByPrimaryKey(imgid);
        List list = audittagsMapper.selectByImgid(imgid);
        IMAGES images = new IMAGES();
        images.setTypeid(auditimages.getTypeid());
        images.setUserid(auditimages.getUserid());
        images.setIntro(auditimages.getIntro());
        images.setTitle(auditimages.getTitle());

    @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
    public ResponseBo deleteType(int typeid) throws Exception {
        ResponseBo responseBo = new ResponseBo();

    /**
     * 功能描述:检测图片是否被当前用户点赞或收藏过
     * 作者: wangzenghui
     */

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

    /**
     * 功能描述:通过id获取图片
     * 作者: wangzenghui
     */

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

    /**
     * 功能描述:通过id获取用户
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/getUserById.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  getUserById(HttpServletRequest request){
        ResponseBo responseBo = new ResponseBo();

        ArrayList<String> list = StringUtil.split(tags);
        for (int i = 0; i < list.size(); i++) {
            String tag = list.get(i);
            int imgidNum = imgid;
            int res = -1;
            TAGS dataTags = tagsMapper.selectByNameAndImgid(tag, imgidNum);
            if (dataTags == null) {
                TAGS newTags = new TAGS();
                newTags.setName(tag);
                newTags.setImgid(imgidNum);
                res = tagsMapper.insert(newTags);
            }
            if (res == 0) {
                responseBo.setResMsg("插入失败");
                responseBo.setResult(i);
                return responseBo;
            }
            responseBo.setResMsg("插入成功");
        }
        return responseBo;
    }

    @Override
    public ResponseBo addAuditTags(int imgid, String tags) throws Exception {
        ResponseBo responseBo = new ResponseBo();

        ArrayList<String> list = StringUtil.split(tags);
        for (int i = 0; i < list.size(); i++) {
            String tag = list.get(i);
            int imgidNum = imgid;
            int res = -1;
            AUDITTAGS newTags = new AUDITTAGS();
            newTags.setName(tag);
            newTags.setImgid(imgidNum);
            res = audittagsMapper.insert(newTags);
            if (res == 0) {
                responseBo.setResMsg("添加失败");
                responseBo.setResult(i);
                return responseBo;
            }
            responseBo.setResMsg("添加成功");
        }
        return responseBo;
    }

    @Cacheable(value = "tagscache")
    @Override
    public ResponseBo getTags(String imgid) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        int imgidNum = Integer.parseInt(imgid);
        List list = tagsMapper.selectByImgid(imgidNum);
            int imgidNum = imgid;
            int res = -1;
            TAGS dataTags = tagsMapper.selectByNameAndImgid(tag, imgidNum);
            if (dataTags == null) {
                TAGS newTags = new TAGS();
                newTags.setName(tag);
                newTags.setImgid(imgidNum);
                res = tagsMapper.insert(newTags);
            }
            if (res == 0) {
                responseBo.setResMsg("插入失败");
                responseBo.setResult(i);
                return responseBo;
            }
            responseBo.setResMsg("插入成功");
        }
        return responseBo;
    }

    @Override
    public ResponseBo addAuditTags(int imgid, String tags) throws Exception {
        ResponseBo responseBo = new ResponseBo();

        ArrayList<String> list = StringUtil.split(tags);
        for (int i = 0; i < list.size(); i++) {
            String tag = list.get(i);
            int imgidNum = imgid;
            int res = -1;
            AUDITTAGS newTags = new AUDITTAGS();
            newTags.setName(tag);
            newTags.setImgid(imgidNum);
            res = audittagsMapper.insert(newTags);
            if (res == 0) {
                responseBo.setResMsg("添加失败");
                responseBo.setResult(i);
                return responseBo;
            }
            responseBo.setResMsg("添加成功");
        }
        return responseBo;
    }

    ADMINSMapper adminsMapper;
    @Resource
    USERSMapper usersMapper;
    @Resource
    IMAGESMapper imagesMapper;
    @Resource
    TYPESMapper typesMapper;
    @Resource
    AUDITIMAGESMapper auditimagesMapper;
    @Resource
    DEPOSITSMapper depositsMapper;
    @Resource
    POINTSMapper pointsMapper;
    @Resource
    COLLECTSMapper collectsMapper;
    @Resource
    THUMBMapper thumbMapper;
    @Resource
    PURCHASEMapper purchaseMapper;
    @Resource
    AUDITTAGSMapper audittagsMapper;
    @Resource
    TAGSMapper tagsMapper;
    @Resource
    COMMENTSMapper commentsMapper;
    @Resource
    COMPLAINSMapper complainsMapper;
    @Value("${web.upload-path}")
    private String imageDir;

    @Override
    public ResponseBo login(String name, String password) throws Exception {
        ResponseBo responseBo = new ResponseBo();
        try {
            ADMINS admins = adminsMapper.selectByName(name);
            if (admins == null) {
                responseBo.setResMsg("账号不存在");
                return responseBo;
            }
            if (!admins.getPassword().equals(password)) {
                responseBo.setResMsg("密码错误");
                return responseBo;
            }
            responseBo.setResMsg("登录成功");
            String token = TokenSign.sign(admins.getName(), String.valueOf(admins.getId()), admins.getPic());
            responseBo.setAccessToken(token);
            responseBo.setResult(admins);
        } catch (Exception e) {
            responseBo.setResMsg("登录失败");
            log.error("错误" + e);
            return responseBo;
        }
        return responseBo;

        log.info("testToken.do++++++++++++++++"+String.valueOf(TokenSign.verify(token)));

        String username = TokenSign.getUsername(token);
        String userid= TokenSign.getUserId(token);
        String userpic=TokenSign.getUserPic(token);
        USERS users=new USERS();
        users.setPic(userpic);
        users.setName(username);
        users.setId(Integer.parseInt(userid));
        responseBo.setResult(users);
        return responseBo;
    }
}

        return responseBo;
    }

    /**
     * 功能描述:获取标签
     * 作者: wangzenghui
     */

    @RequestMapping("/getTags.do")
    public ResponseBo getTags(String imgid){
        ResponseBo responseBo=new ResponseBo();
        log.info("进入 getTags 方法");
        try {
            responseBo=testService.getTags(imgid);
        } catch (Exception e) {
            log.info("getTags 方法出现异常");
            e.printStackTrace();
        }
        log.info("getTags 方法出参: "+responseBo.getResMsg());
        return responseBo;
    }

    /**
     * 功能描述:删除标签
     * 作者: wangzenghui
     */

    @RequestMapping("/delTags.do")
    public ResponseBo delTags(int tagid){
        ResponseBo responseBo=new ResponseBo();
        log.info("进入 delTags 方法");
        try {
            responseBo=testService.delTags(tagid);
        } catch (Exception e) {
            log.info("delTags 方法出现异常");
            e.printStackTrace();
        }
        log.info("delTags 方法出参: "+responseBo.getResMsg());
        return responseBo;
    }

    /**
     * 功能描述:添加评论
     * 作者: wangzenghui
     */

    @RequestMapping("/addComments.do")
            responseBo.setResMsg("注销失败");
        }
        return responseBo;
    }

    /**
     * 功能描述:获取用户积分
     * 作者: wangzenghui
     */

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

    /**
     * 功能描述:购买图片
     * 作者: wangzenghui
     */

    @RequestMapping(value = "/purchaseImg.do",method = {RequestMethod.POST, RequestMethod.GET})
    public ResponseBo  purchaseImg(HttpServletRequest request){
        ResponseBo responseBo=new ResponseBo();
        try {
            String uid=request.getParameter("userid");
            String imgid=request.getParameter("imgid");
            int uid1=Integer.parseInt(uid);
            int imgid1=Integer.parseInt(imgid);
            responseBo=testService.purchaseImg(uid1,imgid1);
        } catch (Exception e) {

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

更多推荐