基于SpringBoot的农产品商城平台

含支付宝沙箱支付源码和论文开题报告任务书

本课题的主要研究内容:

1. 开发技术方面的研究

【563】基于SpringBoot的农产品商城平台多商户平台

网上电脑商城系统的实现将采用IDEA开发工具,Maven项目管理工具,后端使用SpringBoot框架和MyBatis框架。前端使用Layui框架,Bootstrap框架和Ajax异步请求技术。数据库选择MySQL数据库来存储数据,服务器使用Tomcat服务器。

SpringBoot是目前广泛流行的开发框架,它的核心就是自动配置,只要存在相应的jar包,Spring就帮我们自动配置。如果默认配置不能满足需求,我们还可以替换掉自动配置类,使用我们自己的配置。另外,Spring Boot还集成了嵌入式的Web服务器,系统监控等很多有用的功,让我们快速构建企业及应用程序,从而简化了开发。

MyBatis是一个开源的数据持久层框架,内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询、存储过程和高级映射。作为持久层框架,主要思想是将程序中的大量的SQL语句分离出来,配置在相应的配置文件中,这样可以在不修改代码的情况下,直接在配置文件中的修改SQL,从而简化了开发。

MySQL数据库是目前流行的关系型数据库,可以用来存储和管理大量的数据。它支持多种操作系统,提供多种API接口,支持多种开发语言,代码开源,使用成本低,性能卓越,服务稳定,易于维护,是企业开发的不二之选。

前端使用Layui框架,Bootstrap框架和Ajax异步请求技术,使得页面清晰简洁,用户一目了然,方便查找商品信息,给用户更好的购物体验。

2. 系统的开发

2.1系统的分析

对于系统的分析,将采用UML技术,它是一种进行面向对象程序设计的工具,用来把现实中的问题抽象成面向对象的解决方案,以便进一步的编码。UML是由一堆图组成的,包括:用例图、类图、对象图、状态转换图、活动图、时序图、部署图等等。UML的作用:

1. UML使软件分析和设计人员对目标问题有更深刻的理解和认识。

2. UML使得项目所涉及的所有人员都能参与到项目的设计中来,UML为非专业编程人士理解软件的功能和构造,提供了一种直白、简单、通俗的方法。

2.2系统的设计

网上商城系统将分三个模块,用户模块,店家模块和系统管理员模块。

用户模块:游客可以浏览电脑商城的信息,想要购买商品则必须注册用户,成功注册之后,登陆进去可以修改个人信,可以在商城里浏览商品,将心仪的商品收藏到收藏夹,加入购物车,结算。结算之后生成快递单号,当确认收货之后可以对商品进行评价,若商品不符合心意,可以向商家申请售后。用户也可以向管理员申请开铺,然后在电脑商城里销售相关的电脑商品。

店家模块:店家可以进行商品管理、商品分类管理、订单管理、查看商品的销售情况和售后处理。

管理员:管理员则可以进行用户管理和店家管理。

2.3系统的实现

本系统采用B/S架构,后端使用SpringBoot框架和MyBatis框架。前端使用Layui框架,Bootstrap框架和Ajax异步请求技术。数据库选择MySQL数据库来存储数据,服务器使用Tomcat服务器。参考实际的电商系统的逻辑去设计和建立数据库,前台可以完成购物操作,后台可以及时管理用户信息、店铺信息,商品信息,订单信息等等。

主要功能:

前台模块:

1.用户登录注册功能。

2.浏览商品信息功能:实现显示所有电脑相关商品信息。

3.商品查询功能:按条件查询相关商品。

4.收藏商品功能:将自己喜欢的商品添加到自己收藏夹中

5.我的购物车:用户可以管理自己购物车的商品,可以删除商品或者清空购物车。

6.我的订单:用户可以查看或删除自己的订单,下单后可以查询快递单号。确认收货之后可以删除订单,并可以对商品进行评价。

7.退款功能:用户对相关商品的店家申请售后。

8.支付功能:使用支付宝模拟支付。

9.修改个人信息功能:用户对自己的个人信息,收货地址和头像进行修改。

10.评价功能:用户可以在已购商品购买页面对商品进行评价。

11.成为卖家功能:用户可以向管理员申请成为店家,可以进行电脑相关商品的销售。

