Java项目:Springboot生鲜水果商城

108 篇文章 2 订阅

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

后台功能:

1. 后台商品信息的添加
2. 后台商品信息的维护
要求:商品图片的修改。先显示现有的图片,当鼠标移动到图片上时,图片右上角显示一把X,即允许删除当前图片,然后提供添加新图片的按钮。类似于QQ空间相册中图片的修改一样。
上传的所有商品图片必须在右下角自动加上水印,即前台显示时,显示已经加好水印的图片。
3. 后台统计报表
要求:使用Echarts显示统计日营业额、月营业额、季度营业额以及年度营业额 以及 根据商品统计月营业额

前台功能:

1. 首页商品显示
要求:显示每种类型的最新四种商品信息(一次性查出,即只能发送一次请求和一条sql语句)
2. 点击首页 查看更多后,根据类型跳到goods.html页面分页显示当前类型的商品信息,排序规则:先根据销售数量降序,再根据商品编号降序
3. 点击加入购物车按钮时
要求: 先判断有没有登录,如果没有登录先提醒用户"请先登录...",然后跳到登录界面,登录成功后再跳回到原来界面
如果已经登录,加入购物车前,先判断该商品购物车中是否已经存在,如果存在则直接加数量,如果不存在则添加次商品信息到购物车
当前页面 "我的购物车" 商品信息的数量相应的改变
4. 当点击头部或其它地方的 "我的购物车" 时,跳到购物车页面
要求:需要做登录校验
完善全选全不选效果
完善增或减商品的数量,合计、商品数量总计等信息需要联动
5. 在我的购物车页面勾选需要结账的商品后,点击去结账
要求:如果没有勾选任何商品,则给出提示信息
点击编辑收货地址,弹出收货地址编辑框,让用户选择当前订单的收货地址,省市区采用js解析xml三级级联实现
完善收货地址编辑列表,添加设为默认收货地址按钮和当前为默认收货地址的标签,效果可参考京东、淘宝的收货地址效果
修改默认收货地址时,只允许发送一条sql语句
6. 点击提交订单时(需要做登录校验)
要求:删除当前用户购物车中,已下单的商品信息
修改用户已经购买的商品的相应的库存量
在订单表中添加一条订单记录
在订单详细表中添加购买商品的详细信息
要求以上操作必须添加事务管理,所有操作要么同时成功要么都回滚,并且对每个表的操作只能发送一条sql一句,即总共下单功能只能发送4条sql语句
7. 在首页或商品信息页面,当用户点击某个商品时,跳到 details.html 显示该商品的详细信息

扩展功能:
1. 添加前台会员信息的修改,允许前台会员拍照上传或选择图片上传的方式修改个人的图像

2. 购物车数据使用redis缓存

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 

6.数据库:MySql 5.7版本;

技术栈

1. 后端:SpringBoot

2. 前端:HTML+Thymeleaf+jQuery+easyUI+bootstrap

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;

3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4.运行项目,前台地址:http://localhost:8080
用户名 wang11 密码123456

后台地址: http://localhost:8080/toAdminLogin

用户名 supperman 密码  123456

运行截图

前台界面

 

后台界面

代码相关

商品管理控制器

@Controller
public class GoodsCarController {
    @Resource(name = "goodsCarService")
    GoodsCarService goodsCarService;
    @Resource(name = "userService")
    UserService userService;
    @Resource(name = "orderService")
    OrderService orderService;

