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

建设拼多多一样网站需要多少钱免费的网页游戏

建设拼多多一样网站需要多少钱,免费的网页游戏,北京商场需要几天核酸,上海专业微信网站建设文章目录 一#xff0c;131-商城业务-商品上架-构造sku检索属性1#xff0c;开发目标2#xff0c;详细设计2.1#xff0c;根据spu_id获取所有的规格参数2.2#xff0c;根据上一步中查询结果进一步确认是否可搜索2.3#xff0c;将可搜索的属性封装到Java模型中 二#xf… 文章目录 一131-商城业务-商品上架-构造sku检索属性1开发目标2详细设计2.1根据spu_id获取所有的规格参数2.2根据上一步中查询结果进一步确认是否可搜索2.3将可搜索的属性封装到Java模型中 二132-商城业务-商品上架-远程查询库存泛型结果封装1开发目标2详细设计2.1 调用库存服务的接口2.2库存服务根据sku_id查询库存量2.3根据查询结果填充模型 一131-商城业务-商品上架-构造sku检索属性 1开发目标 这一节的主要内容是完成获取规格属性信息的功能 从数据库中获取与 SPU 关联的所有规格属性。筛选出可被用于搜索的属性并转换为 ES 所需的格式。注意点1SPU的规格参数是这个SPU下所有SKU公用的查询一次即可。注意点2规程参数分为两类一类是可搜索的一类是不可搜索的。这里需要的是可搜索的规格参数。 2详细设计 ① 从pms_product_attr_value表中根据spu_id查出这个spu下所有的属性。② 根据属性Id从属性表中pms_attr查询属性是否可搜索。③ 将可搜索的属性信息封装到Es的Java模型中。 2.1根据spu_id获取所有的规格参数 ListProductAttrValueEntity baseAttrs productAttrValueService.baseAttrList4Spu(spuId);对应的Service实现非常简单。 public ListProductAttrValueEntity baseAttrList4Spu(Long spuId) {ListProductAttrValueEntity attrValueEntityList this.baseMapper.selectList(new QueryWrapperProductAttrValueEntity().eq(spu_id, spuId));return attrValueEntityList;}2.2根据上一步中查询结果进一步确认是否可搜索 汇总所有属性Id一次性查询出其中所有可搜索的属性Id。 ListLong attrIds baseAttrs.stream().map(ProductAttrValueEntity::getAttrId).collect(Collectors.toList());// 查询可搜索的规格属性ListLong searchAttrIds attrService.selectSearchableAttrs(attrIds);对应的Service实现如下。 Overridepublic ListLong selectSearchableAttrs(ListLong attrIds) {ListLong searchAttrIds this.baseMapper.selectSearchAttrIds(attrIds);return searchAttrIds;}对应的Sql如下。 select idselectSearchAttrIds resultTypejava.lang.LongSELECT attr_id FROM pms_attr WHERE attr_id INforeach collectionattrIds itemid separator, open( close)#{id}/foreachAND search_type 1/select注意search_type 1 表示这个属性可搜索。 2.3将可搜索的属性封装到Java模型中 将前两步的结果结合起来把spu下所有可搜索的属性封装到Java模型中。 SetLong idSet new HashSet(searchAttrIds);ListSkuEsModel.Attrs attrsList baseAttrs.stream().filter(item - idSet.contains(item.getAttrId())).map(item - {SkuEsModel.Attrs attrs new SkuEsModel.Attrs();BeanUtils.copyProperties(item, attrs);return attrs;}).collect(Collectors.toList());二132-商城业务-商品上架-远程查询库存泛型结果封装 1开发目标 获取库存信息 通过远程调用库存服务获取每个 SKU 的库存状态。库存状态用于确定 SKU 是否有货。 2详细设计 ① 调用库存服务的接口② 库存服务根据sku_id查询库存量③ 根据查询结果填充模型 2.1 调用库存服务的接口 通过Feign调用库存服务的接口并处理返回结果。 ListLong skuIdList skuInfoEntities.stream().map(SkuInfoEntity::getSkuId).collect(Collectors.toList());R skuHasStock wareFeignService.getSkuHasStock(skuIdList);TypeReferenceListSkuHasStockVo typeReference new TypeReferenceListSkuHasStockVo() {};stockMap skuHasStock.getData(typeReference).stream().collect(Collectors.toMap(SkuHasStockVo::getSkuId, item - item.getHasStock()));通过Feign将spu下所有的sku_id传递给库存服务。 2.2库存服务根据sku_id查询库存量 ① ware服务WareSkuController中定义供调用的接口。 PostMapping(value /hasStock)public R getSkuHasStock(RequestBody ListLong skuIds) {//skuId stockListSkuHasStockVo vos wareSkuService.getSkuHasStock(skuIds);return R.ok().setData(vos);}对应的Service实现如下。 Overridepublic ListSkuHasStockVo getSkuHasStock(ListLong skuIds) {ListSkuHasStockVo skuHasStockVos skuIds.stream().map(item - {Long count this.baseMapper.getSkuStock(item);SkuHasStockVo skuHasStockVo new SkuHasStockVo();skuHasStockVo.setSkuId(item);skuHasStockVo.setHasStock(count null?false:count 0);return skuHasStockVo;}).collect(Collectors.toList());return skuHasStockVos;}对应的Dao层Sql如下逻辑非常简单查询可用库存大于0的sku_id。 select idlistWareIdHasSkuStock resultTypejava.lang.LongSELECTware_idFROMwms_ware_skuWHEREsku_id #{skuId}AND stock - stock_locked 0/select2.3根据查询结果填充模型 调用库存接口查询到结果之后从响应R中取出数据注意因为R本质是一个Map所以需要将Map中的数据序列化为我们需要的类型这里使用了阿里的FastJson工具包中的TypeReference完成这个任务。 R skuHasStock wareFeignService.getSkuHasStock(skuIdList);TypeReferenceListSkuHasStockVo typeReference new TypeReferenceListSkuHasStockVo() {};stockMap skuHasStock.getData(typeReference).stream().collect(Collectors.toMap(SkuHasStockVo::getSkuId, item - item.getHasStock()));public T T getData(TypeReferenceT typeReference) {Object data get(data); //默认是mapString jsonString JSON.toJSONString(data);T t JSON.parseObject(jsonString, typeReference);return t;}拿到结果之后在遍历Sku的循环体中填充库存信息。 // 4.2 设置库存信息if (finalStockMap null) {esModel.setHasStock(true);} else {esModel.setHasStock(finalStockMap.get(sku.getSkuId()));}这样注意从响应中取得结果的方式是开发中常用的技巧。
http://www.hkea.cn/news/14563859/