后台模块:

店家:

1.商品管理:对商品进行增删改查操作。

2.商品分类管理:对商品分类进行增删改查操作。

3.订单管理:查看该店铺商品所有订单。

4.商品销量报表:以报表的形式展现该店各个电脑商品的销售情况。

5.售后服务:审核用户的售后,进行退货操作。

6.查看评论:查看该店家商品的评价信息。

管理员:

1.店家管理:可以停用店家的运营。

2.用户管理:管理员可以对用户信息进行增删改查操作。

3.前台商品轮播管理:管理员可以对首页的轮播图进行管理操作。

package com.springboot.project.controller;


import com.alibaba.fastjson.JSONObject;
import com.springboot.project.mapper.StoreMapper;
import com.springboot.project.pojo.*;
import com.springboot.project.service.*;
import com.springboot.project.tools.PageBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

@Controller
@RequestMapping("/goods")
public class GoodsController {
    @Autowired
    private GoodsService goodsService;
    @Autowired
    private EvaluateService evaluateService;
    @Autowired
    private AddressService addressService;
    @Autowired
    private GoodsTypeService goodsTypeService;
    @Autowired
    private OrderService orderService;
    @Autowired
    private UserService userService;
    @Autowired
    private BrandService brandService;
    @Autowired
    private StoreMapper storeMapper;
    @Autowired
    private StoreService storeService;

    /*获得全部产品*/
    @RequestMapping("/getAllGoods")
    public String getAllGoods(Model model) {
        List<Goods> allGoodsList = goodsService.getAllGoods();
        model.addAttribute("allGoodsList", allGoodsList);
        return "/goodsList";
    }

    /*模糊查询*/
    @RequestMapping("/getGoodsByLikeName/{goodsName}")
    public String getGoodsByLikeName(@PathVariable String goodsName,Model model){
        List<Goods> allGoodsList = goodsService.getGoodsByLikeName(goodsName);
        model.addAttribute("allGoodsList",allGoodsList);
        return "/goodsList";
    }

    /*根据goods_Id获得产品*/
    @RequestMapping("/getGoodsById/{goodsId}")
    public String getGoodsById(@PathVariable int goodsId, Model model)  throws ParseException {
        Goods goods = goodsService.getGoodsById(goodsId);
        if (goods==null){
            return "/error";
        }
        Store store = storeService.getByStoreId(goods.getGoodsStore());
        GoodsStore goodsStore = new GoodsStore();
        goodsStore.setGoodsId(goods.getGoodsId());
        goodsStore.setGoodsName(goods.getGoodsName());
        goodsStore.setGoodsAttr(goods.getGoodsAttr());
        goodsStore.setGoodsBrand(goods.getGoodsBrand());
        goodsStore.setGoodsDesc(goods.getGoodsDesc());
        goodsStore.setGoodsNums(goods.getGoodsNums());
        goodsStore.setGoodsStore(goods.getGoodsStore());
        goodsStore.setGoodsType(goods.getGoodsType());
        goodsStore.setGoodsImg(goods.getGoodsImg());
        goodsStore.setGoodsSales(goods.getGoodsSales());
        goodsStore.setGoodsPrice(goods.getGoodsPrice());
        goodsStore.setStoreName(store.getStoreName());
        List<Evaluate> evaluateList = evaluateService.getEvaByGoodsId(goodsId);

        List<Evaluate3> evaluate3List = new ArrayList<>();
        for (Evaluate evaluate : evaluateList) {
            User user = userService.selectUserByUserId(evaluate.getEvaUser());
            Evaluate3 evaluate3 = new Evaluate3();
            evaluate3.setEvaId(evaluate.getEvaId());
            evaluate3.setEvaUser(evaluate.getEvaUser());
            evaluate3.setEvaGoods(evaluate.getEvaGoods());
            evaluate3.setEvaContent(evaluate.getEvaContent());
            evaluate3.setEvaLevel(evaluate.getEvaLevel());

            SimpleDateFormat sf1 = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy", Locale.ENGLISH);
            Date date = sf1.parse(String.valueOf(evaluate.getEvaDate()));
            SimpleDateFormat sf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            evaluate3.setEvaDate(sf2.format(date));
            evaluate3.setEvaStore(evaluate.getEvaStore());
            evaluate3.setEvaState(evaluate.getEvaState());
            evaluate3.setUser_Img(user.getUserImg());
            evaluate3List.add(evaluate3);
        }

        int typeId = goods.getGoodsType();
        model.addAttribute("goods", goodsStore);
        model.addAttribute("typeId", typeId);
        model.addAttribute("evaluateList", evaluate3List);
        return "/goodsBuy";
    }

