基于javaweb+mysql的springboot智能相册管理系统图片相册(java+springboot+maven+vue+mysql+redis)

基于javaweb+mysql的springboot智能相册管理系统图片相册(java+springboot+maven+vue+mysql+redis)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Node.js≥10

开发工具

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

前端:WebStorm/VSCode/HBuilderX等均可

适用

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

功能说明

基于javaweb的SpringBoot智能相册管理系统图片相册(java+springboot+maven+vue+mysql+redis)

前端启动命令:npm run serve

后端启动类:StartApplication

登录:

user1 123456

    //选择全部
    @RequestMapping("/selectAll")
    public JSONObject selectAllRecord(String token) throws ParseException {
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        Integer userId;
        if(user!=null) {
            userId = user.getUserId();
        }
        else{
            jsonObject.put("status","fail");
            return jsonObject;
        }
        List<Record> records = recordService.selectAllRecord(userId);
        jsonObject.put("status","success");
        jsonObject.put("data",records);
        return jsonObject;
    }

    //删除全部
    @RequestMapping("/deleteAll")
    public JSONObject deleteAllRecord(String token){
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        Integer userId;
        if(user!=null) {
            userId = user.getUserId();
        }
        else{
            jsonObject.put("status","fail");
            return jsonObject;
        }
        recordService.deleteAllRecord(userId);
        jsonObject.put("status","success");
        return jsonObject;
    }

    //根据ID删除
    @RequestMapping("/deleteById")
    public JSONObject deleteRecordById(String token,@RequestParam("Ids")List<Integer> Ids){
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        Integer userId;
        if(user!=null) {
            userId = user.getUserId();
        }
        else{
            jsonObject.put("status","fail");
            return jsonObject;
        }
        recordService.deleteRecordByIds(userId,Ids);
        jsonObject.put("status","success");
        return jsonObject;
    }

@Service
public class ImageServiceImpl implements ImageService {

    @Resource
    private ImageMapper imageMapper;
    @Resource
    private UserMapper userMapper;
    @Resource
    private AlbumMapper albumMapper;
    @Resource
    private RecycleMapper recycleMapper;
    @Resource
    private FileServeUtil fileServeUtil;
    @Resource
    private RecordService recordService;
//        当前系统时间
    private SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    /**
     * 普通上传
     * @param imageList
     * @param userId
     * @param albumId
     * @param albumName
     * @param imgType
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)//事务控制
    public boolean uploadImage(HttpServletRequest req,List<Image> imageList, Integer userId, Integer albumId, String albumName, String imgType) throws Exception {
    public boolean addRecord(HttpServletRequest req,String operation, Integer number, Integer userId) {
        Date date = new Date();
        Record record = new Record();
        record.setDate(date);
        record.setOperation(operation);
        record.setNumber(number);
        record.setIpv4(ipUtil.getIpAddress(req));
        record.setUserId(userId);
        recordMapper.addRecord(record);
        if(record.getId()!=null){
            return true;
        }
        return false;
    }

    /**
     * 查询所有记录
     * @param userId
     * @return
     * @throws ParseException
     */
    @Override
    public List<Record> selectAllRecord(Integer userId) throws ParseException {
        List<Record> records = recordMapper.selectAllRecord(userId);
        for(Record r:records){
            String week = dateUtil.getWeek(r.getDate());
            r.setWeek(week);
        }
        return records;
    }

    /**
     * 删除所有记录
     * @param userId
     */
    @Override
    public void deleteAllRecord(Integer userId) {
        recordMapper.deleteAllRecord(userId);
    }

