基于SSM的网上商城系统设计与实现

今天给大家分享一个基于SSM的网上商城系统系统,分享给大家,希望多多支持
源码在文章末尾链接获取

一、项目背景

网上购物的悄然兴起,是社会经济发展的一个产物,与传统的店铺相比,网易购购物平台具有一定的优势。对于传统的店铺来讲,选一个比较好的地段是非常重要的,这个地段的优劣直接决定了这家店铺以后的发展,而如果选择网站的话就不存在选址这一说,世界各地都可以看到你出售的商品。现如今开得最火热的网上销售网站要属淘宝、拼多多、京东等网上购物平台,这些购物平台都进驻了很多的买家,无店铺销售的方式,让卖家减少了从生产到销售过程中的一些环节,这样卖家的经营成本也降低了,消费者也能在网上买到比实体店更便宜的商品。当然开店是比较有风险的,但在淘宝上,你只要注册一个账号就能在淘宝上开自己的店铺,对于个人来说,网上销售这样的形式降低了商家进驻的门槛。
当今电子商城是商品交易最频繁的场所,卖家利用网站管理经营,提高了管理员的工作的效率,减少工作中的可能出现的错误,为消费者提供更好的服务。电子商城就是利用网络这个平台在网络上实现买家与卖家的沟通与交流,网络销售与实体店相比还是具有很多的优点,它具有完善的购物流程,可以在任何时候下单完成买家的需求。对于公司而言,可以拓宽空间减少成本,提高运营的效率。顾客可以在网上比价,找出性价比比较高的商品,从而可以选到自己喜欢的商品。由此看来电子商务的建设与发展已经成为以后重要的一个发展方向。
网易购购物平台的建设增强了企业的竞争力,而且它具有用户使用方便、界面简洁大方、运行速度快、数据信息易于管理、系统维护方便等方面的特点。通过网页的形式展示要出售的商品,各模块操作引导用户进行购买流程,在用户选择商品购买之后,通过网络进行支付相关的费用,支付的类型多样化,可通过银行、邮政、微信等方式支付。通过物流就可以把用户向商城购买的商品送到用户的手中。

二、 项目介绍

基于SSM的网上商城系统

角色:管理员、用户

前台用户可以实现商品浏览,加入购物车,加入收藏,下单购买,个人信息管理,收货信息管理,收藏管理,评论功能。

后台管理员可以进行商品管理,商品秒杀管理,分类管理,轮播图管理,用户管理,订单管理,营业统计与分析功能(图表折线图或者柱状图显示)

三、 运行环境

开发语言:Java

开发工具:IDEA,Eclipse,Myeclipse都可以。推荐IDEA

JDK版本:1.8

数据库: MySQL5.7

Tomcat环境:Tomcat 7.x,8.x,9.x版本均可

项目管理:Maven

四、项目技术

后端:SSM(Spring+SpringMVC+Mybatis)

前端:JSP+CSS+JS+JQUERY+Layui

五.运行截图(点图片可放大)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、代码实现:

**
 * 购物车表
 * 后端接口
 */
@RestController
@RequestMapping("/cart")
public class CartController {
    
    
    @Autowired
    private CartService cartService;



    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,CartEntity cart, 
		HttpServletRequest request){
    
    
    	if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
    
    
    		cart.setUserid((Long)request.getSession().getAttribute("userId"));
    	}

        EntityWrapper<CartEntity> ew = new EntityWrapper<CartEntity>();
    	PageUtils page = cartService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, cart), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,CartEntity cart, 
		HttpServletRequest request){
    
    
        EntityWrapper<CartEntity> ew = new EntityWrapper<CartEntity>();
    	PageUtils page = cartService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, cart), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( CartEntity cart){
    
    
       	EntityWrapper<CartEntity> ew = new EntityWrapper<CartEntity>();
      	ew.allEq(MPUtil.allEQMapPre( cart, "cart")); 
        return R.ok().put("data", cartService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(CartEntity cart){
    
    
        EntityWrapper< CartEntity> ew = new EntityWrapper< CartEntity>();
 		ew.allEq(MPUtil.allEQMapPre( cart, "cart")); 
		CartView cartView =  cartService.selectView(ew);
		return R.ok("查询购物车表成功").put("data", cartView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
    
    
        CartEntity cart = cartService.selectById(id);
        return R.ok().put("data", cart);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
    
    
        CartEntity cart = cartService.selectById(id);
        return R.ok().put("data", cart);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody CartEntity cart, HttpServletRequest request){
    
    
    	cart.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(cart);
    	cart.setUserid((Long)request.getSession().getAttribute("userId"));

        cartService.insert(cart);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody CartEntity cart, HttpServletRequest request){
    
    
    	cart.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(cart);

        cartService.insert(cart);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody CartEntity cart, HttpServletRequest request){
    
    
        //ValidatorUtils.validateEntity(cart);
        cartService.updateById(cart);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
    
    
        cartService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    
    
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
    
    
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
    
    
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
    
    
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<CartEntity> wrapper = new EntityWrapper<CartEntity>();
		if(map.get("remindstart")!=null) {
    
    
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
    
    
			wrapper.le(columnName, map.get("remindend"));
		}
		if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
    
    
    		wrapper.eq("userid", (Long)request.getSession().getAttribute("userId"));
    	}


		int count = cartService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	}
	

七、项目总结:

经过这几个月来的学习与制作,本网易购购物平台的功能已基本实现。总结这一次的制作过程,这就是将课本上的知识运用到实现的操作中,通过这次的制作让我了解到了制作一个网站的基本过程,加深了我对计算机技术的了解。
由于我对JSP学习的时间不够长,目前还是JSP的新手,知识水平能力有限,所以本系统还有很多不足和值得改进的地方,比如:本网易购购物平台的界面不够人性化,主页的内容模块太少,商品的信息也不够详细,色彩设计过于简单,购物车系统功能还没有完善,消费才在购物车中放入物品后,可提交订单,但还有开发网上支付的功能,由于我的能力有限,这一模块功能未实现,对于用户信息录入资料时的条件判断还不够严密,所以可能会出现自己输入客户信息时有误。
当初在做毕业设计的时候也遇到过很多的问题,在我用JSP里面自带的URL连接网页时,测试提交注册信息和修改资料都没有反应,原因找了好久都没有找到,最后无意间用了另一个版本的浏览器,问题竟然迎刃而解了。本网站的各模块功能可能设计得不够完善,有待于以后的改进。我希望能在以后的学习中能够进一步的学习,把这些应用中用到的功能扩充得更加丰富,能够适应各种用户的需求。

猜你喜欢

转载自blog.csdn.net/weixin_44209743/article/details/128788378