    /*订单详情页*/
    @RequestMapping("/getGoodsByIdBuy/{goodsId}/{num}")
    public String getGoodsByIdBuy(@PathVariable int goodsId,@PathVariable int num, Model model, HttpServletRequest request) {
        HttpSession session = request.getSession();
        int userId = (int) session.getAttribute("userId");
        Goods goods = goodsService.getGoodsById(goodsId);
        List<Address> address = addressService.getAddrByUserId(userId);
        Address address1 = addressService.getAddrByUserIdByDefault(userId);
        BigDecimal price = goods.getGoodsPrice();
        int price2 = price.intValue() * num;
        BigDecimal price3 = new BigDecimal(price2);
        goods.setGoodsPrice(price3);
        model.addAttribute("addressList",address);
        model.addAttribute("address1",address1);
        model.addAttribute("goods",goods);
        model.addAttribute("goodsId",goodsId);
        model.addAttribute("num",num);
        return "/order";
    }

    /*购物车页面*/
    @RequestMapping("/cart")
    public String cart(Model model,HttpSession session){

        int userId = (int) session.getAttribute("userId");
        List<Cart> cartList = goodsService.getCartByUserId(userId);

        List<Goods> goodsList = new ArrayList<>();
        for (int i=0;i<cartList.size();i++){
            Goods goods1 = goodsService.getGoodsById(cartList.get(i).getCartGoods());
            goodsList.add(goods1);
        }
        List<GoodsType> goodsTypes = new ArrayList<>();
        for (int i=0;i<goodsList.size();i++){
            GoodsType goodsType = goodsTypeService.getTypeByTypeId(goodsList.get(i).getGoodsType());
            goodsTypes.add(goodsType);
        }
        List<CartGoods2> cartGoodsList = new ArrayList<>();
        for (int i=0;i<cartList.size();i++){
            CartGoods2 cartGoods = new CartGoods2();
            cartGoods.setCartId(cartList.get(i).getCartId());
            cartGoods.setCartGoods(cartList.get(i).getCartGoods());
            cartGoods.setCartNum(cartList.get(i).getCartNum());
            cartGoods.setCartPrice(cartList.get(i).getCartPrice());
            cartGoods.setCartUser(cartList.get(i).getCartUser());
            cartGoods.setGoodsId(goodsList.get(i).getGoodsId());
            cartGoods.setGoodsName(goodsList.get(i).getGoodsName());
            cartGoods.setGoodsNums(goodsList.get(i).getGoodsNums());
            cartGoods.setGoodsAttr(goodsList.get(i).getGoodsAttr());
            cartGoods.setGoodsImg(goodsList.get(i).getGoodsImg());
            cartGoods.setTypeId(goodsTypes.get(i).getTypeId());
            cartGoods.setTypeName(goodsTypes.get(i).getTypeName());
            BigDecimal num = new BigDecimal( cartList.get(i).getCartNum());
            BigDecimal price = cartList.get(i).getCartPrice();
            BigDecimal allPrice = price.multiply(num);
            cartGoods.setAllcartNum(allPrice);
            cartGoodsList.add(cartGoods);
        }

        model.addAttribute("cartGoodsList",cartGoodsList);
        return "/cart";
    }


    /*获取全部产品信息 分页*/
    @RequestMapping("/getAllGoodsByStoreId")
    @ResponseBody
    public JSONObject getAllGoodsByStoreId(int page, int limit, String keyWord, HttpSession session) {
        int userId = (int) session.getAttribute("userId");
        PageBean pageBean = new PageBean();
        pageBean.setPage(page);
        pageBean.setLimit(limit);
        PageBean<GoodsIntact> pBean = goodsService.getPageBean(pageBean.getPage(), pageBean.getLimit(), keyWord,userId);
        JSONObject jsObj = new JSONObject();
        jsObj.put("msg", "");
        jsObj.put("code", 0);
        jsObj.put("count", pBean.getTotalRecs());
        jsObj.put("data", pBean.getJsArr());
        return jsObj;
    }