    /**
     * 加入购物车
     */
    @RequestMapping("/addGoodsCar")
    @ResponseBody
    public Map<String, Object> addGoodsCar(String goodsid, String shuliang, HttpServletRequest request) {
        Map<String, Object> map = new HashMap<String, Object>();
        HttpSession session = request.getSession();
        String username = (String) session.getAttribute("username");
        User u = userService.findUserByUsername(username);
        String userid = u.getId();
        List<Goodscar> goodscars = goodsCarService.findGoodscarByUserId(userid);
        for (Goodscar gs : goodscars) {
            if (gs.getGoodsid().equals(goodsid)){
                double count = Double.parseDouble(shuliang);
                count += gs.getCount();
                Map<String, Object> map1 = new HashMap<String, Object>();
                int reserved1 = (int) count;
                map1.put("count",count);
                map1.put("goodsid",goodsid);
                map1.put("reserved1",String.valueOf(reserved1));
                int result = goodsCarService.updateGoodsCarByCount(map1);
                if (result == 1){
                    List<Goodscar> gds = goodsCarService.findGoodscarByUserId(userid);
                    App.goodscarList = gds;
                    session.setAttribute("goodscarList", App.goodscarList);
                    session.setAttribute("count", App.goodscarList.size());
                    map.put("status", 0);
                    map.put("message", "加入购物车成功");
                }else {
                    map.put("status", 1);
                    map.put("message", "加入购物车失败");
                }
                return map;
            }
        }
        String id = App.getUid();
        int dr = 1;
        double count = Double.parseDouble(shuliang);
        Map<String, Object> map1 = new HashMap<String, Object>();
        map1.put("id",id);
        map1.put("goodsid",goodsid);
        map1.put("userid",userid);
        map1.put("dr",dr);
        map1.put("count",count);
        map1.put("reserved1",shuliang);
        int result = goodsCarService.addGoodsCar(map1);
        if (result == 1) {
            List<Goodscar> gods = goodsCarService.findGoodscarByUserId(userid);
            App.goodscarList = gods;
            session.setAttribute("goodscarList", App.goodscarList);
            session.setAttribute("count", App.goodscarList.size());
            map.put("status", 0);
            map.put("message", "加入购物车成功");
        } else {
            map.put("status", 1);
            map.put("message", "加入购物车失败");
        }
        return map;
    }

    /**
     * 购物车的商品单个逻辑删除
     */
    @RequestMapping("/goodscarDelete")
    @ResponseBody
    public Map<String, Object> goodscarDelete(String id, HttpServletRequest request) {
        Map<String, Object> map = new HashMap<String, Object>();
        int result = goodsCarService.goodsDelete(id);
        if (result == 1) {
            HttpSession session = request.getSession();
            String username = (String) session.getAttribute("username");
            User u = userService.findUserByUsername(username);
            List<Goodscar> goodscars = goodsCarService.findGoodscarByUserId(u.getId());
            App.goodscarList = goodscars;
            session.setAttribute("goodscarList", App.goodscarList);
            session.setAttribute("count", App.goodscarList.size());
            map.put("status", 0);
            map.put("message", "删除成功");
        } else {
            map.put("status", 1);
            map.put("message", "删除失败");
        }
        return map;
    }

    /**
     * 结算商品
     */
    @RequestMapping("/totalAllGoods")
    @ResponseBody
    public Map<String, Object> totalAllGoods(String ids,String reserved1s, HttpServletRequest request) {
        Map<String, Object> map = new HashMap<String, Object>();
        HttpSession session = request.getSession();
        String[] gcids = ids.split(",");
        String[] resves = reserved1s.split(",");
        Map<String, Object> map3 = new HashMap<String, Object>();
        for (int i=0;i<gcids.length;i++){
            int reserved1 = Integer.parseInt(resves[i]);
            map3.put("count",reserved1);
            map3.put("id",gcids[i]);
            map3.put("reserved1",String.valueOf(reserved1));
            goodsCarService.updateGoodsCarCount(map3);
        }
        int result = goodsCarService.totalAllGoods(gcids);
        if (result <= 0) {
            map.put("status", 1);
            map.put("message", "交易失败");
        } else {
            String uname = (String) session.getAttribute("username");
            User u = userService.findUserByUsername(uname);
            List<Goodscar> goodscars = goodsCarService.findGoodscarDrById(gcids);
            List<Ordergoods> orders = new ArrayList<Ordergoods>();
            Map<String, Object> map1 = new HashMap<String, Object>();
            for (Goodscar gc : goodscars) {
                String id = App.getUid();
                String uid = gc.getUserid();
                String gid = gc.getGoodsid();
                String gcid = gc.getId();
                int dr = gc.getDr();
                map1.put("id",id);
                map1.put("userid",uid);
                map1.put("goodsid",gid);
                map1.put("goodscarid",gcid);
                map1.put("dr",dr);
                orderService.addOrdergoods(map1);
            }
            List<Ordergoods> gcs = orderService.selectOrderByuserId(u.getId());
            for (Ordergoods gs : gcs) {
                orders.add(gs);
            }
            if (orders.size() <= 0) {
                map.put("status", 1);
                map.put("message", "交易失败");
            } else {
                session.setAttribute("orders", orders);
                String userid = u.getId();
                List<Goodscar> gc = goodsCarService.findGoodscarByUserId(userid);
                App.goodscarList = gc;
                session.setAttribute("goodscarList", App.goodscarList);
                session.setAttribute("count", App.goodscarList.size());
                map.put("status", 0);
                map.put("message", "交易成功");
            }
        }
        return map;
    }

