如何用Java代码实现网上商城系统
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章将为大家详细讲解有关如何用Java代码实现网上商城系统,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、项目简述(+需求文档+PPT)功能:
千家信息网最后更新 2024年11月11日如何用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, Mapmap) 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 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 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, Mapmap) { 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 categoryList = categoryService.getList(null,null); logger.info("获取每个分类下的产品列表"); for(Category category : categoryList){ List 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 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 productList = productService.getTitle( new Product().setProduct_category(new Category().setCategory_id(category_id)), new PageUtil(0, 40) ); List > complexProductList = new ArrayList<>(8); List
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(); }}
关于如何用Java代码实现网上商城系统就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
订单
日期
主页
商品
数据
管理
统计
信息
数组
产品
后台
前台
图表
总数
订单数
库存
分类
代码
结果
交易
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北盛天网络技术股份有限公司
软件开发前后端框架图
通信弱电网络技术员做什么
数据库查询学生成绩排序
计算机网络技术的安全常识
同济有哪些数据库
米6 无服务器
西安国企软件开发招聘
舞曲视频软件开发
10m带宽服务器
外贸盈实互联网科技怎么样
武林闲侠哪个服务器好
光伏电站网络安全责任制
僵尸毁灭工程服务器p2p
对日软件开发面试日语问题
oracle数据库怎么卸载
415国家网络安全标志
网络安全技术层
db2创建新数据库sql
镇江企业软件开发流程
网吧服务器死机
网络技术攻击
计算机网络技术是互联网吗
惠普服务器虚拟化优势
网店网络安全技术
网络安全和信息化工作的
湖南米花网络技术有限公司
你绝对不知道的软件开发流程
臻享网络技术有限公司
我国网络安全立法发展