Springboot+Vue实现前后端分离校园二手交易平台

简介: 校内师生可以在此平台上注册自己的账户,然后发布自己想要处理的二手物品,平台本身不实现在线交易功能,发布的二手物品由买卖双方自行联系进行线下交易。作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师。主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助。查看我发布的商品:可以进行商品上下架 和删除操作。

项目编号:BS-PT-066

一,项目简介

本项目基于springboot+vue实现了一个前后端分离模式的校园二手交易平台。校内师生可以在此平台上注册自己的账户,然后发布自己想要处理的二手物品,平台本身不实现在线交易功能,发布的二手物品由买卖双方自行联系进行线下交易。主要实现的功能有用户注册、登陆、发布商品、收藏商品、统计浏览量和收藏量、在线留言、全文检索、管理个人发布的商品和留言等功能。系统功能完整,业务模式清晰,开发结构简单,比较符合目前后端分离模式开发的主流诉求,可以用作毕业设计或课程设计以及期未作业使用。

二,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7   REDIS缓存数据库

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

后台开发技术:springboot+mybatisplus+jdk8+mysql5.6

前后台开发技术:VUE+ElementsUI

三,系统展示

image.gif编辑

用户登陆注册

image.gif编辑

image.gif编辑

发布二手物品

image.gif编辑

查看详情

image.gif编辑

查看我的收藏

image.gif编辑

查看我发布的商品:可以进行商品上下架 和删除操作

image.gif编辑

管理我发布的留言

image.gif编辑

四,核心代码展示

package cn.fleamarket.controller;
import cn.fleamarket.common.R;
import cn.fleamarket.domain.Favorites;
import cn.fleamarket.domain.User;
import cn.fleamarket.service.FavoritesService;
import cn.fleamarket.service.UserService;
import cn.fleamarket.utils.StringTool;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
/**
 * 产品收藏表
 *
 * @author znz
 * @date 2022-09-12 10:46:22
 */
@RestController
@RequestMapping("/favorites")
public class FavoritesController {
    @Autowired
    private FavoritesService favoritesService;
    @Autowired
    UserService userService;
    @PostMapping(value = "/favoriteList", produces = "application/json")
    @ApiOperation("收藏分页查询列表,入参是page:第几页,number:每页几条")
    public R<List<Favorites>> favoritesList(@RequestBody Map<String,Object> params) {
        if (Objects.isNull(params)) {
            return R.error("参数错误!");
        }
        User nowUser = userService.qureyByUserName(params.getOrDefault("username","").toString());
        if (Objects.isNull(nowUser)) {
            return R.error("用户未登录!");
        }
        params.put("userId",nowUser.getId());
        Page<Favorites> favoritesPage = favoritesService.selectListPage(params);
        List<Favorites> data = favoritesPage
                .getRecords().stream()
                .filter(distinctByKey(Favorites::getProductId))
                .collect(Collectors.toList());
        return R.pageBuild(favoritesPage.getTotal(),
                favoritesPage.hasNext(),
                favoritesPage.hasPrevious(), data);
    }
    @PostMapping(value = "/addFavorites", produces = "application/json")
    @ApiOperation("添加收藏,pid:商品id")
    public JSONObject addFavorites(@RequestBody JSONObject jsonObject, HttpServletRequest request, HttpServletResponse response) {
        JSONObject ret = new JSONObject();
        User user = null;
        try {
            user =  userService.qureyByUserName(jsonObject.getString("username"));
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            List<Favorites> list = favoritesService.selectByUid(user.getId());
            if (list.size() != 0) {
                for (int i = 0; i < list.size(); i++) {
                    if (list.get(i).getProductId().equals(jsonObject.getString("pid"))) {
                        ret.put("code", -1);
                        ret.put("data", false);
                        ret.put("msg", "添加失败");
                        return ret;
                    }
                }
            }
            if (user != null) {
                String productId = jsonObject.getString("pid");
                Integer state = jsonObject.getInteger("state");
                Favorites favorites = new Favorites();
                favorites.setId(StringTool.getUUID());
                favorites.setUserId(user.getId());
                favorites.setProductId(productId);
                favorites.setCreateTime(new Date());
                favorites.setState(state);
                Integer isS = favoritesService.addFavorites(favorites);
                if (isS > 0) {
                    ret.put("data", true);
                    ret.put("code", 0);
                    ret.put("msg", "添加成功");
                } else {
                    ret.put("code", -1);
                    ret.put("data", false);
                    ret.put("msg", "添加失败");
                }
            } else {
                ret.put("msg", "用户未登录");
            }
        } catch (Exception e) {
            e.printStackTrace();
            ret.put("code", -1);
            ret.put("data", false);
            ret.put("msg", "未知错误");
        }
        return ret;
    }
    @PostMapping(value = "/deleteFavorites", produces = "application/json")
    @ApiOperation("删除收藏,fid:收藏id")
    public JSONObject deleteFavorites(@RequestBody JSONObject jsonObject, HttpServletRequest request, HttpServletResponse response) {
        JSONObject ret = new JSONObject();
        User user = null;
        try {
            user = userService.qureyByUserName(jsonObject.getString("username"));
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            if (user != null) {
                String fid = jsonObject.getString("fid");
                Integer isS = favoritesService.deleteFavorites(fid);
                if (isS > 0) {
                    ret.put("code", 0);
                    ret.put("data", true);
                    ret.put("msg", "删除成功");
                }
            } else {
                ret.put("msg", "用户未登录");
            }
        } catch (Exception e) {
            e.printStackTrace();
            ret.put("code", -1);
            ret.put("data", false);
            ret.put("msg", "删除失败");
        }
        return ret;
    }
    private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
        Map<Object, Boolean> seen = new ConcurrentHashMap<>();
        return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
    }
}

