GoodsInfoRow.java 5.06 KB
package com.taover.bazhuayun.analysis.script.goodscollect;

import java.util.List;

public class GoodsInfoRow implements Comparable<GoodsInfoRow>{
	private String originGoodsName;
	private String commonGoodsName;
	private String groupNickname;
	private String originGoodsSkuName;
	private String commonGoodsSkuName;
	private String senderNickname;
	private String fileName;
	
	public GoodsInfoRow(GroupInfoExcelDataRow groupInfo, GoodsInfoExcelDataHeader header, List<Object> data, String fileName) {
		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());
		this.fileName = fileName;
	}
	
	private String getEmptyStrWhenNull(List<Object> 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 groupNickname) {
		this.groupNickname = groupNickname;
	}

	public String getOriginGoodsSkuName() {
		return originGoodsSkuName;
	}

	public void setOriginGoodsSkuName(String originGoodsSkuName) {
		this.originGoodsSkuName = originGoodsSkuName;
	}

	public String getCommonGoodsSkuName() {
		return commonGoodsSkuName;
	}

	public void setCommonGoodsSkuName(String commonGoodsSkuName) {
		this.commonGoodsSkuName = commonGoodsSkuName;
	}

	public String getSenderNickname() {
		return senderNickname;
	}

	public void setSenderNickname(String senderNickname) {
		this.senderNickname = senderNickname;
	}

	public String getFileName() {
		return fileName;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

	@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;
		}		
		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+groupDistince==0?0:1000)+(int)(1.0*goodsNameDistince/Integer.MAX_VALUE*100+goodsNameDistince==0?0:100)+(int)(1.0*goodsSkuNameDistince/Integer.MAX_VALUE*10+goodsSkuNameDistince==0?0:10);
	}
}