订单管理

1.显示订单

1.1 显示订单-持久层

1.2 显示订单-业务层

新建IOrderService接口,定义方法

List<CartVo> getOrderByIds(Integer uid,Integer[] ids);

新建OrderService类,实现方法

@Service
public class OrderService{@Resource
private CartMapper cartMapper;public List<CartVo> getOrderByIds(Integer uid,Integer[] ids){0.定义数组,orderList1.调用持久层方法selectCart(),得到集合2.遍历集合,得到CartVo对象,获取id3.id和数组的id值比较,如果相同,把对象添加到orderList中。4.return orderList;
}
}

测试:

1.3 显示订单-控制器层

/order/orderConfirm.do
请求参数:uid(session),ids
请求方式:GET
响应方式:转发@
@
public class OrderController extends BaseController{@private IOrderService orderService;@public String orderConfirm(HttpSession session,Integer[] ids,ModelMap map){1.调用业务层方法,返回集合2.把集合设置到map中3.return "orderConfirm";}
}

把orderConfirm.html改为orderConfirm.jsp

1.4 显示订单-页面

1.点击去结算,转发到showOrderConfirm.do

在cart.jsp中221行左右找到以下代码,注掉/*$("#go-buy").click(function(){window.location.href="orderConfirm.html";
}) */然后在js文件夹中的cart.js文件中找到去结算,进行页面的跳转//去结算
var str=[];
var totalPrice=0;
$('.foot_cash').click(function(){
$('.Each>span').each(function(){if($(this).hasClass('true')){var id=$(this).parent().parent().next().children('.pudc_information').attr('id');var num=$(this).parent().parent().siblings('.num').children('input').val();str.push(id);}
});
totalPrice=$('.susumOne').html();
console.log(totalPrice);
console.log(str);
if(str.length>0){var url = '../order/showOrderConfirm.do?ids='+str;window.location.href = url;
}else{$('.modalBalance').fadeIn();$('.close').click(function(){$('.modalBalance').fadeOut();})
}})

2.在orderConfirm.jsp页面,显示集合中的数据

 <c:forEach items="${listVo}" var="cartVo"><ul class="item_detail"><li class="p_info"><b><img width="84px" height="84px" src="..${cartVo.image}"/></b><b class="product_name lf">${cartVo.title}</b><br/><span class="product_color ">颜色:深空灰</span></li><li class="p_price"><i>达内专属价</i><br/><span class="pro_price">¥<span class="ppp_price">${cartVo.price}</span></span></li><li class="p_count">X<span>${cartVo.count}</span></li><li class="p_tPrice">¥<span></span></li></ul></c:forEach>

3.收货人的地址

1)在控制器方法中:调用AddressService中的业务方法getAddressByUid(),返回集合,设置到map2)把集合中的数据显示到页面

2.生成订单

//订单表
create table t_order(id int auto_increment primary key,tradetime date,uid int,created_user varchar(50),created_time date,modified_user varchar(50),modified_time date
)default charset=utf8;//订单详情表
create table t_orderItem(id int auto_increment primary key,uid int,goodsid varchar(200),image varchar(100),title varchar(50),price int,count int,paymentstatus int,orderstatus int,orderid int,created_user varchar(50),created_time date,modified_user varchar(50),modified_time date
)default charset=utf8;

2.1 生成订单-持久层

1.新建Order,OrderItem实体类

2.在OrderMapper接口中定义方法

void insertOrder(Order order);void insertOrderItem(OrderItem oderItem);

3.OrderMapper.xml中定义insert节点,完成sql的编写