    /**
    @RequestMapping("/addImageToAlbum")
    public JSONObject addImageToAlbum(HttpServletRequest req, String token, @RequestParam("imageId") List<Integer> imageId, Integer albumId ){
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        if(user==null){
            jsonObject.put("status","fail");
            return jsonObject;
        }
        albumService.addImageToAlbum(req,albumId,imageId,user.getUserId());
        jsonObject.put("status","success");
        return jsonObject;
    }
    //从相册中删除图像
    @RequestMapping("/removeImageFromAlbum")
    public JSONObject removeImageFromAlbum(HttpServletRequest req, String token, @RequestParam("imageId") List<Integer> imageId, Integer albumId ){
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        if(user==null){
            jsonObject.put("status","fail");
            return jsonObject;
        }
        albumService.removeImageToAlbum(req,albumId,imageId,user.getUserId());
        jsonObject.put("status","success");
        return jsonObject;
    }
    //新建相册
    @RequestMapping("/addAlbum")
    public JSONObject addAlbum(HttpServletRequest req,String token,String albumName){
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        if(user==null){
            jsonObject.put("status","fail");
            return jsonObject;
        }
        albumService.addAlbum(req,albumName,user.getUserId());
        jsonObject.put("status","success");
        return jsonObject;
    }
    //根据ID删除相册
    @RequestMapping("/deleteAlbumByIds")
    ImageVO selectAllImage(Integer userId, Integer currentPage, Integer pageSize);

    ImageVO selectAllImageByType(Integer userId,Integer currentPage,Integer pageSize,String imageType);

    ImageVO selectAllImageByTime(Integer userId, Integer currentPage, Integer pageSize, Date imageDate);

    AllTimeTypeVO selectTimeType(Integer userId);

    void deleteImage(Integer userId,List<Integer> imageId);
}

@Component
public class IpUtil {

    private String LOCAL_IP = "192.168.0.1";
    public  String getIpAddress(HttpServletRequest request) {
        if (request == null) {
            return "unknown";
        }
        String ip = request.getHeader("x-forwarded-for");
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("X-Forwarded-For");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("X-Real-IP");
        }

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }

        return "0:0:0:0:0:0:0:1".equals(ip) ? LOCAL_IP : ip;
    }

}

    }

    /**
     * 删除所有记录
     * @param userId
     */
    @Override
    public void deleteAllRecord(Integer userId) {
        recordMapper.deleteAllRecord(userId);
    }

    /**
     * 通过id删除记录
     * @param userId
     * @param Ids
     */
    @Override
    public void deleteRecordByIds(Integer userId, List<Integer> Ids) {
        recordMapper.deleteRecordByIds(userId,Ids);
    }

}

@RequestMapping("/visual")
@RestController
public class VisualDataController {
    @Resource
    VisualDataService visualDataService;
    @Resource
    TokenUtil tokenUtil;