    /*获取全部产品信息 分页*/
    @RequestMapping("/getAllGoodsByStoreIdAndGoodId")
    @ResponseBody
    public JSONObject getAllGoodsByStoreIdAndGoodId(int page, int limit, String keyWord,String search, HttpSession session) {
        int userId = (int) session.getAttribute("userId");
        PageBean pageBean = new PageBean();
        pageBean.setPage(page);
        pageBean.setLimit(limit);
        PageBean<GoodsIntact> pBean = goodsService.getPageBean2(pageBean.getPage(), pageBean.getLimit(), keyWord,search,userId);
        JSONObject jsObj = new JSONObject();
        jsObj.put("msg", "");
        jsObj.put("code", 0);
        jsObj.put("count", pBean.getTotalRecs());
        jsObj.put("data", pBean.getJsArr());
        return jsObj;
    }


    /*获取全部订单信息分页*/
    @RequestMapping("/getAllOrdersByStoreId")
    @ResponseBody
    public JSONObject getAllGoodsByStoreId(Integer page, Integer limit, String keyWord, HttpSession session) {
        int userId = (int) session.getAttribute("userId");

        PageBean pageBean = new PageBean();
        pageBean.setPage(page);
        pageBean.setLimit(limit);
        PageBean<orderGoods2> pBean = orderService.getPageBean(pageBean.getPage(), pageBean.getLimit(), keyWord,userId);
        JSONObject jsObj = new JSONObject();
        jsObj.put("msg", "");
        jsObj.put("code", 0);
        jsObj.put("count", pBean.getTotalRecs());
        jsObj.put("data", pBean.getJsArr());
        return jsObj;
    }


    /*获取订单信息 搜索 分页*/
    @RequestMapping("/getAllOrdersByStoreId2")
    @ResponseBody
    public JSONObject getAllGoodsByStoreId2(Integer page, Integer limit, String keyWord,String search, HttpSession session) {
        int userId = (int) session.getAttribute("userId");
        PageBean pageBean = new PageBean();
        pageBean.setPage(page);
        pageBean.setLimit(limit);
        PageBean<orderGoods2> pBean = orderService.getPageBean2(pageBean.getPage(), pageBean.getLimit(), keyWord,search,userId);
        JSONObject jsObj = new JSONObject();
        jsObj.put("msg", "");
        jsObj.put("code", 0);
        jsObj.put("count", pBean.getTotalRecs());
        jsObj.put("data", pBean.getJsArr());
        return jsObj;
    }


    /*获取全部评论信息 分页*/
    @RequestMapping("/getAllEvaluateByStoreId")
    @ResponseBody
    public JSONObject getAllEvaluateByStoreId(Integer page, Integer limit, String keyWord, HttpSession session) {

        int userId = (int) session.getAttribute("userId");

        PageBean pageBean = new PageBean();
        pageBean.setPage(page);
        pageBean.setLimit(limit);
        PageBean<Evaluate2> pBean = evaluateService.getPageBean(pageBean.getPage(), pageBean.getLimit(), keyWord,userId);
        JSONObject jsObj = new JSONObject();
        jsObj.put("msg", "");
        jsObj.put("code", 0);
        jsObj.put("count", pBean.getTotalRecs());
        jsObj.put("data", pBean.getJsArr());
        return jsObj;
    }

    /*通过产品获取全部评论信*/
    @RequestMapping("/getAllCommByGoodsId")
    @ResponseBody
    public JSONObject getAllByGoodsId(Integer page, Integer limit, String keyWord, String search,HttpSession session) {
        System.out.println(search);
        int userId = (int) session.getAttribute("userId");
        PageBean pageBean = new PageBean();
        pageBean.setPage(page);
        pageBean.setLimit(limit);
        PageBean<Evaluate2> pBean = evaluateService.getPageBean2(pageBean.getPage(), pageBean.getLimit(), Integer.parseInt(search),userId);
        JSONObject jsObj = new JSONObject();
        jsObj.put("msg", "");
        jsObj.put("code", 0);
        jsObj.put("count", pBean.getTotalRecs());
        jsObj.put("data", pBean.getJsArr());
        return jsObj;
    }