    /**
     * 立即购买
     */
    @RequestMapping("/buyGoodsImmediately")
    @ResponseBody
    public Map<String, Object> buyGoodsImmediately(String goodsid, String shuliang,HttpServletRequest request){
        Map<String, Object> map = new HashMap<String, Object>();
        HttpSession session = request.getSession();
        String username = (String) session.getAttribute("username");
        User u = userService.findUserByUsername(username);
        String userid = u.getId();
        String id = App.getUid();
        int dr = 0;
        double count = Double.parseDouble(shuliang);
        Map<String, Object> map1 = new HashMap<String, Object>();
        map1.put("id",id);
        map1.put("goodsid",goodsid);
        map1.put("userid",userid);
        map1.put("dr",dr);
        map1.put("count",count);
        map1.put("reserved1",shuliang);
        int result = goodsCarService.addGoodsCar(map1);
        Map<String, Object> map2 = new HashMap<String, Object>();
        map2.put("id",App.getUid());
        map2.put("userid",userid);
        map2.put("goodsid",goodsid);
        map2.put("goodscarid",id);
        map2.put("dr",dr);
        int result2 = orderService.addOrdergoods(map2);
        if (result == 1 && result2 == 1){
            List<Ordergoods> orders = new ArrayList<Ordergoods>();
            List<Ordergoods> gcs = orderService.selectOrderByuserId(u.getId());
            for (Ordergoods gs : gcs) {
                orders.add(gs);
            }
            session.setAttribute("orders", orders);
            map.put("status", 0);
            map.put("message", "购买成功");
            map.put("result",id);
        }else {
            map.put("status", 1);
            map.put("message", "购买失败");
            map.put("result",null);
        }
        return map;
    }
}

商品分类控制器

@Controller
public class GoodstypeController {
    @Resource(name = "goodstypeService")
    GoodstypeService goodstypeService;

