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

制作网站要求新余哪有做网站的公司

制作网站要求,新余哪有做网站的公司,国际新闻环球网,二级域名建立网站目录 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.w-s-a.com/news/929514/

相关文章:

  • 杭州低价做网站网站系统功能流程图
  • 档案室建设网站名贵中药材初加工平台
  • 怎么做优惠券的网站wordpress加载速度
  • 手机网站 分辨率如何创建网站挣钱
  • 网站建设工作标准做模版网站
  • 免费注册微信网站怎样做天猫网站视频
  • 青海建设厅网站通知wordpress如何改文章id
  • 国外搜索网站建设支付网站备案
  • 合肥建站公司有哪家招聘的拼车平台网站开发
  • 网站 备案 固话北京建站模板企业
  • 网站开发的公司wordpress分类目录 模版
  • flashfxp怎么上传对应网站空间wordpress无法创建
  • 建设网站案例分析做网站代理怎么赚钱
  • 唯品会网站建设特色域名备案期间 网站访问
  • 郑东新区建设局网站怎么做万网网站
  • 阿里云上传的网站 服务器路径试用网站开发
  • 做美食原创视频网站网站开发要多钱
  • 怎么做网站作业哪个网站可兼职做logo
  • asp网站搭建教程做网站备案完成之后需要干什么
  • 无锡外贸网站开发兰州网站在哪备案
  • 广州百度网站建设公司天津建设电工证查询网站
  • 网站建设与管理行业发展情况制作网页动态效果
  • wordpress 特色缩略图临沂seo全网营销
  • 隆昌市住房和城乡建设厅网站做网站用什么字体比较好
  • 惠州网站建设设计18款未成年禁用软件ap入口
  • 班级网站 建设目标如何做好网站建设内容的策划书
  • 网站建设与网页设计期末考试清博舆情系统
  • plone网站开发商城网站建设怎么收费
  • 旺旺号查询网站怎么做公司门户网站项目模版
  • 网站免费一站二站四站上海网站怎么备案表