电商实习项目第六天(7月1日)

购物车页面——>跳转到结算页面总结:

因为需要: 传 chart购物车信息和人地址信息从订单界面到付款界面 , 传的data是人信息+ 商品信息1+商品信息2+… (数据库存的时候按顺序)

  • 整体思路: 非常重要 非常重要

在购物车页面跳转到—>结算页面

  1. 编写: com.demo.po创建类文件 CartVo.java ——创建集合, 通过购物车的ids字符串 得到很多个对象(很多个数据行), 添加get 、set方法.
  2. 编写: com.demo.dao创建接口文件BuyerDao.java——写方法, 通过id得到购买者对象的集合map
  3. 编写:com.demo.mapper创建xml文件—— BuyerMapper.xml实现接口, 具体通过此方法想要查找出的sql信息
  4. 编写: com.demo.dao创建接口文件CartDao.java——写方法, 通过购物车对象的id值得到每个购物车对象map类型的list集合
  5. 编写:com.demo.mapper创建xml文件—— CartMapper.xml实现接口, 具体通过此方法想要查找出每个购物车对象的sql信息
  6. 编写:com.demo.service创建接口文件OrderService.java——写方法,通过购物车对象和购买者的id值输出一个map类型的list集合
  7. 编写:com.demo.service创建类文件——OrderServiceImpl.java实现接口, 初始化两个Dao对象(CartDao和BuyerDao),将它们存在一个map类型的list集合中,并返回这个集合
  8. 编写com.demo.action创建java文件——OrderController.java, 初始化Orderservice对象, 创建方法,输入ids和服务器请求, 将ids字符串通过,分割变成字符串数组再转换成int格式, 存入到CartVo对象的id中, 并将CartVo对象输入给service.getInfoForOrder 方法, 得到一个map类型的list集合, 将此集合给“data”, 并返回给jsp界面
  9. 编写Cart.jsp——使其获取到ids, 并将其提交给OrderController.java

以下为具体实践步骤及代码

  • CartVo.java ——传ids, ids是界面上的购物车所有购买信息, 有setIds和getIds方法

    package com.demo.po;
    import java.util.ArrayList;
    import java.util.List;
    
    public class CartVo {
    
    	List<Integer> ids=new ArrayList<Integer>();
    
    	public List<Integer> getIds() {
    		return ids;
    	}
    
    	public void setIds(List<Integer> ids)
    		this.ids = ids;
    	}	
    }
    
  • BuyerDao.java—— 通过id传map类型的购买者信息, 需要用id为getById函数传递

package com.demo.dao;

import java.util.Map;

public interface BuyerDao {

	public Map<String, Object> getById(Integer id);
	
}
  • BuyerMapper.xml——写sql语句,与BuyerDao.java搭配写 id、parameterType、resultType、sql语句. ——从bbs_buyer表中找到id的对应的全部信息
    注意: Mybatis的动态sql: 可以借鉴此博客: https://www.cnblogs.com/ysocean/p/7289529.html
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper SYSTEM "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper  namespace="com.demo.dao.BuyerDao">
<select id="getById" parameterType="int" resultType="map" >
select * from bbs_buyer where id=#{id}
</select>
</mapper>
  • CartDao.java——写接口, 传过来购物车所有购买信息,得到一串数组,数组里面的内容是map(包含一个个购物车信息)
package com.demo.dao;

import java.util.List;//util
import java.util.Map;

import com.demo.po.Cart;
import com.demo.po.CartVo;

public interface CartDao {
	//只选部分id查询, 查询
	public List<Map<String, Object>> getByIds(CartVo v);
}
  • CartMapper.xml——写sql语句,与BuyerDao.java搭配写 id、parameterType、resultType、sql语句. ——(mybatis动态SQL语句), 接收界面上选中的购物车商品的id,并从数据库中找出对应的一条信息
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper SYSTEM "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.demo.dao.CartDao">
<!-- mybatis动动态sql  -->
<select id="getByIds" parameterType="com.demo.po.CartVo" resultType="map"  >
select * from bbs_cart
<where>
	<foreach collection="ids" item="id" open="id in(" close=")" separator=",">
	 	#{id}
	</foreach>
</where>
</select>

</mapper>


  • OrderService.java——对数据进行处理,如何操作数据库——写接口, 接收CartVo v,Integer buyerid 参数, getInfoForOrder 函数得到List<Map<String, Object>>, 一个数组,里面是map类型的人的数据+购物车数据
package com.demo.service;

import java.util.List;
import java.util.Map;

import com.demo.po.CartVo;
import com.sun.corba.se.spi.ior.ObjectKey;

public interface OrderService {
	//返回chart购物车和人   订单->  付款界面     List存有序数列 List<map map map >
	//人信息+ 商品信息1+商品信息2+...
	public List<Map<String, Object>> getInfoForOrder(CartVo v,Integer buyerid);
}
  • OrderServiceImpl.java——一个实现类,实现OrderService.java接口中的方法

(其中用到CartDao 、BuyerDao :

BuyerDao.java—— getByIds 方法; 通过id传map类型的购买者信息, 需要用id为getById函数传递

CartDao.java——getById 方法; 写接口, 传过来购物车所有购买信息,得到一串数组,数组里面的内容是 map(包含一个个购物车信息)

)

package com.demo.service;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.demo.dao.BuyerDao;
import com.demo.dao.CartDao;
import com.demo.po.Cart;
import com.demo.po.CartVo;


@Service
public class OrderServiceImpl implements OrderService {
@Autowired
CartDao dao1;
@Autowired
BuyerDao  dao2;

	@Override
	public List<Map<String, Object>> getInfoForOrder(CartVo v, Integer buyerid) {
		// TODO Auto-generated method stub
		List<Map<String, Object>> list=dao1.getByIds(v);
		list.add(0,dao2.getById(buyerid));
		return list;
	}
}

  • OrderController.java——(接到请求决定调用哪个业务,

( OrderService.java中函数: getInfoForOrder——传CartVo v,Integer buyerid返回 List<Map<String, Object>>一个数组,里面是map类型的人的数据+购物车数据 )

package com.demo.action;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.demo.po.CartVo;
import com.demo.service.OrderService;
@Controller
@RequestMapping("/order")
public class OrderController {

	@Autowired
	OrderService service;
	@RequestMapping("/getorder")
	
	public String getorder(String ids,HttpServletRequest request)
	{
		System.out.println("——————————ids:"+ids);
		String[] tmp=ids.split(",");
		CartVo v=new CartVo();
		List<Integer> list=v.getIds();
		for(String s:tmp)
		{
			list.add(Integer.parseInt(s));
		}
		List<Map<String,Object>> l=service.getInfoForOrder(v, 1);
		request.setAttribute("data", l);
		return ids;
		
	}
}

  • Order.jsp——显示数据
	${data} 
  • Cart.jsp——结算 页面的显示
<script type="text/javascript">
function trueBuy(){

	var ids="";
	var a=$("input[type=checkbox]");
	for(var i=1;i<a.length;i++)
		{
		if($(a[i]).prop("checked")==true){
			ids+=$(a[i]).val()+",";
		}
		}
	ids=ids.substring(0,ids.length-1);
	window.location.href="<%=basePath%>order/getorder?ids="+ids;
}
</script>
发布了192 篇原创文章 · 获赞 204 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/qq_37486501/article/details/94405219