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