基于SSM的在线商城系统(最新)

系统使用技术:SSM

前端技术:bootstrap、css、js等

开发工具:eclipse或idea

数据库:mysql5.7

项目介绍:

该系统适合选择框架为SSM,基础中等或以下,做类似商城系统,要求页面美观度高的同学。主要功能包括:完整的商城业务流程,比如用户管理,商品管理、订单管理、分类管理等,满足商城的基本要求。

下面我们来看看功能。

系统登陆界面:

http://localhost:8080/technology/page/login.html

首页

查看热销商品

分类查看

可以按照分类查看商品

商品详情

可以查看商品详情

个人中心

用户登录后可以查看个人信息

购物车

可以查看购物车内商品

我的订单

可以查看个人订单信息

后台首页

可以统计商品、订单信息

用户管理

对用户进行管理

商品管理

对商品进行管理

订单管理

对订单进行管理

 代码

用户登录:

/**      * produces="application/json;charset=UTF-8":防止ajax获取中文时出现乱码      * @return 将数据回传给ajax      */     @ResponseBody     @RequestMapping(value = "/usertologin", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")     public Object usertologin(             Integer uid,             String upswd,             HttpServletResponse response,             HttpSession session) {         //创建 JSONObject 对象,它会把放入的数据以 json 的数据格式存储,对于集合类型的数据还要用到 JSONArray 数组         JSONObject object = new JSONObject();         int i = loginSvc.checkUid(uid);         if (i > 0) { // 证明账号存在,进行密码验证             object.put("num_i", i);             object.put("SUCCESS_MESSAGE", "账号验证成功!");              int j = loginSvc.checkLogin(new User(uid, upswd));             if (j > 0) { // 密码正确,进行相同账号的登录验证                 object.put("num_j", j);                 object.put("SUCCESS_MESSAGE2", "密码验证成功!");                  User user_session = (User) CoreUtil.getSession().getAttribute(Constants.LOGIN_USER);                 if (user_session!=null) { //证明用户已登录,不允许相同账号的登录                     object.put("ERROR_MESSAGE", "该账号已登录!");                     return object.toString();                 } else {  //尚未有该用户登录,需要获取个人信息,保存用户名等,用以显示                     /*String ipAddr = ToolsUtil.getIpAddr(request); 				    System.out.println("当前用户IP为:" + ipAddr);*/                     User user = loginSvc.showUserInfo(uid);                     /*保存信息,用于验证登录拦截器*/                     session.setAttribute(Constants.LOGIN_USER, user);                      session.setAttribute("myinfo", user);                      String lasttime = ToolsUtil.getTime("yyyy-MM-dd HH:mm:ss", 0);                     User user2 = loginSvc.showUserInfo(uid);                     user2.setLasttime(lasttime);                     int k = loginSvc.upUser(user2); // 此处可以对k进行判断,提示等                      String logintime = ToolsUtil.getTime("yyyy年MM月dd日 HH:mm:ss", 0);                     // 登录日志记录,此处为日志插入单独写了一个方法,调用即可                     String descb = "您在【" + logintime + "】登录了本商城";                     Log log = ToolsUtil.insertLog(uid, descb);                     int m = loginSvc.insertUserLog(log);                 }             } else {                 object.put("ERROR_MESSAGE", "密码错误,请重新输入!");             }         } else {             object.put("ERROR_MESSAGE", "账号不存在!");         }         return object.toString();   //由于前端ajax在接收服务器数据时一般是字符串,因此要用“.toString()”方法转化     }

生成订单:

@RequestMapping("/addOrder")     public String addOrder(             String orderaddress,             @RequestParam(required = false) Integer[] pid,             @RequestParam(required = false) int[] pronum,             HttpSession session) {         Order order = new Order();         int id = getLoginUserId();         order.setUid(id);         order.setOrderaddress(orderaddress);         /*Integer[] pid = {100001, 100002};         int[] pronum = {23, 31};*/         List<Map<String, Object>> prolist = productSvc.proSelByCIds(pid, pronum);         List<OrderDetail> orderDetails = new ArrayList<OrderDetail>();         for (Map<String, Object> aProlist : prolist) {             OrderDetail od = new OrderDetail();             od.setPid((Integer) aProlist.get("pid"));             od.setPimg((String) aProlist.get("pimg"));             od.setPname((String) aProlist.get("pname"));             od.setPrice((Float) aProlist.get("price"));             od.setOdetailnum((Integer) aProlist.get("pronum"));             orderDetails.add(od);         }         /* 邮费 10-30 随机 */         Random random = new Random();         order.setPostalfee(random.nextInt(20) + 10);         int i = orderSvc.addOrder(order, orderDetails); //会调用Dao,向order表插入数据         if(i>0){             String descb = "下单成功,订单号:【" + order.getOrdercode() + "】";             Log log = ToolsUtil.insertLog(UserUtil.getLoginUserId(), descb);             loginSvc.insertUserLog(log);             Order orderss = iorderDao.getOrderDetailById(order.getOrderid());     		List<OrderDetail> details =  orderss.getOdetails();     		for(int i1= 0;i1<details.size();i1++){     			Product p = iProductDao.proSelByCId(details.get(i1).getPid());     			Product product = new Product();     			int stock = p.getStock() - details.get(i1).getOdetailnum();     			product.setStock(stock);     			product.setPid(details.get(i1).getPid());     			iProductDao.updataStock(product);     		}         }         System.out.println("----------" + i);         return "redirect:getMyOrders";     }

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,而且也与当前的热点话题关联,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,比较适合毕业设计和课程设计的相关应用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值