image.gif

package cn.fleamarket.controller;
import cn.fleamarket.common.R;
import cn.fleamarket.config.PathConfig;
import cn.fleamarket.domain.Image;
import cn.fleamarket.service.ImageService;
import cn.fleamarket.utils.StringTool;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.Objects;
/**
 * 图片表
 *
 * @author znz
 * @date 2022-09-12 10:46:22
 */
@RestController
@RequestMapping("/image")
@Api("图片接口")
@CrossOrigin
public class ImageController {
    @Autowired
    ImageService imageService;
    @Autowired
    private PathConfig pathConfig;
    /**
     * 上传img
     *
     * @param file 文件
     * @return {@link JSONObject}
     */
    @SneakyThrows
    @PostMapping("/uploadImg")
    @ApiOperation("图片上传")
    public R<String> uploadImg(MultipartFile file) {
        JSONObject ret = new JSONObject();
        String fileName = file.getOriginalFilename();
        String newFileName = StringTool.getUUID() + Objects.requireNonNull(fileName).substring(fileName.indexOf("."));
        Image image = new Image();
        File file1;
        String os = System.getProperty("os.name");
        if (os.toLowerCase().startsWith("win")) {
            file1 = new File(pathConfig.getWinPath(), newFileName);
        } else {
            file1 = new File(pathConfig.getWinPath(), newFileName);
        }
        if (!file1.exists()) {
            System.out.println(file1.mkdir());
        }
        file.transferTo(file1);
        image.setId(StringTool.getUUID());
        image.setImgUrl(newFileName);
        imageService.insert(image);
        return R.ok(0,"图片上传成功",File.separator + "static" + File.separator + "img" + File.separator + image.getImgUrl());
    }
}

image.gif

package cn.fleamarket.controller;
import cn.fleamarket.domain.Message;
import cn.fleamarket.domain.User;
import cn.fleamarket.service.MessageService;
import cn.fleamarket.service.UserService;
import cn.fleamarket.utils.StringTool;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 留言接口
 */
