显示订单列表【项目 商城】
创始人
2024-02-06 09:08:07

显示订单列表【项目 商城】

  • 前言
  • 显示订单列表
    • 1 持久层
      • 1.1 规划SQL语句
      • 1.2 实现接口与抽象方法
      • 1.3 配置SQL映射
    • 测试
    • 2 业务层
      • 2.1 规划异常
      • 2.2 编写接口与抽象方法
      • 2.3 实现抽象方法
    • 测试
    • 3 控制器
      • 3.1 处理异常
      • 3.2 设计请求
      • 3.3 处理请求
    • 测试
      • 4 前端页面
    • 测试

前言

写作于
2022-10-14 17:16:51

发布于
2022-11-21 20:10:40

显示订单列表

在这里插入图片描述

1 持久层

1.1 规划SQL语句

# 多表查询如果字段名重复则需要显示声明该字段属于那张表SELECT oid,uid,recv_name AS recvName,order_time AS orderTime,title,image,price,num,statusFROM t_order LEFT JOIN t_order_item on t_order.oid=t_order_item.oidWHERE uid=#{uid}ORDER BY t_order.order_time DESC

VO:Value Object,值对象。当进行SELECT查询时,查询的结果属于多张表中的内容,此时发现结果集不能使用某个POJI实体类来接受,POJO实体类不能包含多表查询出来的结果。解决方式是:重新构建一个新的对象用于存储所查询出来的结构集对应的映射,所以把这样的对象称之为值对象


package com.cy.store.vo;import java.math.BigInteger;
import java.util.Date;
import java.util.Objects;public class OrderVO {private Integer oid;private Integer uid;private String recvName;private Date orderTime;private String title;private String image;private BigInteger totalPrice;private Integer num;private Integer status;//...
}

OrderVO


1.2 实现接口与抽象方法

抽象方法设计

    /*** 根据uid查询oids* @param uid uid* @return oids*/Integer[] findOidsByUid(Integer uid);/*** 根据oid查询OrderVO* @param oid oid* @return List*/List findVOByOid(Integer oid);

1.3 配置SQL映射

 	

OrderMapper–findVOByOid


测试

单元测试。

   @Testvoid findOidsByUid(){Integer[] oids = orderMapper.findOidsByUid(8);for (Integer o:oids){System.out.println(o);}}@Testvoid findVOByOid(){List list = orderMapper.findVOByOid(3);for (OrderVO o:list){System.out.println(o);}}

OrderMapperTests–findVOByOid


2 业务层

2.1 规划异常

2.2 编写接口与抽象方法

1.先编写业务层的接口方法。

   /*** 根据用户id获取用户的订单* @param uid 用户id* @return 用户的订单 */Map> getVOByUid(Integer uid);

2.3 实现抽象方法

2.在实现类实现此方法。

     @Overridepublic Map> getVOByUid(Integer uid) {Map> map=new LinkedHashMap<>();Integer[] oids = orderMapper.findOidsByUid(uid);for (Integer o:oids){map.put(o,orderMapper.findVOByOid(o));}return map;}

OrderService–getVOByUid


测试

  @Testpublic void getVOByUid(){Map> map = orderService.getVOByUid(8);System.out.println(map);}

OrderServiceTests–getVOByUid

3 控制器

3.1 处理异常

3.2 设计请求

1.设计请求。

/orders
session
GET
JsonResult>>

3.3 处理请求

2.实现请求处理方法的代码

  @RequestMapping({"","/"})public JsonResult>> getVOByUid(HttpSession session) {Map> data = orderService.getVOByUid(getuidFromSession(session));return new JsonResult<>(OK,data);}

CartController–getVOByUid


测试

3.先登录在进行功能测试
http://localhost:8080/orders
在这里插入图片描述

4 前端页面

cart.html
1.注释掉cart.js文件
2.form表单结果。action=“orderConfirm.html”、tbody标签的额id="cart-list"属性、"结算按钮"改成type="button"属性值
3.ready()函数来完成自动的ajax请求的条件和处理。

//showCartList$(document).ready(function() {showCartList();});function showCartList() {$("#cart-list").empty();$.ajax({url: "/carts",type: "GET",dataType: "JSON",success: function(json) {let list = json.data;for (let i = 0; i < list.length; i++) {let tr = ''+ ''+ 	''+ ''+ ''+ '#{title}#{msg}'+ '¥#{realPrice}'+ ''+ 	''+ 	''+ 	''+ ''+ '¥#{totalPrice}'+ ''+ 	''+ ''+ '';tr = tr.replace(/#{cid}/g, list[i].cid);tr = tr.replace(/#{title}/g, list[i].title);tr = tr.replace(/#{image}/g, list[i].image);tr = tr.replace(/#{realPrice}/g, list[i].realPrice);tr = tr.replace(/#{num}/g, list[i].num);tr = tr.replace(/#{totalPrice}/g, list[i].realPrice * list[i].num);if (list[i].realPrice < list[i].price) {tr = tr.replace(/#{msg}/g, "比加入时降价" + (list[i].price - list[i].realPrice) + "元");} else {tr = tr.replace(/#{msg}/g, "");}$("#cart-list").append(tr);}},error: function (xhr){alert("购物车列表数据加载是产生未知的异常,"+xhr.status)}});}//showCartList

cart.html–showCartList


测试

在这里插入图片描述

READ–显示购物车列表


相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...