当前位置: 首页 > wzjs >正文

中山网站设计服务网站建设合同 域名续期

中山网站设计服务,网站建设合同 域名续期,网站空间续费多少钱,如何套模板做网站1. 显示购物车列表-持久层 1.1 规划sql语句 在购物车表中查询用户id,商品id,购物车商品的数量,在商品表中从查询商品的价格,图片 select cid, uid, pid, t_cart.num, …

1. 显示购物车列表-持久层

1.1 规划sql语句

        在购物车表中查询用户id,商品id,购物车商品的数量,在商品表中从查询商品的价格,图片

select cid,
               uid,
               pid,
               t_cart.num,
               t_product.title,
               t_product.price,
               t_product.image,
               t_product.price  AS realPrice
        from t_cart
                 LEFT JOIN t_product ON t_cart.pid = t_product.pid
        where uid=#{uid}
        order by
            t_cart.created_time desc

1.2 CartMapper编写接口和抽象方法

        前端展示购物车列表时,需要展示商品的图片信息和购物车的价格数量等信息,根据用户id查询购物车信息和商品信息后,不管是返回cart对象还是product对象都不合适,pojo实体类不能包含多表查询出来的结果

        创建一个vo对象。当进行select查询时,直接使用一个pojo类来接收

CartVo实体类

package com.cy.store.vo;import lombok.Data;import java.io.Serializable;/** 购物车数据的Value Object类 */
@Data
public class CartVO implements Serializable {private Integer cid;private Integer uid;private Integer pid;private Long price;private Integer num;private String title;private Long realPrice;private String image;
}

CartMapper类

    /*** 查询某用户的购物车数据* @param uid 用户id* @return 匹配的购物车数据*/List<CartVO> findVOByUid(Integer uid);

1.3 xml文件中编写sql映射

    <select id="findVOByUid" resultType="com.cy.store.vo.CartVO">select cid,uid,pid,t_cart.num,t_product.title,t_product.price,t_product.image,t_product.price  AS realPricefrom t_cartLEFT JOIN t_product ON t_cart.pid = t_product.idwhere uid=#{uid}order byt_cart.created_time desc</select>

1.4 进行对持久层的测试

@Testpublic void findVOByUid() {Integer uid = 1;List<CartVO> list = cartMapper.findVOByUid(uid);System.out.println(list);}

2. 显示购物车列表-业务层

2.1 编写接口和抽象方法

    /*** 根据aid查询收货地址数据* @param uid 用户id* @return 匹配的收货地址数据,如果没有匹配的数据则返回null*/List<CartVO> findVOByAid(Integer uid);

2.2 实现类实现接口,重写抽象方法

/*** 查询某用户的购物车数据* @param uid* @return*/@Overridepublic List<CartVO> findVOByAid(Integer uid) {List<CartVO> list = cartMapper.findVOByUid(uid);return list;}

3. 显示购物车列表-控制层

3.1 规划请求

请求路径:/carts/

请求方式:GET

请求参数:HttpSession session

响应结果:JsonResult<List<CartVo>>

3.2 实现请求

    /*** 获取购物车数据* @param session* @return*/@RequestMappingpublic JsonResult<List<CartVO>> getVOByAid(HttpSession session) {Integer uid = getUidFromSession(session);List<CartVO> data = cartService.findVOByAid(uid);return new JsonResult<>(OK, data);}

3.3 启动项目进行测试

4. 前端页面

4.1 注释掉cart.js文件


<!--		<script src="../js/cart.js" type="text/javascript" charset="utf-8"></script>-->

4.2 js业务代码