@RestController
@RequestMapping("/message")
@Api("留言接口")
public class MessageController {
    @Autowired
    MessageService messageService;
    @Autowired
    UserService userService;
    @PostMapping(value = "/messageList", produces = "application/json")
    @ApiOperation("分页查询留言列表,入参是page:第几页,number:每页几条,pId:属于哪个商品的id")
    public JSONObject messageList(@RequestBody JSONObject jsonObject) {
        JSONObject ret = new JSONObject();
        try {
            Long page = jsonObject.getLong("page");
            Long number = jsonObject.getLong("number");
            String pId = jsonObject.getString("pId");
            Map<String, Object> map = new HashMap<>();
            map.put("page", page);
            map.put("number", number);
            map.put("pId", pId);
            if (page != null && number != null) {
                Page<Message> messagePage = messageService.selectListPage(map);
                List<Message> messagesList = messagePage.getRecords();
                ret.put("code", 0);
                ret.put("data", StringTool.ListToJsonArray(messagesList));
                ret.put("total", messagePage.getTotal());//总数
                ret.put("next", messagePage.hasNext());//下一页
                ret.put("previous", messagePage.hasPrevious());//上一页
                ret.put("msg", "查询成功");
            }
        } catch (Exception e) {
            e.printStackTrace();
            ret.put("code", -1);
            ret.put("data", null);
            ret.put("msg", "查询失败");
        }
        return ret;
    }
    @PostMapping("/addMessage")
    @ApiOperation("新增留言接口,text:留言内容,tid:发送人(不用填),fid:接受人(填商品id)")
    public JSONObject addMessage(@RequestBody JSONObject jsonObject, HttpServletRequest request) {
        JSONObject ret = new JSONObject();
        Message message = new Message();
        try {
            User user = userService.qureyByUserName(jsonObject.getString("username"));
            message.setTid(user.getId());
            message.setTime(new Date());
            message.setId(StringTool.getUUID());
            message.setFid(jsonObject.getString("fid"));
            message.setText(jsonObject.getString("text"));
            if (messageService.addMessage(message) > 0) {
                ret.put("code", 0);
                ret.put("data", true);
                ret.put("msg", "新增留言成功");
            } else {
                ret.put("code", -1);
                ret.put("data", false);
                ret.put("msg", "新增留言失败");
            }
        } catch (Exception e) {
            e.printStackTrace();
            ret.put("code", -1);
            ret.put("data", false);
            ret.put("msg", "新增留言失败");
        }
        return ret;
    }
    @PostMapping(value = "/messageListByUser", produces = "application/json")
    @ApiOperation("分页查询我的留言,入参是page:第几页,number:每页几条")
    public JSONObject productListByUser(@RequestBody JSONObject jsonObject, HttpServletRequest request) {
        JSONObject ret = new JSONObject();
        try {
            Long page = jsonObject.getLong("page");
            Long number = jsonObject.getLong("number");
            Map<String, Object> map = new HashMap<>();
            User user = userService.qureyByUserName(jsonObject.getString("username"));
            map.put("page", page);
            map.put("number", number);
            map.put("userId", user.getId());
            if (page != null && number != null) {
                Page<Message> messagePage = messageService.selectListPageByUser(map);
                List<Message> messageList = messagePage.getRecords();
                ret.put("code", 0);
                  ret.put("data", StringTool.ListToJsonArray(messageList));
                ret.put("total", messagePage.getTotal());//总数
                ret.put("next", messagePage.hasNext());//下一页
                ret.put("previous", messagePage.hasPrevious());//上一页
                ret.put("msg", "查询成功");
            }
        } catch (Exception e) {
            ret.put("code", -1);
            ret.put("data", null);
            ret.put("msg", "查询失败");
            e.printStackTrace();
        }
        return ret;
    }
    @PostMapping("/delete")
    @ApiOperation("删除留言接口,主要传留言id即可")
    public JSONObject delete(@RequestBody JSONObject jsonObject, HttpServletRequest request) {
        JSONObject ret = new JSONObject();
        String pId = jsonObject.getString("id");
        User user = null;
        try {
            user = userService.qureyByUserName(jsonObject.getString("username"));
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            int i = messageService.delete(user.getId(), pId);
            if (i > 0) {
                ret.put("code", "0");
                ret.put("data", true);
                ret.put("msg", "删除留言成功");
            } else {
                ret.put("code", "-1");
                ret.put("data", false)        ;
                ret.put("msg", "删除留言失败");
            }
        } catch (Exception e) {
            ret.put("code", "-1");
            ret.put("data", false);
            ret.put("msg", "删除留言失败");
            e.printStackTrace();
        }
        return ret;
    }
}

