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

绵阳哪个网站做外卖做的好企查查网页版

绵阳哪个网站做外卖做的好,企查查网页版,做国际贸易的网站,深圳电器公司邮编1.持久层[Mapper] 1.1规划需要执行的SQL语句 1.更新该商品的数量.此SQL语句无需重复开发 update t_cart set num?,modified_user?,modified_time? where cid? 2.首先进行查询需要操作的购物车数据信息【查看该条数据是否存在】 SELECT * FROM t_cart WHERE cid?2.接口…1.持久层[Mapper] 1.1规划需要执行的SQL语句 1.更新该商品的数量.此SQL语句无需重复开发 update t_cart set num?,modified_user?,modified_time? where cid? 2.首先进行查询需要操作的购物车数据信息【查看该条数据是否存在】 SELECT * FROM t_cart WHERE cid?2.接口和抽象方法 在CartMapper接口中添加抽象方法 Cart findByCid(Integer cid);3 编写映射 在CartMapper文件中添加findByCid(Integer cid)方法的映射 select idfindByCid resultMapCartEntityMapselect *from t_cartwhere cid#{cid};/select 4 单元测试 在CartMapperTests测试类中添加findByCid()测试方法 Test public void findByCid() {System.out.println(cartMapper.findByCid(1)); }2.业务层[service] 1规划异常 在更新时产生UpdateException未知异常,此异常类无需再次创建可能该购物车列表数据归属不是登录的用户,抛AccessDeniedException异常,此异常类无需再次创建要查询的数据不存在.抛出CartNotFoundException异常,创建该异常类并使其继承ServiceException /** 购物车数据不存在的异常 */ public class CartNotFoundException extends ServiceException {/**重写ServiceException的所有构造方法*/ }2设计接口和抽象方法及实现 在业务层ICartService接口中添加addNum()抽象方法 1.先判断需要哪些参数,该抽象方法的实现依赖于CartMapper接口的两个方法: updateNumByCid方法.参数是cid,num,String modifiedUser,Date modifiedTime findByCid方法.参数是cid 在业务层中从购物车表查询到该商品的数量,然后再和前端传过来的增加的数量进行求和得到num 所以该方法的参数是cid,uid,username 2.判断一下该方法的返回值: 该方法返回值void.这样的话就需要在前端页面加location.href使该页面自己跳转到自己,实现刷新页面(不建议,每次都加载整个页面,数据量太大了)返回值是Integer类型.这样的话就把数据库中更新后的数量层层传给前端,前端接收后填充到控件中就可以了 /** * 增加用户的购物车中某商品的数量 * param cid * param uid * param username * return 增加成功后新的数量 */ Integer addNum(Integer cid,Integer uid, String username);3.在CartServiceImpl类中实现接口中的抽象方法 /*** 更新用户的购物车数量的数据** 调用了updateNumByCid(cid,num,modifiedUser,modifiedTime)* 和findByCid(cid)* Integer:返回的是最新的购物车数量*/Overridepublic Integer addNum(Integer cid, Integer uid, String username) {Cart result cartMapper.findByCid(cid);if(result null) {throw new CartNotFoundException(购物车数据不存在);} else if(! result.getUid().equals(uid)) {throw new AccessDeniedException(数据非法访问);}Integer num result.getNum() 1;Integer rows cartMapper.updateNumByCid(cid, num, username, new Date());if(rows ! 1) {throw new UpdateException(更新数据失败);}return num;} 3单元测试 就接收个参数,然后业务层将其加一后返回,不需要再测了 3.控制层[Controller] 1处理异常 在BaseController类中添加CartNotFoundException异常类的统一管理 else if (e instanceof CartNotFoundException) {result.setState(4007);result.setMessage(购物车表不存在该商品的异常); }2设计请求 /carts/{cid}/num/addpostPathVariable(“cid”) Integer cid, HttpSession sessionJsonResultInteger 3处理请求 在CartController类中添加处理请求的addNum()方法 PostMapping(/{cid}/add_num)public JsonResultInteger addNum(PathVariable(cid) Integer cid,HttpSession session){Integer data cartService.addNum(cid,getuidFromSession(session),getUsernameFromSession(session));return new JsonResult(OK,data);} 4.前端页面 1.首先确定在showCartList()函数中动态拼接的增加购物车按钮是绑定了addNum()事件如果已经添加无需重复添加 input classnum-btn typebutton value onclickaddNum(#{cid}) /2.在script标签中定义addNum()函数并编写增加购物车数量的逻辑代码 //添加商品按钮function addNum(cid){$.ajax({url:/cart/cid/add_num,type: POST,dataType:JSON,success(e){console.log(e.state)if (e.state200){//input idgoodsCount#{cid} typetext size2 readonlyreadonly classnum-text value#{num}//修改商品数量// val(): 因为这里使用val是为了修改value的值$(#goodsCount cid).val(e.data);//td¥span idgoodsPrice#{cid}#{singlePrice}/span/td//商品单价//html():选中所选元素的html可能有html元素let singlePrice$(#goodsPricecid).html();let totalPricesinglePrice*e.data;//表示将总数加入页面中//tdspan idgoodsCast#{cid}#{totalPrice}/span/td$(#goodsCastcid).html(totalPrice);}else{alert(增加购物车数据失败e.message)}},error(xhr){alert(增加购物车商品数据加载产生未知的异常xhr.status)}})} 1.持久层[Mapper] 1.规划需要执行的SQL语句 1.判断当前要删除的商品是否还存在[原来的findById] selct * from t_cart where uid? and cid? 2.如果该商品在该用户的购物车中本来就有则对其的操作是进行数据更新[原来的updateNumByCid] 2.接口和抽象方法 1.在CartMapper.java /*** 修改购物车数据中商品的数量* param cid 购物车数据的id* param num 新的数量* param modifiedUser 修改执行人* param modifiedTime 修改时间* return 受影响的行数*/Integer updateNumByCid(Param(cid) Integer cid,Param(num) Integer num,Param(modifiedUser) String modifiedUser,Param(modifiedTime) Date modifiedTime);/*** 根据用户id和商品id查询购物车中的数据* param uid 用户id* param pid 商品id* return 匹配的购物车数据如果该用户的购物车中并没有该商品则返回null*/Cart findByUidAndPid(Param(uid) Integer uid,Param(pid) Integer pid);3.编写映射 !-- 修改购物车数据中商品的数量--update idupdateNumByCidupdate t_cart setnum#{num},modified_user#{modifiedUser},modified_time#{modifiedTime}where cid#{cid}/update!-- 根据用户id和商品id查询购物车中的数据--select idfindByUidAndPid resultMapCartEntityMapselect * from t_cart where uid#{uid} AND pid#{pid}/select4.测试代码 此测试代码可以省略 2.业务层[Service] 1.规划异常 在删除的时候可能该数据被删除造成删除异常在更新时产生UpdateException未知异常,此异常类无需再次创建可能该购物车列表数据归属不是登录的用户,抛AccessDeniedException异常,此异常类无需再次创建要查询的数据不存在.抛出CartNotFoundException异常,创建该异常类并使其继承ServiceException 2.设计接口和抽象方法的实现 1.ICartService /*** 更新用户的购物车数据--减少* param cid* param uid* param username* return*/Integer subNum(Integer cid,Integer uid,String username); 2.ICartServiceImpl /*** 更新用户的购物车数据--减少* param cid* param uid* param username* return*/Overridepublic Integer subNum(Integer cid, Integer uid, String username) {Cart result cartMapper.findByCid(cid);if(resultnull){throw new CartNotFoundException(购物车数据不存在);}if(!result.getUid().equals(uid)){throw new AccessDeniedException(数据非法访问);}Integer numresult.getNum()-1;Integer rows cartMapper.updateNumByCid(cid, num, username, new Date());if(rows!1){throw new UpdateException(更新数据失败);}return num;} 3.单元测试 Testpublic void subNum(){cartService.subNum(3,7,管理员);} 3.控制层[Controller] 1.处理异常 前面增加功能已经实现不用重复执行 2.设计请求 /cart/sub_num/{cid}postPathVariable(cid) Integer cid,HttpSession sessionJsonResultInteger 3.处理请求 /*** 在购物车列表中减少商品数量* param cid* param session* return*/PostMapping(/sub_num/{cid})public JsonResultInteger subNum(PathVariable(cid) Integer cid,HttpSession session){Integer data cartService.subNum(cid,getuidFromSession(session),getUsernameFromSession(session));return new JsonResult(OK,data);} 4.前端页面 1.首先确定在showCartList()函数中动态拼接的增加购物车按钮是绑定了reduceNum()事件如果已经添加无需重复添加 input idprice-#{cid} typebutton value- classnum-btn onclickreduceNum(#{cid}) / function reduceNum(cid) {$.ajax({url: /cart/sub_num/cid,type: POST,dataType: JSON,success: function(json) {if (json.state 200) {// showCartList();$(#goodsCount cid).val(json.data);let price $(#goodsPrice cid).html();let totalPrice price * json.data;$(#goodsCast cid).html(totalPrice);} else {alert(修改商品数量失败 json.message);}},error: function(xhr) {alert(您的登录信息已经过期请重新登录HTTP响应码 xhr.status);location.href login.html;}});}
http://www.dnsts.com.cn/news/175628.html