相关文章:

  • asp.net网站连接mysql郴州做网站公司
  • 河南网站排名优化佛山网站设计讯息
  • 江苏省建设工程协会网站要搭建网站
  • 邯郸信息港二手车出售seo是东莞企业网站排seo
  • 建一个类似淘宝的网站需要多少钱园区 网站建设方案
  • 第一ppt模板免费下载网站郑州百度推广网站建设
  • 门户网站那个程序比较网站设计制作简单实例
  • html5做网站北京最大做网站的公司有哪些
  • 网站开发的例子自媒体怎么入门
  • 新乡做网站公兰州网络推广制度
  • 中国设计网站官网地址wordpress 迁移插件
  • 二手交易网站建设内容策划推广平台大全
  • 网络传媒网站网站策划方案 优帮云
  • 如何建设淘宝客网站手机网站制作
  • 整站优化该怎么做证件查询官网入口
  • 哪里有网站app制作wordpress post date
  • 富阳网站设计网站建设佰金手指科杰六
  • 东台网站制作公司上海免费建站模板
  • 网站建设后台管理便捷做网站文字怎么围绕图片
  • 做网站的公司现在还 赚钱吗6wordpress 扁平化主题
  • 重庆网站设计智能 乐云践新怎么看一个网站的cms
  • 哪个网站的ppt模板最好福鼎网站建设培训
  • 2017最新网站icp备案哪里建网站性价比高
  • 东莞市住房建设局网站首页汉中市网站建设
  • 创同盟网站一般的学校网站怎么做
  • 厦门网盛网站开发内部网站可以做ipc备案
  • 网站前端代码有哪些问题网站建设及管理制度文章
  • 国企门户网站建设方案90设计是免费下载吗
  • 漂亮的网站框架网站内容好
  • 再网站里做商家店铺深圳互联网公司招聘信息