    /*下架产品*/
    @RequestMapping("/deleteGood")
    @ResponseBody
    public String deleteGood(@RequestParam(value = "goodsId",required = true)int goodsId){

        int i =goodsService.deleteGoodsByGoodsId(goodsId);

        if(i == 1){
            return "success";
        }else {
            return "flag";
        }
    }
    /*上架产品*/
    @RequestMapping("/renewGoods/{goodsId}")
    @ResponseBody
    public String renewGoods(@PathVariable int goodsId){
        int rs = goodsService.renewGoods(goodsId);
        if (rs>0){
            return "success";
        }else {
            return "fail";
        }
    }

    /*发货*/
    @RequestMapping("/updateGoodsByDelivery")
    @ResponseBody
    public  String updateGoodsByDelivery(@RequestParam(value = "id",required = true)Long id){

        int i = goodsService.updateGoodsByDelivery(id);
        if(i == 1){
            return "success";
        }else {
            return "flag";
        }
    }
    /*确认收货*/
    @RequestMapping("/getGoodsByIdReceiving")
    @ResponseBody
    public String getGoodsByIdReceiving(@RequestParam(value = "orderId",required = true)Long id){

        int i = goodsService.getGoodsByIdReceiving(id);

        if(i == 1){
            return "success";
        }else {
            return "flag";
        }
    }

    @RequestMapping("/getAllBrand")
    @ResponseBody
    public List<Brand> getAllBrand(){
        List<Brand> brandList = brandService.getAllBrand();
        return brandList;
    }
    @RequestMapping("/getAllGoodsType")
    @ResponseBody
    public List<GoodsType> getAllGoodsType(){
        List<GoodsType> goodsTypeList = goodsTypeService.getAllGoodsType();
        return goodsTypeList;
    }
    @RequestMapping("/getGoodsByBrand/{brandId}")
    public String getGoodsByBrand(@PathVariable int brandId,Model model){
        List<Goods> allGoodsList = goodsService.getGoodsByBrand(brandId);
        model.addAttribute("allGoodsList", allGoodsList);
        return "/goodsList";
    }


    @RequestMapping("/getGoodsByType/{typeId}")
    public String getGoodsByType(@PathVariable int typeId,Model model){
        List<Goods> allGoodsList = goodsService.getGoodsByType(typeId);
        model.addAttribute("allGoodsList", allGoodsList);
        return "/goodsList";
    }

    @RequestMapping("/toAddGoods")
    public String toAddGoods(){
        return "/admin/addGoods";
    }

    @RequestMapping(value = "/upload")
    @ResponseBody
    public JSONObject upUserImg(@RequestParam(value = "file") MultipartFile file) throws IOException {
        String name = file.getOriginalFilename();
        System.out.println(name);
        /*String path = "G:/shejiing/code/ec_system/src/main/resources/static/img/header/banner/" + name;*/
        String path = "G:/shejiing/code/template/src/main/resources/static/img/header/goods/" + name;
        file.transferTo(new File(path));
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("goodsImg", name);
        return jsonObject;
    }
    /*添加产品*/
    @RequestMapping("/addGoods")
    @ResponseBody
    public String addGoods(Goods goods){
        int rs = goodsService.addGoods(goods);
        if (rs>0){
            return "success";
        }else {
            return "fail";
        }
    }
    /*修改产品信息*/
    @RequestMapping("/updateGoods")
    @ResponseBody
    public String updateGoods(Goods goods){
        int rs = goodsService.updateGoods(goods);
        if (rs>0){
            return "success";
        }else {
           return "fail";
        }
    }
    /*通过店家获取产品*/
    @RequestMapping("/getAllGoodsByStore")
    @ResponseBody
    public List<Goods> getByStore(HttpSession httpSession){
        int userId = (int) httpSession.getAttribute("userId");
        Store store = storeService.selectByUserId(userId);
        List<Goods> goodsList = goodsService.getGoodsByStoreId(store.getStoreId());
        return goodsList;
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿毕业分享网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值