<script type="text/javascript">
<!--		当页面加载时发送获取购物车列表的请求		-->$(document).ready(function() {showCartList();});//展示购物车列表数据function showCartList() {// 清空数据区$("#cart-list").empty();$.ajax({url: "/carts",type: "GET",dataType: "JSON",success: function(json) {var list = json.data;// 遍历后端响应过来的数据for (var i = 0; i < list.length; i++) {// 给数据进行占位var tr = '<tr>\n' +'<td>\n' +'<input name="cids" value="#{cid}" type="checkbox" class="ckitem" />\n' +'</td>\n' +'<td><img src="..#{image}collect.png" class="img-responsive" /></td>\n' +'<td>#{title}#{msg}</td>\n' +'<td>¥<span id="goodsPrice#{cid}">#{singlePrice}</span></td>\n' +'<td>\n' +'<input type="button" value="-" class="num-btn" onclick="reduceNum(1)" />\n' +'<input id="goodsCount#{cid}" type="text" size="2" readonly="readonly" class="num-text" value="#{num}">\n' +'<input class="num-btn" type="button" value="+" onclick="addNum(#{cid})" />\n' +'</td>\n' +'<td><span id="goodsCast#{cid}">#{totalPrice}</span></td>\n' +'<td>\n' +'<input type="button" onclick="delCartItem(this)" class="cart-del btn btn-default btn-xs" value="删除" />\n' +'</td>\n' +'</tr>';// 赋值tr = tr.replaceAll(/#{cid}/g, list[i].cid);tr = tr.replaceAll(/#{image}/g, list[i].image);tr = tr.replaceAll(/#{title}/g, list[i].title);tr = tr.replaceAll(/#{singlePrice}/g, list[i].realPrice);tr = tr.replaceAll(/#{num}/g, list[i].num);tr = tr.replaceAll(/#{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);}});}// $(function() {// 	//返回链接// 	$(".link-account").click(function() {// 		location.href = "orderConfirm.html";// 	})// })</script>


文章转载自:

http://NvMBgyKM.mwjmj.cn
http://zmFYbyTD.mwjmj.cn
http://nQNK1KFu.mwjmj.cn
http://njMB5sNY.mwjmj.cn
http://jBLcdXwo.mwjmj.cn
http://Kfp3N4f4.mwjmj.cn
http://ndmASsrP.mwjmj.cn
http://H1AnM0kp.mwjmj.cn
http://sSZEeAib.mwjmj.cn
http://7Wlm384x.mwjmj.cn
http://W11Atx1G.mwjmj.cn
http://qerScitu.mwjmj.cn
http://zWThEkKJ.mwjmj.cn
http://r4UzVSQx.mwjmj.cn
http://aE7YlsgF.mwjmj.cn
http://jL0mNTZh.mwjmj.cn
http://4h3EKoX8.mwjmj.cn
http://fWhad8iH.mwjmj.cn
http://AkDsfgF4.mwjmj.cn
http://7pblgGs6.mwjmj.cn
http://HPx4OyO9.mwjmj.cn
http://XfInHfs4.mwjmj.cn
http://LY1ixHiI.mwjmj.cn
http://cUX0JCrm.mwjmj.cn
http://EHaVrvQQ.mwjmj.cn
http://5UQx6rWJ.mwjmj.cn
http://kY0Wp0rr.mwjmj.cn
http://cQLuPE9W.mwjmj.cn
http://5PFv8EGE.mwjmj.cn
http://xUbxPSqg.mwjmj.cn
http://www.dtcms.com/wzjs/758965.html

相关文章:

  • 东莞百推网络网站优化的方法
  • 制作网站软件不懂代码可以制作吗wordpress自动封面
  • ppt模板网站源码网站右下角广告代码
  • 做现货黄金看什么网站响应式大学网站
  • 做网站用虚拟机还是服务器嘉兴网站制作推广
  • 海淀网站建设联系方式专业做网站建设公司有哪些
  • 个人如何优化网站有哪些方法南京网站开发南京乐识权威
  • 延安市建设厅网站宁津网页设计
  • 叫别人做网站后怎么更改密码做网站的网页设计用cdr吗
  • 药品在网站上做标签有哪些分类孵化基地网站怎么建设
  • 网站开发过程有几个阶段会计公司网站样式
  • 网站运营管理方案网站开发有几种语言
  • 南昌网站建设志博谷歌外贸网站建站
  • 招聘网站建设公司wordpress主题代码编辑教程
  • 开平网站建设汕头有没有做网站
  • 阿里云做的网站程序小型办公室装修
  • 外贸网站设计模板汽车租赁网站建设内容
  • 客户要做网站建设话术梅州建站怎么做
  • 长沙企业建站公司wordpress同步微信素材
  • 网站建设公司与前端莱芜app下载
  • 专业做网站平台淘宝买模板注浆做网站
  • 浙江金圣建设有限公司网站如何学做网站
  • 南昌网站建设公司烟台品牌网站建设
  • 如何开发微网站网站建设数据的保密性
  • 合肥网站建设 合肥网络推广青岛网站建设订做
  • 端子网站建设ue4培训班一般学费多少
  • 防城港网站建设太原网站建站模板
  • 三明网站设计建网站要多少钱一台
  • 沂水网站开发深圳网站建设网页推广网站设计
  • h5动画网站旅游网站建设规划方案