700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Java项目:网上商城系统(java+SSM+jsp+mysql+maven)

Java项目:网上商城系统(java+SSM+jsp+mysql+maven)

时间:2022-03-11 14:21:26

相关推荐

Java项目:网上商城系统(java+SSM+jsp+mysql+maven)

源码获取:博客首页 "资源" 里下载!

一、项目简述功能 javaweb 网上商城系统,前台+后台管理,用户注册,登录,上哦展示,分组展示,搜索,收货地址管理,购物车管理,添加,购买,个人信息修改。订单查询等等,后台商品管理,分类管理,库存管理,订单管理,用户管理,信息修改等等.二、项目运行 环境配置: Jdk1.8 + Tomcats . 5 + mysql + Eclispe ( IntelliJ IDEA ,Eclispe , MyEclispe , sts 都支持)项目技术: JSP + Spring + SpringMVC + MyBatis + html + cSS + Javascript + JQuery + Ajax + layui + maven 等等。

后台管理平台登录代码:

/*** 后台管理-主页*/@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;}}

用户相关接口:

/*** 用户相关接口*/@Controller@RequestMapping("/index")public class UserController{@Resourceprivate UserService userService;@Resourceprivate OrderService orderService;@Resourceprivate GoodService goodService;@Resourceprivate TypeService typeService;@Resourceprivate ShopcartService shopcartService;@Resourceprivate SkuService skuService;/*** 用户注册* @return*/@GetMapping("/register")public String reg(Model model) {model.addAttribute("flag", -1); // 注册页面return "/index/register.jsp";}/*** 用户注册* @return*/@PostMapping("/register")public String register(Users user, Model model){if (user.getUsername().isEmpty()) {model.addAttribute("msg", "用户名不能为空!");return "/index/register.jsp";}else if (userService.isExist(user.getUsername())) {model.addAttribute("msg", "用户名已存在!");return "/index/register.jsp";}else {String password = user.getPassword();userService.add(user);user.setPassword(password);return "/index/index"; // 注册成功后转去登录}}/*** 用户登录* @return*/@GetMapping("/login")public String log() {return "/index/index";}/*** 用户登录* @return*/@PostMapping("/login")public String login(@RequestParam(required=false, defaultValue="0")int flag, Users user, HttpSession session, Model model) {model.addAttribute("typeList", typeService.getList());if(flag==-1) {flag = 6; // 登录页面return "/index/index";}if(userService.checkUser(user.getUsername(), user.getPassword())){Users loginUser = userService.get(user.getUsername());session.setAttribute("user", loginUser);// 还原购物车数量session.setAttribute("total", shopcartService.getTotal(loginUser.getId()));return "redirect:index";} else {model.addAttribute("msg", "用户名或密码错误!");return "/index/index";}}/*** 注销登录* @return*/@RequestMapping("/logout")public String logout(HttpSession session) {session.removeAttribute("user");session.removeAttribute("order");return "/index/index";}/*** 查看购物车* @return*/@RequestMapping("/shopcart")public String shopcart(Model model, HttpSession session) {Users user = (Users) session.getAttribute("user");if (user == null) {model.addAttribute("msg", "请先登录!");return "/index/index";}model.addAttribute("typeList", typeService.getList());model.addAttribute("shopcartList", shopcartService.getList(user.getId()));model.addAttribute("totalPrice", shopcartService.getTotalPrice(user.getId()));return "/index/shopcart.jsp";}/*** 购买* @return*/@RequestMapping("/buy")public @ResponseBody int buy(Shopcart shopcart, HttpSession session, Model model){Users user = (Users) session.getAttribute("user");if (user == null) {return -111;}shopcart.setUserId(user.getId());shopcart.setGood(goodService.get(shopcart.getGoodId()));// 验证库存//int stock = skuService.getStock(shopcart.getGoodId(), shopcart.getColorId(), shopcart.getSizeId());//if(shopcart.getAmount() > stock) {//model.addAttribute("msg", "商品 [ " + shopcart.getGood().getName() + " ] 库存不足! 当前库存只有: " + stock);//}return orderService.save(Arrays.asList(shopcart), user);}/*** 购买* @return*/@RequestMapping("/cart")public @ResponseBody int cart(Shopcart shopcart, HttpSession session, Model model){Users user = (Users) session.getAttribute("user");if (user == null) {return -111;}shopcart.setUserId(user.getId());shopcartService.save(shopcart);int total = shopcartService.getTotal(user.getId());session.setAttribute("total", total);return total;}/*** 添加*/@RequestMapping("/add")public @ResponseBody boolean add(int skuid, HttpSession session){Users user = (Users) session.getAttribute("user");if (user == null) {return false;}return shopcartService.add(skuid);}/*** 减少*/@RequestMapping("/less")public @ResponseBody boolean less(int skuid, HttpSession session){Users user = (Users) session.getAttribute("user");if (user == null) {return false;}return shopcartService.less(skuid);}/*** 删除*/@RequestMapping("/delete")public @ResponseBody boolean delete(int skuid, HttpSession session){Users user = (Users) session.getAttribute("user");if (user == null) {return false;}shopcartService.delete(skuid);session.setAttribute("total", shopcartService.getTotal(user.getId()));return true;}/*** 总金额* @return*/@RequestMapping("/total")public @ResponseBody int total(HttpSession session){Users user = (Users) session.getAttribute("user");if (user == null) {return -111;}return shopcartService.getTotalPrice(user.getId());}/*** 提交订单* @return*/@RequestMapping("/save")public String save(ServletRequest request, HttpSession session, Model model){Users user = (Users) session.getAttribute("user");if (user == null) {model.addAttribute("msg", "请先登录!");return "/index/index";}List<Shopcart> shopcartList = shopcartService.getList(user.getId());if(Objects.isNull(shopcartList) || shopcartList.isEmpty()) {model.addAttribute("msg", "购物车没有商品");return shopcart(model, session);}// 验证库存for(Shopcart cart : shopcartList) {int stock = skuService.getStock(cart.getGoodId(), cart.getColorId(), cart.getSizeId());if(cart.getAmount() > stock) {model.addAttribute("msg", "商品 [ " + cart.getGood().getName() + " ] 库存不足! 当前库存只有: " + stock);return shopcart(model, session);}}int orderid = orderService.save(shopcartList, user);if(orderid > 0) {// 清空购物车session.setAttribute("total", shopcartService.getTotal(user.getId()));// 跳转支付return "redirect:topay?orderid="+orderid;} model.addAttribute("msg", "出了点问题");return shopcart(model, session);}/*** 支付页面* @return*/@RequestMapping("/topay")public String topay(int orderid, ServletRequest request, HttpSession session) {Users user = (Users) session.getAttribute("user");if (user == null) {request.setAttribute("msg", "请先登录!");return "/index/index";}request.setAttribute("typeList", typeService.getList());request.setAttribute("order", orderService.get(orderid));return "/index/pay.jsp";}/*** 支付(模拟)* @return*/@RequestMapping("/pay")public String pay(Orders order, ServletRequest request, HttpSession session) {Users user = (Users) session.getAttribute("user");if (user == null) {request.setAttribute("msg", "请先登录!");return "/index/index";}// 模拟支付orderService.pay(order);request.setAttribute("typeList", typeService.getList());request.setAttribute("order", orderService.get(order.getId()));request.setAttribute("msg", "支付成功! 即将跳转到订单列表");return "/index/pay.jsp";}/*** 查看订单* @return*/@RequestMapping("/order")public String order(HttpSession session, Model model){model.addAttribute("flag", 12);Users user = (Users) session.getAttribute("user");if (user == null) {model.addAttribute("msg", "请登录后查看订单!");return "/index/index";}model.addAttribute("typeList", typeService.getList());model.addAttribute("orderList", orderService.getListByUserid(user.getId()));return "/index/order.jsp";}/*** 个人信息* @return*/@RequestMapping("/my")public String my(HttpSession session, Model model){model.addAttribute("flag", 11);model.addAttribute("typeList", typeService.getList());Users user = (Users) session.getAttribute("user");if (user == null) {model.addAttribute("msg", "请先登录!");return "/index/index";}model.addAttribute("user", user);return "/index/my.jsp";}/*** 修改信息* @return*/@RequestMapping("/updateUser")public String updateUser(Users user, HttpSession session, Model model){model.addAttribute("flag", 11);model.addAttribute("typeList", typeService.getList());Users userLogin = (Users) session.getAttribute("user");if (userLogin == null) {model.addAttribute("msg", "请先登录!");return "/index/index";}// 修改资料Users u = userService.get(userLogin.getId());u.setName(user.getName());u.setPhone(user.getPhone());u.setAddress(user.getAddress());userService.update(u); // 更新数据库session.setAttribute("user", u); // 更新sessionmodel.addAttribute("msg", "信息修改成功!");return "/index/my.jsp";}/*** 修改信息* @return*/@RequestMapping("/updatePassword")public String updatePassword(Users user, HttpSession session, Model model){model.addAttribute("flag", 11);model.addAttribute("typeList", typeService.getList());Users userLogin = (Users) session.getAttribute("user");if (userLogin == null) {model.addAttribute("msg", "请先登录!");return "/index/index";}// 修改密码Users u = userService.get(userLogin.getId());if(user.getPasswordNew()!=null && !user.getPasswordNew().trim().isEmpty()) {if (user.getPassword()!=null && !user.getPassword().trim().isEmpty() && SafeUtil.encode(user.getPassword()).equals(u.getPassword())) {if (user.getPasswordNew()!=null && !user.getPasswordNew().trim().isEmpty()) {u.setPassword(SafeUtil.encode(user.getPasswordNew()));}userService.update(u); // 更新数据库session.setAttribute("user", u); // 更新sessionmodel.addAttribute("msg", "密码修改成功!");return "redirect:logout";}else {model.addAttribute("msg", "原密码错误!");}}return "/index/index";}}

前台相关接口:

/*** 前台相关接口*/@Controller@RequestMapping("/index")public class IndexController{private static final int rows = 8; // 默认每页数量@Autowiredprivate TopService topService;@Autowiredprivate GoodService goodService;@Autowiredprivate TypeService typeService;@Autowiredprivate SkuService skuService;/*** 首页* @return*/@RequestMapping("/index")public String index(HttpServletRequest request){request.setAttribute("flag", -1);List<Types> typeList = typeService.getList();request.setAttribute("typeList", typeList);List<Map<String, Object>> dataList = new ArrayList<>();for(Types type : typeList) {Map<String, Object> map = new HashMap<>();map.put("type", type);map.put("goodList", goodService.getListByType(type.getId(), 1, 8)); // 取前8个dataList.add(map);}request.setAttribute("dataList", dataList);return "/index/index.jsp";}/*** 推荐列表* @return*/@RequestMapping("/top")public String tops(int typeid, @RequestParam(required=false, defaultValue="1")int page, HttpServletRequest request) {request.setAttribute("flag", typeid==2 ? 7 : 8);request.setAttribute("typeList", typeService.getList());request.setAttribute("goodList", goodService.getList(typeid, page, rows));request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getTotal(typeid), page, rows));return "/index/goods.jsp";}/*** 商品列表* @return*/@RequestMapping("/goods")public String goods(int typeid, @RequestParam(required=false, defaultValue="1")int page, HttpServletRequest request){request.setAttribute("flag", typeid);request.setAttribute("typeList", typeService.getList());request.setAttribute("topList", topService.getList(Tops.TYPE_SUPPER, 1, 4));if (typeid > 0) {request.setAttribute("type", typeService.get(typeid));}request.setAttribute("goodList", goodService.getListByType(typeid, page, rows));request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getTotalByType(typeid), page, rows));return "/index/goods.jsp";}/*** 商品详情* @return*/@RequestMapping("/detail")public String detail(int goodid, HttpServletRequest request){request.setAttribute("typeList", typeService.getList());request.setAttribute("topList", topService.getList(Tops.TYPE_SUPPER, 1, 4));Goods good = goodService.get(goodid);request.setAttribute("good", good);request.setAttribute("type", typeService.get(good.getTypeId()));request.setAttribute("colorList", skuService.getColorList(goodid));request.setAttribute("sizeList", skuService.getSizeList(goodid));return "/index/detail.jsp";}/*** 搜索* @return*/@RequestMapping("/search")public String search(String name, @RequestParam(required=false, defaultValue="1")int page, HttpServletRequest request) {if (Objects.nonNull(name) && !name.trim().isEmpty()) {request.setAttribute("goodList", goodService.getListByName(name, page, rows));request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getTotalByName(name), page, rows));}request.setAttribute("typeList", typeService.getList());return "/index/goods.jsp";}/*** 查询库存* @param goodid* @param colorid* @param sizeid* @return*/@GetMapping("/stock")public @ResponseBody int stock(int goodid, int colorid, int sizeid) {return skuService.getStock(goodid, colorid, sizeid);}}

源码获取:博客首页 "资源" 里下载!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。