Java 网上商城系统 Java 实战项目锤炼之网上商城系统的实现流程

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Java 网上商城系统 Java 实战项目锤炼之网上商城系统的实现流程

qq_1334611189   2021-11-11 我要评论
想了解Java 实战项目锤炼之网上商城系统的实现流程的相关内容吗,qq_1334611189在本文为您仔细讲解Java 网上商城系统的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Java,网上商城系统,Java,实战项目,下面大家一起来学习吧。

一、项目简述(+需求文档+PPT)

功能: 主页显示热销商品;所有商品展示,可进行商品搜索;点 击商品进入商品详情页,显示库存,具有立即购买和加入 购物车功能,可增减购买商品数量亦可手动输入(同时验证 库存),热销商品展示。立即购买进入确认订单页面,可选 择已经添加的地址,亦可新增地址。(同时验证库存),可 选择购买哪些商品,可删除不需要的商品。点击结算进入 确认订单页面,确认后提交订单,订单重复提交给予响 应,库存不足或商品下架给予响应。后台管理:(修改密码 等),商品管理(商品批量添加、上下架、库存维护等), 订单管理。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe ( IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP + C3P0+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload等等。

后台管理-主页操作代码:

/** * 后台管理-主页 */@Controllerpublic class AdminHomeController extends BaseController {    @Resource(name = "adminService")    private AdminService adminService;    @Resource(name = "productOrderService")    private ProductOrderService productOrderService;    @Resource(name = "productService")    private ProductService productService;    @Resource(name = "userService")    private UserService userService;    /**     * 转到后台管理-主页     * @param session session对象     * @param map 前台传入的Map     * @return 响应数据     * @throws ParseException 转换异常     */    @RequestMapping(value = "admin", method = RequestMethod.GET)    public String goToPage(HttpSession session, Map<String, Object> map) throws ParseException {        logger.info("获取管理员信息");        Object adminId = checkAdmin(session);        if (adminId == null) {            return "redirect:/admin/login";        }        Admin admin = adminService.get(null, Integer.parseInt(adminId.toString()));        map.put("admin", admin);        logger.info("获取统计信息");        //产品总数        Integer productTotal = productService.getTotal(null, new Byte[]{0, 2});        //用户总数        Integer userTotal = userService.getTotal(null);        //订单总数        Integer orderTotal = productOrderService.getTotal(null, new Byte[]{3});        logger.info("获取图表信息");        map.put("jsonObject", getChartData(null,null,7));        map.put("productTotal", productTotal);        map.put("userTotal", userTotal);        map.put("orderTotal", orderTotal);        logger.info("转到后台管理-主页");        return "admin/homePage";    }    /**     * 转到后台管理-主页(ajax方式)     * @param session session对象     * @param map 前台传入的Map     * @return 响应数据     * @throws ParseException 转换异常     */    @RequestMapping(value = "admin/home", method = RequestMethod.GET)    public String goToPageByAjax(HttpSession session, Map<String, Object> map) throws ParseException {        logger.info("获取管理员信息");        Object adminId = checkAdmin(session);        if (adminId == null) {            return "admin/include/loginMessage";        }        Admin admin = adminService.get(null, Integer.parseInt(adminId.toString()));        map.put("admin", admin);        logger.info("获取统计信息");        Integer productTotal = productService.getTotal(null, new Byte[]{0, 2});        Integer userTotal = userService.getTotal(null);        Integer orderTotal = productOrderService.getTotal(null, new Byte[]{3});        logger.info("获取图表信息");        map.put("jsonObject", getChartData(null, null,7));        logger.info("获取图表信息");        map.put("jsonObject", getChartData(null,null,7));        map.put("productTotal", productTotal);        map.put("userTotal", userTotal);        map.put("orderTotal", orderTotal);        logger.info("转到后台管理-主页-ajax方式");        return "admin/homeManagePage";    }    /**     * 按日期查询图表数据(ajax方式)     * @param beginDate 开始日期     * @param endDate 结束日期     * @return 响应数据     * @throws ParseException 转换异常     */    @ResponseBody    @RequestMapping(value = "admin/home/charts", method = RequestMethod.GET, produces = "application/json;charset=utf-8")    public String getChartDataByDate(@RequestParam(required = false) String beginDate, @RequestParam(required = false) String endDate) throws ParseException {        if (beginDate != null && endDate != null) {            //转换日期格式            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");            return getChartData(simpleDateFormat.parse(beginDate), simpleDateFormat.parse(endDate),7).toJSONString();        } else {            return getChartData(null, null,7).toJSONString();        }    }    /**     * 按日期获取图表数据     * @param beginDate 开始日期     * @param endDate 结束日期     * @param days 天数     * @return 图表数据的JSON对象     * @throws ParseException 转换异常     */    private JSONObject getChartData(Date beginDate,Date endDate,int days) throws ParseException {        JSONObject jsonObject = new JSONObject();        SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd", Locale.UK);        SimpleDateFormat time2 = new SimpleDateFormat("MM/dd", Locale.UK);        SimpleDateFormat timeSpecial = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.UK);        //如果没有指定开始和结束日期        if (beginDate == null || endDate == null) {            //指定一周前的日期为开始日期            Calendar cal = Calendar.getInstance();            cal.add(Calendar.DATE, 1-days);            beginDate = time.parse(time.format(cal.getTime()));            //指定当前日期为结束日期            cal = Calendar.getInstance();            endDate = cal.getTime();        } else {            beginDate = time.parse(time.format(beginDate));            endDate = timeSpecial.parse(time.format(endDate) + " 23:59:59");        }        logger.info("根据订单状态分类");        //未付款订单数统计数组        int[] orderUnpaidArray = new int[7];        //未发货订单数统计叔祖        int[] orderNotShippedArray = new int[7];        //未确认订单数统计数组        int[] orderUnconfirmedArray = new int[7];        //交易成功订单数统计数组        int[] orderSuccessArray = new int[7];        //总交易订单数统计数组        int[] orderTotalArray = new int[7];        logger.info("从数据库中获取统计的订单集合数据");        List<OrderGroup> orderGroupList = productOrderService.getTotalByDate(beginDate, endDate);        //初始化日期数组        JSONArray dateStr = new JSONArray(days);        //按指定的天数进行循环        for (int i = 0; i < days; i++) {            //格式化日期串(MM/dd)并放入日期数组中            Calendar cal = Calendar.getInstance();            cal.setTime(beginDate);            cal.add(Calendar.DATE, i);            String formatDate = time2.format(cal.getTime());            dateStr.add(formatDate);            //该天的订单总数            int orderCount = 0;            //循环订单集合数据的结果集            for(int j = 0; j < orderGroupList.size(); j++){                OrderGroup orderGroup = orderGroupList.get(j);                //如果该订单日期与当前日期一致                if(orderGroup.getProductOrder_pay_date().equals(formatDate)){                    //从结果集中移除数据                    orderGroupList.remove(j);                    //根据订单状态将统计结果存入对应的订单状态数组中                    switch (orderGroup.getProductOrder_status()) {                        case 0:                            //未付款订单                            orderUnpaidArray[i] = orderGroup.getProductOrder_count();                            break;                        case 1:                            //未发货订单                            orderNotShippedArray[i] = orderGroup.getProductOrder_count();                            break;                        case 2:                            //未确认订单                            orderUnconfirmedArray[i] = orderGroup.getProductOrder_count();                            break;                        case 3:                            //交易成功订单                            orderSuccessArray[i] = orderGroup.getProductOrder_count();                            break;                    }                    //累加当前日期的订单总数                    orderCount += orderGroup.getProductOrder_count();                }            }            //将统计的订单总数存入总交易订单数统计数组            orderTotalArray[i] = orderCount;        }        logger.info("返回结果集map");        jsonObject.put("orderTotalArray", orderTotalArray);        jsonObject.put("orderUnpaidArray", orderUnpaidArray);        jsonObject.put("orderNotShippedArray", orderNotShippedArray);        jsonObject.put("orderUnconfirmedArray", orderUnconfirmedArray);        jsonObject.put("orderSuccessArray", orderSuccessArray);        jsonObject.put("dateStr",dateStr);        return jsonObject;    }}

前台主页代码:

/** * 主页 */@Controllerpublic class ForeHomeController extends BaseController {    @Resource(name = "userService")    private UserService userService;    @Resource(name="categoryService")    private CategoryService categoryService;    @Resource(name="productService")    private ProductService productService;    @Resource(name="productImageService")    private ProductImageService productImageService;    //转到前台天猫-主页    @RequestMapping(value = "/", method = RequestMethod.GET)    public String goToPage(HttpSession session, Map<String, Object> map) {        logger.info("检查用户是否登录");        Object userId = checkUser(session);        if (userId != null) {            logger.info("获取用户信息");            User user = userService.get(Integer.parseInt(userId.toString()));            map.put("user", user);        }        logger.info("获取产品分类列表");        List<Category> categoryList = categoryService.getList(null,null);        logger.info("获取每个分类下的产品列表");       for(Category category : categoryList){           List<Product> productList = productService.getList(                   new Product().setProduct_category(category),                   new Byte[]{0, 2},                   new OrderUtil("product_sale_count", true), new PageUtil(0, 8)           );           if (productList != null) {               for (Product product : productList) {                   Integer product_id = product.getProduct_id();                   product.setSingleProductImageList(                           productImageService.getList(                                   product_id, (byte) 0, new PageUtil(0, 1)                           )                   );               }           }           category.setProductList(productList);       }        map.put("categoryList",categoryList);        logger.info("获取促销产品列表");        List<Product> specialProductList = productService.getList(                null, new Byte[]{2}, null, new PageUtil(0, 6)        );        map.put("specialProductList", specialProductList);        logger.info("转到前台主页");        return "fore/homePage";    }    //转到前台天猫-错误页    @RequestMapping(value = "error", method = RequestMethod.GET)    public String goToErrorPage() {        return "fore/errorPage";    }    //获取主页分类下产品信息-ajax    @ResponseBody    @RequestMapping(value = "product/nav/{category_id}", method = RequestMethod.GET, produces = "application/json;charset=utf-8")    public String getProductByNav(@PathVariable("category_id") Integer category_id) {        JSONObject object = new JSONObject();        if (category_id == null) {            object.put("success", false);            return object.toJSONString();        }        logger.info("获取分类ID为{}的产品标题数据", category_id);        List<Product> productList = productService.getTitle(                new Product().setProduct_category(new Category().setCategory_id(category_id)),                new PageUtil(0, 40)        );        List<List<Product>> complexProductList = new ArrayList<>(8);        List<Product> products = new ArrayList<>(5);        for (int i = 0; i < productList.size(); i++) {            //如果临时集合中产品数达到5个,加入到产品二维集合中,并重新实例化临时集合            if (i % 5 == 0) {                complexProductList.add(products);                products = new ArrayList<>(5);            }            products.add(productList.get(i));        }        complexProductList.add(products);        Category category = new Category().setCategory_id(category_id).setComplexProductList(complexProductList);        object.put("success", true);        object.put("category", category);        return object.toJSONString();    }}

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们