package com.taover.bazhuayun.analysis.script.goodscollect; import java.util.List; public class GoodsInfoRow implements Comparable{ private String originGoodsName; private String commonGoodsName; private String groupNickname; private String originGoodsSkuName; private String commonGoodsSkuName; private String senderNickname; public GoodsInfoRow(GroupInfoExcelDataRow groupInfo, GoodsInfoExcelDataHeader header, List data) { if(groupInfo != null) { this.groupNickname = groupInfo.getGroupName(); this.senderNickname = groupInfo.getSendNickname(); }else { this.groupNickname = ""; this.senderNickname = ""; } this.originGoodsName = this.getEmptyStrWhenNull(data, header.getGoodsNameIndex()); this.originGoodsSkuName = this.getEmptyStrWhenNull(data, header.getGoodsSkuNameIndex()); } private String getEmptyStrWhenNull(List data, Integer goodsNameIndex) { if(goodsNameIndex == null) { return ""; } if(data.size() > goodsNameIndex) { Object temp = data.get(goodsNameIndex); if(temp == null) { return ""; }else { return temp.toString(); } }else { return ""; } } public String getOriginGoodsName() { return originGoodsName; } public void setOriginGoodsName(String originGoodsName) { this.originGoodsName = originGoodsName; } public String getCommonGoodsName() { return commonGoodsName; } public void setCommonGoodsName(String commonGoodsName) { this.commonGoodsName = commonGoodsName; } public String getGroupNickname() { return groupNickname; } public void setGroupNickname(String groupName) { this.groupNickname = groupName; } public String getOriginGoodsSkuName() { return originGoodsSkuName; } public void setOriginGoodsSkuName(String originGoodsSkuName) { this.originGoodsSkuName = originGoodsSkuName; } public String getCommonGoodsSkuName() { return commonGoodsSkuName; } public void setCommonGooodsSkuName(String commonSkuName) { this.commonGoodsSkuName = commonSkuName; } public String getSenderNickname() { return senderNickname; } public void setSenderNickname(String senderNickname) { this.senderNickname = senderNickname; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((groupNickname == null) ? 0 : groupNickname.hashCode()); result = prime * result + ((originGoodsName == null) ? 0 : originGoodsName.hashCode()); result = prime * result + ((originGoodsSkuName == null) ? 0 : originGoodsSkuName.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; GoodsInfoRow other = (GoodsInfoRow) obj; if (groupNickname == null) { if (other.groupNickname != null) return false; } else if (!groupNickname.equals(other.groupNickname)) return false; if (originGoodsName == null) { if (other.originGoodsName != null) return false; } else if (!originGoodsName.equals(other.originGoodsName)) return false; if (originGoodsSkuName == null) { if (other.originGoodsSkuName != null) return false; } else if (!originGoodsSkuName.equals(other.originGoodsSkuName)) return false; return true; } @Override public int compareTo(GoodsInfoRow o) { if(o == null) { return 1; } if(this.equals(o)) { return 0; }else { return this.calcDistince(o); } } private int calcDistince(GoodsInfoRow o) { int groupDistince; if(this.groupNickname == null && o.groupNickname == null) { groupDistince = 0; }else if(this.groupNickname == null){ groupDistince = 0 - o.groupNickname.hashCode(); }else if(o.groupNickname == null) { groupDistince = this.groupNickname.hashCode(); }else { groupDistince = this.groupNickname.hashCode()-o.groupNickname.hashCode(); } int goodsNameDistince; if(this.originGoodsName == null && o.originGoodsName == null) { goodsNameDistince = 0; }else if(this.originGoodsName == null){ goodsNameDistince = 0 - o.originGoodsName.hashCode(); }else if(o.originGoodsName == null) { goodsNameDistince = this.originGoodsName.hashCode(); }else { goodsNameDistince = this.originGoodsName.hashCode()-o.originGoodsName.hashCode(); } int goodsSkuNameDistince; if(this.originGoodsSkuName == null && o.originGoodsSkuName == null) { goodsSkuNameDistince = 0; }else if(this.originGoodsSkuName == null){ goodsSkuNameDistince = 0 - o.originGoodsSkuName.hashCode(); }else if(o.originGoodsSkuName == null) { goodsSkuNameDistince = this.originGoodsSkuName.hashCode(); }else { goodsSkuNameDistince = this.originGoodsSkuName.hashCode()-o.originGoodsSkuName.hashCode(); } return (int)(1.0*groupDistince/Integer.MAX_VALUE*1000)+(int)(1.0*goodsNameDistince/Integer.MAX_VALUE*100)+(int)(1.0*goodsSkuNameDistince/Integer.MAX_VALUE*10); } }