    @RequestMapping("/selectTypeSite")
    public JSONObject selectTypeSite(String token) {
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        Integer userId;
        if(user!=null) {
            userId = user.getUserId();
        }
        else{
            jsonObject.put("status","fail");
            return jsonObject;
    @RequestMapping("/recoverImage")
    public JSONObject recoverImage(HttpServletRequest req,String token,@RequestParam("imageId")List<Integer> imageId){
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        Integer userId;
        if(user!=null) {
            userId = user.getUserId();
        }
        else{
            jsonObject.put("status","fail");
            return jsonObject;
        }
        System.out.println(imageId);
        recycleService.recoverImage(userId,imageId);
        jsonObject.put("status","success");
        recordService.addRecord(req,Operation.recoverImage.getName(), imageId.size(),userId);
        return jsonObject;
    }

    //删除照片
    @RequestMapping("/deleteImage")
    public JSONObject deleteImage(HttpServletRequest req, String token, @RequestParam("imageId")List<Integer> imageId){
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        Integer userId;
        if(user!=null) {
            userId = user.getUserId();
        }
        else{
            jsonObject.put("status","fail");
            return jsonObject;
        }
        recycleService.deleteImage(userId,imageId);
        jsonObject.put("status","success");

        recordService.addRecord(req, Operation.deleteImage.getName(), imageId.size(),userId);
        return jsonObject;
    }

}


@RequestMapping("/visual")
@RestController
public class VisualDataController {
    @Resource
    VisualDataService visualDataService;
    @Resource
    TokenUtil tokenUtil;

    @RequestMapping("/selectTypeSite")
    public JSONObject selectTypeSite(String token) {
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        Integer userId;
        if(user!=null) {
            userId = user.getUserId();
        }
        else{
            jsonObject.put("status","fail");
            return jsonObject;
        }

        VisualDataVO visualDataVO = visualDataService.selectTypeSite(userId);
        jsonObject.put("status","success");
        jsonObject.put("data", visualDataVO);
        return jsonObject;
    }

    @RequestMapping("/selectImageInfo")
    public JSONObject selectUserInfo(String token) {
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        Integer userId;
        if(user!=null) {
            userId = user.getUserId();
        }
        else{
            jsonObject.put("status","fail");
            return jsonObject;
        }
            imgList.add(new Image(null,fileName,fileSize,imgSite,imageUrL,compressUrL,imageDate));
        }

        int count =1;
        if(resNumber!=null)
          count = resNumber ;
          JSONArray data = imageService.AIUploadImage(req,imgList,userId,albumId,albumName,count);
        if(data.size()>0){
            jsonObject.put("status","success");
            jsonObject.put("data",data);
            //记录操作
            //
            recordService.addRecord(req,Operation.AIUploadImage.getName(), imgList.size(),userId);
        }
        else{
            for(Image i:imgList){
                String imageUrL = i.getImageUrL();
                fileServeUtil.deleteServe(imageUrL);
            }
            jsonObject.put("status","fail");
        }

    return  jsonObject;
    }
    //选择时间类型
    @RequestMapping("/selectTimeType")
    public JSONObject selectTimeType(String token){
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        Integer userId;
        if(user!=null) {
            userId = user.getUserId();
        }
        else{
            jsonObject.put("status","fail");
            return jsonObject;
        }
        AllTimeTypeVO allTimeTypeVO = imageService.selectTimeType(userId);
        jsonObject.put("data",allTimeTypeVO);
        jsonObject.put("status","success");
        return jsonObject;
    }
    //选择全部
    @RequestMapping("/selectAll")
    public JSONObject selectAllImage(String token,Integer currentPage,Integer pageSize){
        JSONObject jsonObject = new JSONObject();

@RestController
@RequestMapping("/user")
public class UserController {
    @Resource
    private TokenUtil tokenUtil;
    @Resource
    RedisUtil redisUtil;
    @Resource
    private UserService userService;  //用户服务
    @Resource
    private FileServeUtil fileServeUtil;

    //默认头像
    private String defaultAvatar = "/static/avatar/1default.jpg";

    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

    /**
     * 用户注册
     * @param userName
     * @param passWord
     * @param email
     * @param codeNumber
     * @return
     */
    @RequestMapping("/add")
    public JSONObject addUser(@RequestParam("username")String userName,@RequestParam("password")String passWord,String email,String codeNumber){
        JSONObject jsonObject = new JSONObject();
        if(userService.selectUserName(userName)!=null){
            jsonObject.put("status","exist");
            return jsonObject;
        }

        System.out.println(email);
        String redisCode = redisUtil.get(email);
        if(!codeNumber.equals(redisCode)){
            jsonObject.put("status","codeError");
            return jsonObject;
        }
        User user = new User(null,userName,passWord,null,email,null,null,null,5000,defaultAvatar);
        userService.addUser(user);
        jsonObject.put("status","success");
        return jsonObject;
    }

@RestController
@RequestMapping("/album")
public class AlbumController {
    @Resource
    AlbumService albumService;
    @Resource
    RecordService recordService;
    @Resource
    TokenUtil tokenUtil;
    //选择相册名称
    @RequestMapping("/selectAlbumName")
    public JSONObject selectAlbumName(String token){
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        if(user==null){
            jsonObject.put("status","fail");
            return jsonObject;
        }
        List<PartAlbumVO> partAlbumVOS = albumService.selectAllAlbum(user.getUserId());
        jsonObject.put("status","success");
        jsonObject.put("data", partAlbumVOS);
        return jsonObject;
    }
    //将图片添加相册
    @RequestMapping("/addImageToAlbum")
    public JSONObject addImageToAlbum(HttpServletRequest req, String token, @RequestParam("imageId") List<Integer> imageId, Integer albumId ){
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        if(user==null){
            jsonObject.put("status","fail");
            return jsonObject;
        }
        albumService.addImageToAlbum(req,albumId,imageId,user.getUserId());
        jsonObject.put("status","success");
        return jsonObject;
    }
    //从相册中删除图像
    @RequestMapping("/removeImageFromAlbum")
    public JSONObject removeImageFromAlbum(HttpServletRequest req, String token, @RequestParam("imageId") List<Integer> imageId, Integer albumId ){
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        if(user==null){
            jsonObject.put("status","fail");
            return jsonObject;
        }
        albumService.removeImageToAlbum(req,albumId,imageId,user.getUserId());

@Service
public class ImageServiceImpl implements ImageService {

    @Resource
    private ImageMapper imageMapper;
    @Resource
    private UserMapper userMapper;
    @Resource
    private AlbumMapper albumMapper;
    @Resource
    private RecycleMapper recycleMapper;
    @Resource
    private FileServeUtil fileServeUtil;
    @Resource
    private RecordService recordService;
//        当前系统时间
    private SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    /**
     * 普通上传
     * @param imageList
     * @param userId
     * @param albumId
     * @param albumName
     * @param imgType
     * @return
        Date imageDate ;

        if(imgDate.equals("null")||imgDate.equals("")){
            System.out.println(1);
            imageDate=null;
        }
        else {
            imageDate = dateFormat.parse(imgDate);
        }
       if(imgSite==null||imgSite.equals("")){
           imgSite= "其它";
       }
        List<Image> imgList = new ArrayList<>();
        //将所有上传的图片对象存入集合
        for (MultipartFile m:multipartFiles){
            String fileName = m.getOriginalFilename();
            long fileSize = m.getSize();
            String imageUrL = fileServeUtil.uploadServe("img", userName, m);

            String compressUrL = fileServeUtil.CompressImage(fileServeUtil.ServPathToAP(imageUrL), userName, (float) m.getSize());

            imgList.add(new Image(null,fileName,fileSize,imgSite,imageUrL,compressUrL,imageDate));
        }
        System.out.println(imgList);
        boolean status = imageService.uploadImage(req,imgList, userId, albumId, albumName, imgType);

        if(status){
            jsonObject.put("status","success");
            //记录操作
            //

            recordService.addRecord(req, Operation.uploadImage.getName(),imgList.size(),userId);
        }
        else{
            for(Image i:imgList){
                String imageUrL = i.getImageUrL();
                fileServeUtil.deleteServe(imageUrL);
            }

            jsonObject.put("status","fail");
        }

        return jsonObject;
    }
public class RecordServiceImpl implements RecordService {

    @Resource
    RecordMapper recordMapper;
    @Resource
    IpUtil ipUtil;
    @Resource
    DateUtil dateUtil;

    /**
     * 添加记录
     * @param operation
     * @param
     * @param number
     * @param userId
     * @return
     */
    @Override
    public boolean addRecord(HttpServletRequest req,String operation, Integer number, Integer userId) {
        Date date = new Date();
        Record record = new Record();
        record.setDate(date);
        record.setOperation(operation);
        record.setNumber(number);
        record.setIpv4(ipUtil.getIpAddress(req));
        record.setUserId(userId);
        recordMapper.addRecord(record);
        if(record.getId()!=null){
            return true;
        }
        return false;
    }

    /**
     * 查询所有记录
     * @param userId
     * @return
     * @throws ParseException
     */
    @Override
    public List<Record> selectAllRecord(Integer userId) throws ParseException {
        List<Record> records = recordMapper.selectAllRecord(userId);
        for(Record r:records){
            String week = dateUtil.getWeek(r.getDate());
            r.setWeek(week);
        }
        return records;
    }

    /**
     * 删除所有记录
     * @param userId
            return jsonObject;
        }
        else{
            jsonObject.put("status", "fail");

        }
        return jsonObject;
    }

    //更新用户
    @RequestMapping("/updateUser")
    public JSONObject updateUser(String token,String sex,String email,String phone,String city,String birthday) throws ParseException {
        JSONObject jsonObject= new JSONObject();
        User userToken = tokenUtil.jwtParser(token);
        if(userToken!=null){
            userToken.setSex(sex);
            userToken.setEmail(email);
            userToken.setPhone(phone);
            userToken.setCity(city);
        }
        else{
            jsonObject.put("status", "fail");
            return jsonObject;
        }
        Date b;
        if(birthday.equals("null")||birthday.equals("")){
            System.out.println(1);
            b=null;
        }
        else{
          b  =dateFormat.parse(birthday);
        }
        userToken.setBirthday(b);
        userService.updateUser(userToken);
        jsonObject.put("status", "success");
        return jsonObject;
    }

    @RequestMapping("/updateAvatar")
    public JSONObject updateUserAvatar(String token,@RequestParam("file") MultipartFile multipartFile) throws IOException {
        JSONObject jsonObject = new JSONObject();
        User userToken = tokenUtil.jwtParser(token);
        if(userToken==null){
            jsonObject.put("status", "fail");
            return jsonObject;
        }
        String userName = userToken.getUserName();
        //上传类型是头像,文件夹名采用用户名
        String avatarPath = fileServeUtil.uploadServe("avatar", userName, multipartFile);
        if(userToken!=null){
          userToken.setAvatar(avatarPath);
        }
        System.out.println(userToken);

@RestController
@RequestMapping("/user")
public class UserController {
    @Resource
    private TokenUtil tokenUtil;
    @Resource
    RedisUtil redisUtil;
    @Resource
    private UserService userService;  //用户服务
    @Resource
    private FileServeUtil fileServeUtil;

    //默认头像
    private String defaultAvatar = "/static/avatar/1default.jpg";

    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

    /**
     * 用户注册
     * @param userName
     * @param passWord
     * @param email
     * @param codeNumber
     * @return
     */
    @RequestMapping("/add")
    public JSONObject addUser(@RequestParam("username")String userName,@RequestParam("password")String passWord,String email,String codeNumber){
        JSONObject jsonObject = new JSONObject();
        if(userService.selectUserName(userName)!=null){
            jsonObject.put("status","exist");
            return jsonObject;
        }

        System.out.println(email);
        String redisCode = redisUtil.get(email);
        if(!codeNumber.equals(redisCode)){
        else{
            jsonObject.put("status","fail");
            return jsonObject;
        }
        recordService.deleteAllRecord(userId);
        jsonObject.put("status","success");
        return jsonObject;
    }

    //根据ID删除
    @RequestMapping("/deleteById")
    public JSONObject deleteRecordById(String token,@RequestParam("Ids")List<Integer> Ids){
        JSONObject jsonObject = new JSONObject();
        User user = tokenUtil.jwtParser(token);
        Integer userId;
        if(user!=null) {
            userId = user.getUserId();
        }
        else{
            jsonObject.put("status","fail");
            return jsonObject;
        }
        recordService.deleteRecordByIds(userId,Ids);
        jsonObject.put("status","success");
        return jsonObject;
    }
}

//记录
@RestController
@RequestMapping("/recycle")
public class RecycleController {
    @Resource
    RecycleService recycleService;
    @Resource
    RecordService recordService;
    @Resource
    TokenUtil tokenUtil;

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值