<insert id="insertOrder"                parameterType="...Order" keyProperty="id"useGeneratedKeys="true">insert into t_order(uid,tradetime)values(#{uid},now())</insert><insert id=""></insert>

测试:

实现购买商品后,商品表中的数据,要做修改,在GoodsMapper接口中定义方法

void updateNumById(@Param("id") Integer id,@Param("num") Integer num);

在GoodsMapper.mxl中定义update节点,编写update语句

<update id="updateNumById">update t_goodsset num=#{num}whereid=#{id}
</update>

测试:

2.2 生成订单-业务层

在IOrderService接口中定义方法

void addOrder(Order order,List<CartVo> listVo);

在OrderService类中实现方法:在订单表插入一条数据;把所有的订单详情插入t_orderItem,修改库存

public void addOrder(Order order, List<CartVo> listVo) {orderMapper.insertOrder(order);for(CartVo cart:listVo){OrderItem orderItem = new OrderItem();orderItem.setUid(cart.getUid());orderItem.setGoodsid(cart.getGoodsId());orderItem.setImage(cart.getImage());orderItem.setPrice(cart.getPrice());orderItem.setCount(cart.getCount());orderItem.setPaymentstatus(0);orderItem.setOrderstatus(0);orderItem.setOrderid(order.getId());orderMapper.insertOrderItem(orderItem);//根据id查询商品信息Goods goods=goodsMapper.selectGoodsById(Integer.parseInt(cart.getGoodsId()));//修改库存goodsMapper.updateNumById(cart.getGoodsId(), goods.getNum()-cart.getCount());}}

2.3 生成订单-控制器层

在showOrderConfirm方法中,在session中添加属性session.setAttribute("listVo",listVo);

/order/addOrder.do
请求参数:uid(session)
请求方式:POST
响应方式:转发public String addOrder(HttpSession session){Order order = new Order();order.setUid();List<CartVo> listVo = 从session获取;调用业务层方法return "payment";
}

把payment.html改payment.jsp

2.4 生成订单-页面

<script>
$(".go_pay").click(function () {location.href = "../order/addOrder.do";
})
</script>

ssm-学子商城-项目第十二天相关推荐

  1. 基于SSM的商城项目项目源码+实验报告

    基于SSM的商城项目 本项目是今年暑假小学期时完成的,耗时四天时间,在小学期结束项目答辩时,在年级里斩获冠军,在此很感谢我的团队,正是我们各个环节的配合,最终才能够获得如此好的成绩. 目录 基于SSM ...

  2. ssm水果商城项目遇到的问题和解决

    水果商城项目遇到的错误 https://www.bilibili.com/video/BV1EC4y1a7yH/?p=5 第一个问题 b站视频p5 控制台跳转jsp页面500错误 后面发现:是mave ...

  3. SSM购物商城项目开发

    开发环境 : 当前用myeclipse (idea) jdk7 tomcat 8,.5 创建项目 new -- web project --- 记得把web.xml勾上 SSM框架整合配置 添加依赖 ...

  4. jsp+servlet学子商城项目--servlet、dao层的各项练习

    Login的登录项目完成传值,select语句索引 UserDao.java /*** 根据用户名查询* @param name:表示用户名* @return如果用户名存在,封装成对象返回* 否则返回 ...

  5. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品排序,Thymeleaf快速入门,商品详情页的展示)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品详情页的展示) 一.商品排序 1.完善页面信息 这是用来做排序的,默认按照综合排序 ...

  6. Java毕设项目-商城管理系统-基于J2EE/SSM化妆品商城系统的设计与实现

    题目:商城管理系统-基于J2EE/SSM化妆品商城系统的设计与实现 重点作为毕设项目 1.开发环境 语言:Java       Spring+Springmvc+Mybatis[简称SSM] 数据库: ...

  7. 分布式商城项目-后台开发-SSM工程整合网站模板

    分布式商城项目-后台开发-SSM工程整合网站模板 我们在JavaWeb开发学习过程中,需要使用到前端的页面,可能很多时候,我们并不擅长于设计UI,比如html,jsp.但又希望自己做出来的程序能够好看 ...

  8. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)二十二(下单和微信支付)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)二十(下单) 0.学习目标 会调用订单系统接口 实现订单结算功能 实现微信支付功能 1.订单 ...

  9. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十四(Spring Data Elasticsearch,将数据添加到索引库)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十四(Spring Data Elasticsearch,将数据添加到索引库) 一.创建El ...

  10. SSM练手项目:米米商城

    SSM练手项目:米米商城 第一章 登录功能的详细开发步骤 搭建ssm项目的步骤: 1>新建maven工程 2>修改目录,修改pom.xml文件 3>添加ssm项目框架的所有依赖 4& ...

最新文章

  1. SAP 外向交货的包装功能实现
  2. boost::math::quadrature::tanh_sinh用法的测试程序
  3. Codeforces Round #656 (Div. 3)
  4. JSP基础--动作标签
  5. spring手动回滚事务_Spring总结---gt;03
  6. 世界上有条件JavaScript是什么?
  7. dubbo调用超时回滚_如何处理Dubbo调用超时?
  8. windows server 2003 AD之FSMO角色
  9. kettle 批量多表同步_财务基础数据同步的方式
  10. PASS云计算书简介——接近完美的模式
  11. K210车牌归属地识别[获取图像+训练+识别效果演示]
  12. 模2除法(计算CRC校验码)
  13. gitlab-ci配置
  14. [Android问答] 如何获得手机屏幕分辨率?
  15. 【OI备忘录】dalao博文收藏夹
  16. 怎么AI生成绘画图片?试试这几款软件吧
  17. 整体费率三连降,海尔追“格”超“美”的下一步在哪?
  18. 用计算机怎么算吸光度的回归方程,Pt含量与UV-Vis吸光度的线性回归拟合.doc
  19. NAT在NDIS中间层驱动中的实现
  20. iOS 屏幕录制功能

热门文章

  1. Qt实战-简单的点名程序和抽奖程序
  2. Ubuntu 定时开关机
  3. 哨兵二号数据下载的手把手指导以及12.5米DEM数据下载
  4. 西班牙出差见闻之三(普拉多博物馆)
  5. 数据库大作业预览-教室管理系统
  6. 8款最佳照片PDF比较软件推荐[2020指南]
  7. E-Prime 2.0 用了一段时间出现警告信息无法编辑实验程序
  8. vim配置IDE,下载压缩包即拥有轻巧且强大的文本编辑器
  9. 计算机专业的八字,生辰八字自动计算器软件 生辰八字在线计算器
  10. 如何下载java JDK文档