相关文章:

  • 网站建设实务课本西安网站优化seo
  • 涂料 网站 源码网站代码审计
  • 建筑公司网站背景图wordpress 自助建站
  • 如何注册网站的名字云南网站建设公司排行
  • wordpress访问量阅读量安卓系统最好优化软件
  • 做网站后要回源码有何用免费的购物网站源码
  • 做自己的网站怎么购买空间沈阳专业做网站开发公司
  • 宁波网站推广运营北京市建设教育协会网站首页
  • 红安县城乡建设局网站建筑资料网
  • 织梦做的网站页面打不开html5做旅游网站
  • 网站规划的案例深圳网站建设公司服务流程
  • 云南网站建设运营wordpress后台设置教程
  • php网站源码带后台全球ip代理
  • 学做淘宝客网站建设公司企业评语
  • paypal网站集成越秀高端网站建设
  • 阿里云网站建设考试题目关于12380网站建设文件
  • 企业网站设计与制作建设厅投诉网站
  • 做网站要有策划么wordpress自定义分类模板下载
  • 晋江网站开发中山做网站哪家专业
  • 任意的关键词或网站做引流上海公司注销流程及费用
  • 微信开发小程序公司网站优化月总结
  • 临猗网站建设西安建设网站电话号码
  • 什么是网站开发与建设网站后台使用培训
  • 创同盟网站属于网站开发的动态服务器
  • 卖灯杆的做网站好wordpress搬家config文件
  • 网站设计模版安阳县事业单位
  • 嘉兴cms模板建站怎么做网站的ico
  • 英文营销网站 知乎石家庄城乡建设部网站首页
  • 深圳建站公司 企网站怎么设计平台
  • 做网店的网站保山市城市建设网站