    /**
     * 分页查询增加商品分类列表信息
     */
    @RequestMapping("/addGoodsTypeList")
    @ResponseBody
    public Map<String, Object> addGoodsTypeList(int currentPage, String search) {
        Map<String, Object> resultMap = new HashMap<String, Object>();
        PageBean<Goodstype> pageBean = new PageBean<Goodstype>();
        int pageSize = 5;
        int start = (currentPage - 1) * pageSize;
        int size = pageSize;
        if (search == "" || search == null) {
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("start",start);
            map.put("size",size);
            List<Goodstype> lists = goodstypeService.findByPageType(map);
//            List<Goodstype> list = goodstypeService.selectCountType();
            int count = goodstypeService.selectCountType();
            if (count <= 0) {
                resultMap.put("status", 1);
                resultMap.put("message", "没有数据");
                resultMap.put("result", null);
            } else {
                int totalCount = count;
                double tc = totalCount;
                int totalPage = (int) Math.ceil(tc / pageSize);
                pageBean.setCurrentage(currentPage);
                pageBean.setPageSize(pageSize);
                pageBean.setTotalCount(totalCount);
                pageBean.setTotalPage(totalPage);
                pageBean.setLists(lists);
                resultMap.put("status", 0);
                resultMap.put("message", "有数据");
                resultMap.put("result", pageBean);
            }
        } else {
//            String search1 = "";
//            search1 += ("%" + search + "%");
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("start",start);
            map.put("size",size);
            map.put("search",search);
            List<Goodstype> lists = goodstypeService.findByPageTypeSearch(map);
//            List<Goodstype> list = goodstypeService.selectSearchCounttype(search1);
            int count = goodstypeService.selectSearchCounttype(search);
            if (count <= 0) {
                resultMap.put("status", 1);
                resultMap.put("message", "没有数据");
                resultMap.put("result", null);
            } else {
                int totalCount = count;
                double tc = totalCount;
                int totalPage = (int) Math.ceil(tc / pageSize);
                pageBean.setCurrentage(currentPage);
                pageBean.setPageSize(pageSize);
                pageBean.setTotalCount(totalCount);
                pageBean.setTotalPage(totalPage);
                pageBean.setLists(lists);
                resultMap.put("status", 0);
                resultMap.put("message", "有数据");
                resultMap.put("result", pageBean);
            }
        }
        return resultMap;
    }

    /**
     * 添加商品分类
     */
    @RequestMapping("/addGoodsType")
    @ResponseBody
    public Map<String, Object> addGoodsType(String name) {
        Map<String, Object> map = new HashMap<String, Object>();
        int dr = 0;
        String id = name;
        Map<String, Object> map1 = new HashMap<String, Object>();
        map1.put("id",id);
        map1.put("name",name);
        map1.put("dr",dr);
        int result = goodstypeService.addGoodsType(map1);
        if (result == 1) {
            map.put("status", 0);
            map.put("message", "添加成功");
        } else {
            map.put("status", 1);
            map.put("message", "添加失败");
        }
        return map;
    }

    /**
     * 查询商品分类
     */
    @RequestMapping("/selectGoodsType")
    @ResponseBody
    public Map<String, Object> selectGoodsType() {
        Map<String, Object> map = new HashMap<String, Object>();
        List<Goodstype> goodstypes = goodstypeService.selectGoodsType();
        if (goodstypes != null) {
            map.put("status", 0);
            map.put("message", "查询成功");
            map.put("result", goodstypes);
        } else {
            map.put("status", 1);
            map.put("message", "查询失败");
            map.put("result", null);
        }
        return map;
    }
}

如果也想学习本系统,下面领取。回复:055springboot

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
对于使用Eclipse实现24小时订单统计分析,你可以按照以下步骤进行操作: 1. 创建一个Java项目:在Eclipse中,选择File -> New -> Java Project来创建一个新的Java项目。 2. 添加所需的库和依赖:如果你使用了一些第三方库或框架来处理订单数据,你需要将这些库添加到你的项目中。在Eclipse的项目资源管理器中,右键单击你的项目,选择Properties -> Java Build Path -> Libraries,然后点击Add External JARs或Add Library来添加所需的库。 3. 创建订单数据模型:根据你的具体需求,创建一个订单数据模型来表示订单信息。这个模型可以包含订单号、下单时间、产品名称、数量、金额等字段。 4. 读取订单数据:通过合适的方式将订单数据读取到内存中。你可以使用Java的输入输出流、数据库连接或者其他方式来读取订单数据。 5. 进行统计分析:根据你的需求,编写代码来对订单数据进行统计分析。例如,你可以使用循环遍历订单数据,根据订单的下单时间判断是否在24小时内,并统计相关指标,比如总订单数、总销售额等。 6. 输出结果:根据你的需求,将统计分析的结果输出到控制台、文件或者其他适当的方式。 7. 测试和调试:在Eclipse中,你可以创建JUnit测试用例来验证你的代码逻辑是否正确,并使用Eclipse提供的调试功能来调试代码以解决可能出现的问题。 请注意,以上只是一个大致的步骤,你需要根据具体需求和数据结构进行相应的调整和实现。希望这些步骤对你有帮助!如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值