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

电子商务网站功能设计企业网站步骤

电子商务网站功能,设计企业网站步骤,竞价推广的企业,拉新app推广平台排名目录 1.购物车常见的实现方式 2.购物车数据结构介绍 3.实例分析 1.controller层 2.service层 1.购物车常见的实现方式 方式一#xff1a;存储到数据库 性能存在瓶颈方式二#xff1a;前端本地存储 localstorage在浏览器中存储 key/value 对#xff0c;没有过期时间。s… 目录 1.购物车常见的实现方式 2.购物车数据结构介绍 3.实例分析 1.controller层 2.service层  1.购物车常见的实现方式 方式一存储到数据库 性能存在瓶颈方式二前端本地存储 localstorage在浏览器中存储 key/value 对没有过期时间。sessionstorage在浏览器中存储 key/value 对在关闭会话窗口后将会删除这些数据。方式三后端存储到缓存-redis 可以开启AOF持久化防止重启丢失推荐方式四后端存储到缓存-redis并同步更新到数据库 缓存和数据库的一致性加了用户唯一标识后没高并发操作同一数据的场景  2.购物车数据结构介绍 1.一个购物车中存在多个购物项2.使用双层MapMapString,MapString,String  第一层map的key表示用户id第二层map的key表示商品id3.对应的reids使用hash结构   3.实例分析 1.controller层 ApiOperation(添加到购物车)PostMapping(/add)public JsonData addToCart(ApiParam(购物的商品) RequestBody CartItemRequest cartItemRequest){cartService.addToCart(cartItemRequest);return JsonData.buildSuccess();} 2.service层  使用redis的hash结构模式进行存储 1.根据拦截器获取用户id2.根据id拼接key3.根据key创建hash结构的购物车4.根据商品id查询购物车中是否存在 5.1若不存在-添加商品到购物车 6.根据商品的id获取指定商品的详情7.创建商品并添加需要的信息8.以商品的id为键以商品为值转化为json字符串缓存到redis中4.2.若存在-修改购买的数量 6.根据key获取到的value反转json获取到商品7.修改购买的数量原本数量购买的数量8.以商品的id为键以商品为值转化为json字符串缓存到redis中 Slf4j Service public class CartServiceImpl implements CartService {Autowiredprivate RedisTemplate redisTemplate;Autowiredprivate ProductService productService;/*** 添加商品到购物车** param cartItemRequest*/Overridepublic void addToCart(CartItemRequest cartItemRequest) {//1.获取商品信息Long productId cartItemRequest.getProductId();Integer buyNum cartItemRequest.getBuyNum();//2.根据用户id获取购物车BoundHashOperationsString, Object, Object myCart getMyCartOps();//3.根据商品id的key获取缓存中valueObject cacheObj myCart.get(productId);String result ;if (cacheObj ! null) {result (String) cacheObj;}//4.判断缓存中是否存在商品if (StringUtils.isBlank(result)) {//5.1若不存在添加商品到购物车//6.创建购物商品CartItemVo cartItemVo new CartItemVo();//7.获取商品详情ProductVo productVo productService.detail(productId);if (productVo null) {throw new MyException(CodeEnum.CART_FAIL);}//8.根据商品详情获取指定信息cartItemVo.setAmount(productVo.getAmount());//获取商品的价格cartItemVo.setBuyNum(buyNum);//获取买的数量cartItemVo.setProductId(productId);//商品的idcartItemVo.setProductImg(productVo.getCoverImg());//商品图片cartItemVo.setProductTitle(productVo.getTitle());//商品标题//9.以商品id为键以根据id获取的商品对象为值转换为json字符串存放到redis中myCart.put(productId, JSON.toJSONString(cartItemVo));} else {//5.2若存在修改商品数量//6.根据key值转换为商品类型在获取CartItemVo cartItemVo JSON.parseObject(result, CartItemVo.class);//7.修改买的数量原本后买的cartItemVo.setBuyNum(cartItemVo.getBuyNum() buyNum);//8.重新放回myCart.put(productId, JSON.toJSONString(cartItemVo));}}/*** 使用redis中的hash结构** return*/private BoundHashOperationsString, Object, Object getMyCartOps() {//1.获取购物车keyString cartKey getCartKey();return redisTemplate.boundHashOps(cartKey);}/*** 根据用户id创建购物车的key* 购物车key** return*/private String getCartKey() {LoginUser loginUser LoginInterceptor.threadLocal.get();String cartKey String.format(CaptchaKey.CART_KEY, loginUser);return cartKey;} }
http://www.pierceye.com/news/17705/

相关文章:

  • 沈阳建站多少钱网站提交搜索引擎
  • 网站开发项目验收报告怎么做网站呀
  • 网站后台从哪里进去丽江网页制作公司
  • 门户网站类型购物网站的建设费用
  • 高端网站设计 公司新鸿儒重庆seo技术博客
  • 浙江同安建设有限公司网站重庆seo点击工具
  • seo搜索引擎优化题库南昌网站排名优化报
  • 门户网站建设思路商务网站创建经费预算
  • 做外贸网站进行销售 需要纳税吗骏域网站建设专家
  • 如何制作一个手机网站源码猪八戒托管赏金做网站
  • 潍坊网站建设诸城高密wordpress密码访问插件
  • django做的购物网站任县网站建设设计
  • 动易网站模板wordpress修改功能小工具栏
  • 北京网站制作西安石家庄网站建设开发
  • 哪个网站做马代路线好长沙建网站培训
  • 大宇网络做网站怎么样微信推广员当年的推广费
  • 软件下载网址seo网络贸易网站推广
  • 静态网站开发篇阿里能帮做网站吗
  • 中国搜索提交网站网站建设公司宣传标语
  • 网站建设与管理案例教程 柳广州注册公司流程和费用
  • 南阳网站建设制作济南自助建站系统
  • crm管理软件推广优化
  • 教育类的网站方案免费查企业电话网站
  • 企业网站管理系统信得过y湖南岚鸿怎么样旅游网站建设的论文
  • 怎么在wordpress建站分销系统网站建设
  • 网站登录界面模板互联网门户是什么意思
  • 商城建设网站开发贵州省住房和城乡建设厅网
  • 学做静态网站汕头网页制作
  • 新手学做免费网站软件好响应式网站 尺寸
  • 通过阿里云建设企业网站团建网站建设