黑马程序员技术交流社区

标题: 【厦门JavaEE就业1期-每日总结】网上商城实战四 [打印本页]

作者: 厦门校区    时间: 2018-6-25 20:52
标题: 【厦门JavaEE就业1期-每日总结】网上商城实战四
同学们,今天内容比较复杂,难度比较大。敲代码一定不要看着老师代码敲,先把逻辑理顺了再敲。

今日需要掌握的有:

请同学们按照如上要求,总结今日所学。





作者: chenyelong    时间: 2018-6-25 22:01
陈叶隆
分页显示订单:(OrderDaoImpl层代码:多表联合查询!)
QueryRunner qr= new QueryRunner(JDBCUtils.getDataSource());
                String sql="select * from orders where uid=? order by ordertime desc limit ?,?";
                Object[]params={existUser.getUid(),begin,pageSize};
        List<Order> list = qr.query(sql, new BeanListHandler<Order>(Order.class), params);
                for (Order order : list) {
                String sql2="select * from orderitem o,product p where o.pid=p.pid and o.oid=?";
//一条记录是一个map
List<Map<String, Object>> list2 = qr.query(sql2, new MapListHandler(), order.getOid());
                        for (Map<String, Object> map : list2) {
                                Product product=new Product();
                                BeanUtils.populate(product, map);
                               
                                OrderItem orderItem=new OrderItem();
                                BeanUtils.populate(orderItem, map);
                                orderItem.setProduct(product);
                                order.getOrderItemList().add(orderItem);
                        }
                }
                        return list;

作者: 偏离X    时间: 2018-6-25 23:21
郭明杰
根据用户的ID查询订单的功能实现
        接收当前页数,获得用户的信息,调用业务层orderService下的findByUid ,传入Uid跟当前页数
        在OrderService的实现类中传入Uid跟当前页 设置分页,获取当前用户所有订单  ,调用查询数据库的语句,获取Uid用户的订单集合,  ,遍历集合,编写sql语句获得订单项并分别封装到 Product 跟OrderItem 对象中并返回list

为订单付款的方法
        接收参数
        修改数据库姓名 地址 电话
        付款,跳转到网银界面
通过程序直接跟网银接口对接的
优点:免费,不会影响到你的资金链
缺点:开发人员需要了解各个对接银行的网银接口
网银系统升级,导致代码需要修改

通过程序跟第三方支付公司对接
优点:开发人员只需要与第三方支付公司对接,不需要了解各个银行的网银接口
缺点:收费的,会影响到资金链


权限过滤器的作用是约束用户行为,在过滤器方法中获取session中的用户名,如果用户名存在 则放行
作者: 铁木啊童臂    时间: 2018-6-26 08:46
汪志阳:
我的订单思路整理:
1.menu.jsp点击"订单"跳转到servlet处理数据method=findByUid(用户的id),传当前页面
findByUid方法(根据用户的ID查询订单):接收参数,用户信息-调用业务层(订单需要分页查询,返回pageBean),保存pagebean,跳转到order_list.jsp
业务层:创建Bean对象,设置参数(当前页数,每页显示数,总记录数[连接数据库执行sql语句查询findCountByUid],设置总页数,每页显示内容的集合[开始显示的limit,findPageByUid]),返回pageBean对象
findCountByUid:返回Long类
findPageByUid:查询分页的方法,
findPageByuid:查询订单返回一个订单项的集合list,(sql语句:从订单项和商品两个表中查询pid对应的商品,且属于本订单的oid)遍历获取每一个订单项
将订单的oid传入,获取订单项和对象连接拼起来的数据集合list,遍历集合(获取每一条数据包含product,订单项的所有内容),
新建商品对象和订单项对象,将每条数据中属于各自的信息进行封装:BeanUtils.populate(orderItem, map)将map中属于orderItem的数据进行自动封装;(map的key为字段名即对象的属性名),
订单项还需要设置product,再将订单项封装进订单中,返回订单.



作者: 许大炮    时间: 2018-6-28 20:39
许剑鸿 webDay29商城实战4思路总结


订单模块
我的订单功能
        登录后的用户点击【我的订单】查询该用户的所有的订单.
        * 提交到Servlet:
            * 查询该用户的所有的订单.
            * 查询订单的时候,将订单中的订单项一并查询.

根据订单ID查询订单:
        在订单列表页面上点击【付款】连接:
        提交到Servlet:
            * 接收oid:
            * 根据OID进行查询
            * 页面跳转到order_info.jsp

支付功能(了解)
作者: 李思贤126    时间: 2018-7-2 10:55
李思贤:我的订单:

登录后点击我的订单,查询到该用户所有订单,
1提交到Servlet查询所有订单.考虑到分页显示,这里也要传一个currPage
业务层:
PageBean<Order>pageBean = new PageBean();
                //设置当前页数
                pageBean.setCurrPage(currPage);
                //设置每页记录数
                Integer pageSize=5;
                pageBean.setPageSize(pageSize);
                //设置总记录数
                OrderDao orderDao = (OrderDao) BeanFactory.getBean("orderDao");
                Integer totalCount =  orderDao.fingByUid(uid);
                double tc =totalCount;
                Double num = Math.ceil(tc/pageSize);
                pageBean.setTotalPage(num.intValue());
                //设置每页显示的数据集合
                int begin =(currPage-1)*pageSize;
                List<Order> list =orderDao.findByUid(uid,begin,pageSize);
                pageBean.setList(list);
难点:查询订单时将订单项也全查出来.
跳转到页面显示.(前一页和后一页 那里要进行双重判断!)


根据订单ID查询订单:
点击付款,跳到Servlet,调用业务层查询单个订单,和上面一样查完订单还要查订单项...
拿到order后存入域中,跳转到order_info.jsp页面.



在线支付:
用易宝(第三方支付接口)实现一下:
点击付款->Servlet->接收参数->修改数据库姓名电话地址->
跳到银行付款页面(准备参数)

付款成功后->接收参数,修改订单状态为已付款->跳到msg.jsp显示付款成功..

最后可以添加一个过滤器,如果没登录,不能让他访问某些页面,在web.xml中配置,可以配置多个mapping...




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2