创建购物车模块及业务逻辑

更新时间:2023-06-14 17:47:08 阅读: 评论:0

创建购物车模块及业务逻辑⼀、创建购物车前后端模块
⼆、cart购物车Web前端的properties⽂件:
#端⼝号
rver.port=8085
#⽇志级别
=info
#dubbo协议
#dubbo中的服务名称
spring.dubbo.application=cart-web
#protocol协议的意思,即dubbo通讯协议
spring.dubbo.protocol.name=dubbo
#zookeeper注册中⼼地址,registry注册的意思
istry.address=172.25.0.11:2181
#protocol协议的意思,registry注册的意思,即zookeeeper注册协议
istry.protocol=zookeeper
#dubbo扫描包路径
spring.dubbo.ba-package=all
#设置超时10分钟,防⽌debug启动断点测试的时候超时
sumer.timeout=600000
#设置检测服务是否启动,服务启动了,消费者再去消费
sumer.check=fal
# 关闭thymeleaf的缓存(热部署)
spring.thymeleaf.cache=fal
# 松校验
de=LEGACYHTML5
Resource资源⽂件中:
**static⽂件夹:**属于静态页⾯,可以通过浏览器直接访问
**templates⽂件夹:**都是渲染模块,属于java代码,在服务器属于隐藏路径
三、购物车业务逻辑
1、未登陆的⽤户,可以使⽤购物车,需要引⼊浏览器cookie的操作。
2、登陆的⽤户,在使⽤购物车,则需要使⽤mysql和redis来存储数据,redis作为购物车的缓存
3、⽤户未登陆添加购物车cookie缓存,或者⽤户已经登陆添加购物车。
允许购物车中的数据和原始商品数据的不⼀致性(这个是典型的数据弱⼀致性)。
假设管理员从后台修改了某⼀个sku商品信息,或者某个sku商品下架了,⽤户的购物车不需要及时的更新,⽽且也更新不过来,上⼗亿的商品,如果使⽤强⼀致性,数据量就⾮常的庞⼤,对服务器就造成巨⼤的压⼒
只需要保持⽤户的购物车所添加的商品不变即可!
4、购物车同步合并问题(未登陆的cookie购物车和登陆的购物车合并)
什么时候同步合并(结算、登陆的时候合并购物车)
同步合并购物车后,需要删除cookie购物车数据(因为防⽌下次登陆⼜重复同步;或者别⼈购买之后,退出账户,为了保护⽤户隐私)5、⽤户在不同的客户端同时登陆,如何处理购物车的数据?
四、购物车的添加功能
1、传递参数(商品skuId、添加数量)
2、根据skuId调⽤skuService查询商品的详细信息
挨炮3、将商品的详细信息封装成购物车信息
maxcms4、判断⽤户是否登录
5、如果未登陆执⾏cookie操作,如果登录了则执⾏db操作
购物车数据进⾏写⼊:
Cookie:写⼊:respon.addCookie(cookie),拿出来:Cookie()
Cookie跨域问题:⼆级域名相互之间的cookie是不共享的,如:和两个⽹站保存的cookie不相互共享的。如果保存到jd.com的⼀级域名,则全部⼆级域名共享。
设置域的⽅法解决:
tDomain(),getDomain()保存⼀级域名的cookie
五、cookie技术⽐较常⽤,那么我们需要把它添加进spring容器⾥(和redis技术⼀样),这⾥在web-util模块创建cookie⼯具类,加⼊以下源码:
这样我们就可以在任何有加⼊web-util模块依赖的其他模块,直接使⽤cookie技术了
public class CookieUtil {
/***
* 获得cookie中的值,默认为主ip:
* @param request
* @param cookieName
* @param isDecoder
* @return
*/
public static String getCookieValue(HttpServletRequest request, String cookieName,boolean isDecoder){
Cookie[] cookies = Cookies();
if(cookies == null || cookieName == null){
return null;
}
String retValue = null;
try{
for(int i =0; i < cookies.length; i++){
if(cookies[i].getName().equals(cookieName)){
if(isDecoder){//如果涉及中⽂
retValue = URLDecoder.decode(cookies[i].getValue(),"UTF-8");
}el{
合同履约retValue = cookies[i].getValue();
}最臭兵器
break;
}
}
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}
return retValue;
}
/***
* 设置cookie的值
* @param request
* @param respon
* @param cookieName
* @param cookieValue
* @param cookieMaxage
* @param isEncode
*/
public static void tCookie(HttpServletRequest request, HttpServletRespon respon, String cookieName, String cookieValue,int cookieMaxage,bo olean isEncode){
olean isEncode){
try{
if(cookieValue == null){
cookieValue ="";
}el if(isEncode){
cookieValue = de(cookieValue,"utf-8");
}
Cookie cookie =new Cookie(cookieName, cookieValue);
if(cookieMaxage >=0)
cookie.tMaxAge(cookieMaxage);
if(null != request)// 设置域名的cookie
cookie.tDomain(getDomainName(request));
// 在域名的根路径下保存
cookie.tPath("/");
respon.addCookie(cookie);
}catch(Exception e){
e.printStackTrace();
}
}
/***
* 获得cookie的主域名,本系统为,保存时使⽤
* @param request
* @return是谓过矣
*/
private static final String getDomainName(HttpServletRequest request){
气的词语
String domainName = null;
String rverName = RequestURL().toString();
if(rverName == null || rverName.equals("")){
domainName ="";
}el{
rverName = LowerCa();
小泉一隆重开业rverName = rverName.substring(7);
final int end = rverName.indexOf("/");
rverName = rverName.substring(0, end);
final String[] domains = rverName.split("\\.");
int len = domains.length;
if(len >3){
//
domainName = domains[len -3]+"."+ domains[len -2]+"."+ domains[len -1];
}el if(len <=3&& len >1){
// or xxx
domainName = domains[len -2]+"."+ domains[len -1];
}el{
domainName = rverName;
}
}
if(domainName != null && domainName.indexOf(":")>0){
String[] ary = domainName.split("\\:");
domainName = ary[0];
}
System.out.println("domainName = "+ domainName);
return domainName;
}
/***
* 将cookie中的内容按照key删除
* @param request
* @param respon
* @param cookieName
*/
public static void deleteCookie(HttpServletRequest request, HttpServletRespon respon, String cookieName){ tCookie(request, respon, cookieName, null,0,fal);
}
}

本文发布于:2023-06-14 17:47:08,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/954166.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:购物车   数据   商品
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图