测试java文件链接

购物类商城,选择规格的时候,有些规格因为没货,需要置灰,下面是我使用的计算方法,供大家参考。

原理:每一组的可选规格,由其他组的选中规格决定,意思就是,第一组的可选规格,由其他第二组、第三组.....的选中情况决定。

假如:某衣服有如下规格()中为规格id,计算方法用到: 
颜色:黑色(1)、白色(2)、红色(3)
尺码:L(4)、XL(5)、XXL(6)
样式:修身(7)、宽松(8)

所有组合种类 共有 3*3*2=18种, 假如1_5_8,2_4_8 这两个组合没有货

第一步:去除所有无货组合
第二步:
//这个集合用来存放所有有货的组合
List<String> list = new ArrayList<>();
list.add("1_4_7");
list.add("1_5_7");
list.add("1_6_7");
list.add("1_4_8");
.........
//这个用来存放每一组当前选中的规格id,key对应规格的组下标
Map<String,String> map = new LinkedHashMap();
map.put("0","2");//第一组 
map.put("1",""); //第二组
map.put("2","7");//第三组

计算方法:

/*** @param list  id 的有效组合* @param map   key 为规格分组的下标* @return   所有组的可用id拼接的字符串*/
static String getInfoId(List<String> list,Map<String,String> map){//所有可用的idString enableIDs = "";//遍历每一行分组,判断分组中哪些可以选中for(String key:map.keySet()){//分组的下标,行int index = Integer.valueOf(key);//遍历所有有效的id组合,判断能否匹配选中的for(String entity:list){//假设都可以选中boolean flag = true;//通过比较非本分组中的选中的id ,判断当前分组中哪些id可以选for(String key1:map.keySet()){//遍历分组if(index == Integer.valueOf(key1)){//跳过当前分组continue;}if(!entity.contains(map.get(key1))){//id组合不包含选中的id,则该组合不可选中flag = false;}}if(flag){//该组合的 对应分组中的id可用if(!enableIDs.contains(entity.split("_")[index])){enableIDs = enableIDs + entity.split("_")[index] + ",";}}}}return enableIDs;
}

购物商城,规格选择,无货的规格置灰计算方法相关推荐

  1. Django 19购物商城项目(收货地址:添加、修改)

    dDjango 19购物商城项目 1.新建axf_addr,收货地址表 2.路由 3.cart页面,添加默认收货地址 4.视图(主要修改了cart.新建了收货地址相关方法) 5.收货地址列表 6.收货 ...

  2. 规格选择_止水螺杆规格及选择

    一般情况下,客户在选择止水螺杆规格的时候,需要根据工地自身的墙高来计算,正常5M以下的板墙高度我们建议使用直径12mm的止水螺杆,这样刚刚好,用直径14mm的止水螺杆显得浪费,所以在选择止水螺杆规格的 ...

  3. iOS 走近商城 APP(三 WKWebView 商品规格选择框架封装)

    原文链接:http://www.jianshu.com/p/293ee1bfe104 商城 -- 由 3033 分享 开篇 忽然发现最近也只有值班才能写东西了,中间更新了两篇其他的断了下商城相关的文章 ...

  4. 商品规格表的制作 mysql_购物商城数据库设计-商品表DDL(Mysql)

    大家好,之前我们设计了购物商城的商品表结构(原文链接),现在我们来具体实现表的DDL. 下载地址:前往下载 新建一个数据库,名字叫mall,基字符集:utf-8,:数据库排序规则:utf-8_gene ...

  5. 电商商品规格选择逻辑

    最近两天在搞商品详情页规格选择逻辑,要被折腾死,在这里写下逻辑,第一次写有不对的地方还请指出-.- 例:商品A 规格:(数据库存储一般是json+数组的形式) 颜色:红 蓝 黄 尺寸:M S L 套餐 ...

  6. 图像测试卡规格选择——SFRplus测试卡

    图像测试卡规格选择--SFRplus测试卡 我们知道,目前对于摄像头的测试,图像测试卡配合测试软件的解决方案,由于其便捷搭建与操作在摄像头测试中已经越来越普遍.针对不同的摄像头,我们需要知道如何去选择 ...

  7. 使用vue实现多规格选择实例

    相信在做商城的时候,很多人都会遇到规格选择这一块功能.在我刚开始接触规格的时候,有点迷茫,不知该如何下手,因为要考虑到后端那边返回的数据结构.库存.多规格等等问题,所以当时是有点懵逼.然后仔细查找相关 ...

  8. 规格选择_Axure教程:实现商品规格选择功能

    这篇文章分别使用到了我先前的四篇文章:<Axure教程:实现商品分享功能>.<Axure教程:数量加减的实现>.<Axure教程:规格的实现>.<Axure教 ...

  9. 规格选择_日常使用的拉杆箱脚轮选择哪种规格最合适?

    大家可能在采购拉杆箱脚轮的时候,都会有一个问题,拉杆箱脚轮规格选择哪种比较好呢?万向轮好还是单向轮?是万向轮还是单向轮比较耐磨?脚轮厂家诺贝小编接收到大家的疑问,接下来将告诉大家拉杆箱脚轮选择的规格. ...

最新文章

  1. 《python 与数据挖掘 》一 1.2 工具简介
  2. css布局左右2边固定,中间自适应
  3. 春色满园关不住,带你体验阿里云 Knative
  4. C++的三种访问权限的继承
  5. sql server 2008学习4 设计索引的建议
  6. 在 TreeView 控件中显示分层数据
  7. python UDP-数据报协议
  8. VB更改任何标题程序源代码
  9. 网络安全分析 | 用OpenFEA定位WebShell木马后门
  10. SM2椭圆曲线公钥加密算法
  11. 『解疑』vue修改html图标,tilte左边的图标(以图片格式作为图标)
  12. 英文信的开头和结尾的客套话有哪些?
  13. Linux man --显示在线手册页
  14. odl源码系列一restconf模块
  15. 【言简意赅】聊聊DAS、NAS、SAN三种存储方式
  16. 微信利用小号和大号的好友聊天(基于wxpy库)
  17. 计算机控制系统第2次作业,201609计算机控制系统作业2
  18. Codeforces Round #815 (Div. 2)
  19. Mac下的终端(terminal)常用命令
  20. 葛洛夫、盖兹、施振荣、张忠谋、Michael Dell的30岁

热门文章

  1. 地图找房(五)01——移动小区到地图中心
  2. 英伟达,老版本显卡查询接口
  3. 让input框只输入英文
  4. 简述区块链开发与应用
  5. i5 10600kf和R5 3600X哪个好
  6. Lesson 7 Too late 为时太晚
  7. 谷歌chrome浏览器无法播放youtube1080p以上分辨率的视频
  8. Linux内核驱动开发的EXPORT_SYMBOL
  9. the procedure entry point **(function symble) could not be located in the dynamic link library **.dl
  10. Elasticsearch API查询