image.gif

package cn.fleamarket.controller;
import java.util.*;
import cn.fleamarket.domain.Product;
import cn.fleamarket.domain.User;
import cn.fleamarket.service.MessageService;
import cn.fleamarket.service.ProductService;
import cn.fleamarket.service.UserService;
import cn.fleamarket.utils.StringTool;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
 * 商品表
 *
 * @author znz
 * @email ${email}
 * @date 2022-09-12 10:46:22
 */
@RestController
@RequestMapping("/product")
@Api("商品接口")
public class ProductController {
    @Autowired
    ProductService productService;
    @Autowired
    UserService userService;
    @Autowired
    MessageService messageService;
    @PostMapping(value = "/productList", produces = "application/json")
    @ApiOperation("分页查询列表,入参是page:第几页,number:每页几条,key:查询条件(可选)")
    public JSONObject productList(@RequestBody JSONObject jsonObject) {
        JSONObject ret = new JSONObject();
        try {
            Long page = jsonObject.getLong("page");
            Long number = jsonObject.getLong("number");
            String key = jsonObject.getString("key");
            JSONArray jsonArray = jsonObject.getJSONArray("pId");
            Map<String, Object> map = new HashMap<>();
            map.put("page", page);
            map.put("number", number);
            map.put("key", key);
            if (page != null && number != null) {
                Page<Product> productPage = productService.selectListPage(map);
                List<Product> productList = productPage.getRecords();
                ret.put("code", 0);
                ret.put("data", StringTool.ListToJsonArray(productList));
                ret.put("total", productPage.getTotal());//总数
                ret.put("next", productPage.hasNext());//下一页
                ret.put("previous", productPage.hasPrevious());//上一页
                ret.put("msg", "查询成功");
                return ret;
            }
            if (jsonArray.size() != 0 && jsonArray != null) {
                List<Product> list = new ArrayList<>();
                for (int i = 0; i < jsonArray.size(); i++) {
                    Product product = productService.selectById(jsonArray.get(i).toString());
                    list.add(product);
                }
                ret.put("code", 0);
                ret.put("data", StringTool.ListToJsonArray(list));
                ret.put("msg", "查询成功");
                return ret;
            }
        } catch (Exception e) {
            ret.put("code", -1);
            ret.put("data", null);
            ret.put("msg", "查询失败");
        }
        return ret;
    }
    @PostMapping(value = "/productListByUser", produces = "application/json")
    @ApiOperation("分页查询属于某个用户的商品列表,就是我发布的商品,入参是page:第几页,number:每页几条")
    public JSONObject productListByUser(@RequestBody JSONObject jsonObject, HttpServletRequest request) {
        JSONObject ret = new JSONObject();
        try {
            Long page = jsonObject.getLong("page");
            Long number = jsonObject.getLong("number");
            Map<String, Object> map = new HashMap<>();
            User user = userService.qureyByUserName(jsonObject.getString("username"));
            map.put("page", page);
            map.put("number", number);
            map.put("userId", user.getId());
            if (page != null && number != null) {
                Page<Product> productPage = productService.selectListPageByUser(map);
                List<Product> productList = productPage.getRecords();
                ret.put("code", 0);
                ret.put("data", StringTool.ListToJsonArray(productList));
                ret.put("total", productPage.getTotal());//总数
                ret.put("next", productPage.hasNext());//下一页
                ret.put("previous", productPage.hasPrevious());//上一页
                ret.put("msg", "查询成功");
            }
        } catch (Exception e) {
            ret.put("code", -1);
            ret.put("data", null);
            ret.put("msg", "查询失败");
        }
        return ret;
    }
    @PostMapping(value = "/productListById", produces = "application/json")
    @ApiOperation("分页查询属于某个用户的商品列表,就是我发布的商品,入参是page:第几页,number:每页几条")
    public JSONObject productListById(@RequestBody JSONObject jsonObject, HttpServletRequest request) {
        JSONObject ret = new JSONObject();
        try {
            Long page = jsonObject.getLong("page");
            Long number = jsonObject.getLong("number");
            Object[] pIds = jsonObject.getJSONArray("pId").toArray();
            List<Object> list = new ArrayList<Object>();
            for (int i = 0; i < pIds.length; i++) {
                if (!list.contains(pIds[i])) {
                    list.add(pIds[i]);
                }
            }
            Object[] pIdss = list.toArray();
            Map<String, Object> map = new HashMap<>();
            map.put("page", page);
            map.put("number", number);
            map.put("pId", pIdss);
            if (page != null && number != null && pIds != null) {
                Page<Product> productPage = productService.selectListsPageById(map);
                List<Product> productList = productPage.getRecords();
                ret.put("code", 0);
                ret.put("data", StringTool.ListToJsonArray(productList));
                ret.put("total", productPage.getTotal());//总数
                ret.put("next", productPage.hasNext());//下一页
                ret.put("previous", productPage.hasPrevious());//上一页
                ret.put("msg", "查询成功");
            }
        } catch (Exception e) {
            ret.put("code", -1);
            ret.put("data", null);
            ret.put("msg", "查询失败");
        }
        return ret;
    }
    @PostMapping(value = "/productListByIds", produces = "application/json")
    @ApiOperation("分页查询属于某个用户的商品列表,就是我发布的商品,入参是page:第几页,number:每页几条")
    public JSONObject productListByIds(@RequestBody JSONObject jsonObject, HttpServletRequest request) {
        JSONObject ret = new JSONObject();
        try {
            Object[] pIds = jsonObject.getJSONArray("pId").toArray();
            List<Product> productList = new ArrayList<>();
            for (int i = 0; i < pIds.length; i++) {
                Product product = productService.selectById(pIds[i].toString());
                productList.add(product);
            }
            ret.put("code", 0);
            ret.put("data", StringTool.ListToJsonArray(productList));
            ret.put("msg", "查询成功");
        } catch (Exception e) {
            ret.put("code", -1);
            ret.put("data", null);
            ret.put("msg", "查询失败");
        }
        return ret;
    }
    @PutMapping("/addProduct")
    @ApiOperation("增加商品,入参是要增加的商品信息,记得带上上传图片接口返回的url")
    public JSONObject addProduct(@RequestBody JSONObject par, HttpServletRequest request) {
        JSONObject ret = new JSONObject();
        try {
            Product product = new Product();
            product.setId(StringTool.getUUID());
            product.setCreateTime(new Date());
            product.setBprice(par.getDouble("bprice"));
            product.setTitle(par.getString("title"));
            product.setImgUrl(par.getString("imgUrl"));
            product.setPrice(par.getDouble("price"));
            product.setContent(par.getString("content"));
            User user = userService.qureyByUserName(par.getString("username"));
            product.setUserId(user.getId());
            int i = productService.insert(product);
            if (i > 0) {
                ret.put("code", 0);
                ret.put("data", true);
                ret.put("msg", "增加成功");
            } else {
                ret.put("code", -1);
                ret.put("data", false);
                ret.put("msg", "增加失败");
            }
        } catch (Exception e) {
            ret.put("code", -1);
            ret.put("data", false);
            ret.put("msg", "增加失败");
        }
        return ret;
    }
    @PutMapping("/update")
    @ApiOperation("修改商品信息,传入要修改的信息,主要是商品id")
    public JSONObject update(Product product) {
        JSONObject ret = new JSONObject();
        product.setCreateTime(new Date());
        try {
            if (product.getId() != null && productService.update(product) > 0) {
                ret.put("code", "0");
                ret.put("data", true);
                ret.put("msg", "修改成功");
            } else {
                ret.put("code", "-1");
                ret.put("data", false);
                ret.put("msg", "修改失败");
            }
        } catch (Exception e) {
            ret.put("code", "-1");
            ret.put("data", false);
            ret.put("msg", "修改失败");
            e.printStackTrace();
        }
        return ret;
    }
    @PutMapping("/obtained")
    @ApiOperation("上架下架接口,主要传id即可")
    public JSONObject Obtained(@RequestBody JSONObject id) {
        JSONObject ret = new JSONObject();
        try {
            String dbId = id.getString("id");
            Product product = productService.selectById(dbId);
            if (product != null && product.getIsShow() == 1) {
                productService.updateById(dbId, true);
                ret.put("code", "0");
                ret.put("data", true);
                ret.put("msg", "下架成功");
            } else if (product != null && product.getIsShow() == 0) {
                productService.updateById(dbId, false);
                ret.put("code", "0");
                ret.put("data", true);
                ret.put("msg", "上架成功");
            } else {
                ret.put("code", "-1");
                ret.put("data", false);
                ret.put("msg", "修改失败");
            }
        } catch (Exception e) {
            ret.put("code", "-1");
            ret.put("data", false);
            ret.put("msg", "修改失败");
            e.printStackTrace();
        }
        return ret;
    }
    @GetMapping("/selectById")
    @ApiOperation("查询商品详情,传id即可,id是个字符串")
    public JSONObject selectById(String id) {
        JSONObject ret = new JSONObject();
        try {
            Product product = productService.selectById(id);
            if (product != null) {
                ret.put("code", "0");
                ret.put("data", StringTool.ObjectToJSONObject(product));
                ret.put("msg", "查询商品详情成功");
            } else {
                ret.put("code", "-1");
                ret.put("data", false);
                ret.put("msg", "查询商品详情失败");
            }
        } catch (Exception e) {
            ret.put("code", "-1");
            ret.put("data", false);
            ret.put("msg", "查询商品详情失败");
            e.printStackTrace();
        }
        return ret;
    }
    @PutMapping("/addCount")
    @ApiOperation("增加浏览次数接口,主要传id即可,当用户打开商品页的时候发这个请求")
    public JSONObject Increase(@RequestBody JSONObject id) {
        JSONObject ret = new JSONObject();
        try {
            String dbId = id.getString("id");
            Product product = productService.selectById(dbId);
            if (product != null) {
                productService.updateIncrease(product);
                ret.put("code", "0");
                ret.put("data", true);
                ret.put("msg", "增加浏览次数成功");
            } else {
                ret.put("code", "-1");
                ret.put("data", false);
                ret.put("msg", "增加浏览次数失败");
            }
        } catch (Exception e) {
            ret.put("code", "-1");
            ret.put("data", false);
            ret.put("msg", "增加浏览次数失败");
            e.printStackTrace();
        }
        return ret;
    }
    @PostMapping("/delete")
    @ApiOperation("删除商品接口,主要传商品id即可")
    public JSONObject delete(@RequestBody JSONObject jsonObject, HttpServletRequest request) {
        JSONObject ret = new JSONObject();
        String pId = jsonObject.getString("id");
        User user = null;
        try {
            user = userService.qureyByUserName(jsonObject.getString("username"));
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            int i = productService.delete(user.getId(), pId);
            if (i > 0) {
                if(messageService.deletebyFid(pId)>0) {
                    ret.put("code", "0");
                    ret.put("data", true);
                    ret.put("msg", "删除商品成功");
                }
            } else {
                ret.put("code", "-1");
                ret.put("data", false);
                ret.put("msg", "删除商品失败");
            }
        } catch (Exception e) {
            ret.put("code", "-1");
            ret.put("data", false);
            ret.put("msg", "删除商品失败");
            e.printStackTrace();
        }
        return ret;
    }
}

image.gif

五,项目总结

相关文章
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
172 1
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
111 62
|
3天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
32 13
|
10天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
69 2
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
1月前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
40 0
|
3月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
176 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
3月前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
277 1
|
3月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
基于Java+Springboot+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
232 3
基于Java+Springboot+Vue开发的大学竞赛报名管理系统