商品分类逻辑,去除父类
This commit is contained in:
parent
75e76370a2
commit
98e291dc3e
@ -612,7 +612,7 @@ public class SxDataDao extends BaseDao{
|
|||||||
public Integer getNewActiveCount(DataBaseInfo dataBaseInfo){
|
public Integer getNewActiveCount(DataBaseInfo dataBaseInfo){
|
||||||
String where=dataBaseInfo.getWhere()+" and rule_no in('DD','PS','PM') and range_flag='I'";
|
String where=dataBaseInfo.getWhere()+" and rule_no in('DD','PS','PM') and range_flag='I'";
|
||||||
return getBaseTotal(dataBaseInfo.getIp(),dataBaseInfo.getUserName(),dataBaseInfo.getPassword(),dataBaseInfo.getDbPort(),dataBaseInfo.getDataBaseName(),
|
return getBaseTotal(dataBaseInfo.getIp(),dataBaseInfo.getUserName(),dataBaseInfo.getPassword(),dataBaseInfo.getDbPort(),dataBaseInfo.getDataBaseName(),
|
||||||
T_PUB_PLAN_MASTER,where);
|
T_PUB_PLAN_MASTER+" b",where);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -74,15 +74,18 @@ public abstract class SxDataAbstService {
|
|||||||
sxCategoryModel.setCategory_name(sxSyncCategory.getItem_clsname());
|
sxCategoryModel.setCategory_name(sxSyncCategory.getItem_clsname());
|
||||||
sxCategoryModel.setBrandName(clsBrandMap.get(sxSyncCategory.getItem_clsname()));
|
sxCategoryModel.setBrandName(clsBrandMap.get(sxSyncCategory.getItem_clsname()));
|
||||||
//寻找父级
|
//寻找父级
|
||||||
if(null!=sxSyncCategory.getCls_parent()){
|
if(StringUtils.isNotEmpty(sxSyncCategory.getCls_parent())){
|
||||||
SxSyncCategory firstNode=getParentNode(allSxSyncCategories,sxSyncCategory.getCls_parent());
|
SxSyncCategory firstNode=getParentNode(allSxSyncCategories,sxSyncCategory.getCls_parent());
|
||||||
if(null==firstNode){
|
if(null==firstNode){
|
||||||
sxCategoryModel.setFirst_category_name("");
|
sxCategoryModel.setFirst_category_name("");
|
||||||
|
sxCategoryModel.setProduct_type(sxCategoryModel.getCategory_name());
|
||||||
|
sxCategoryModels.add(sxCategoryModel);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
sxCategoryModel.setParent_name(firstNode.getItem_clsname());//todo 暂时无用
|
sxCategoryModel.setParent_name(firstNode.getItem_clsname());//todo 暂时无用
|
||||||
//如何存在上级的上级,则上级为第二层,上上及为第一层
|
//如何存在上级的上级,则上级为第二层,上上及为第一层
|
||||||
if(null!=firstNode.getCls_parent()) {//还存在上级
|
if(StringUtils.isNotEmpty(firstNode.getCls_parent())) {//还存在上级
|
||||||
SxSyncCategory secondNode=getParentNode(allSxSyncCategories,sxSyncCategory.getCls_parent());
|
SxSyncCategory secondNode=getParentNode(allSxSyncCategories,firstNode.getCls_parent());
|
||||||
if(null!=secondNode && secondNode.getItem_clsno().equals(firstNode.getCls_parent())){
|
if(null!=secondNode && secondNode.getItem_clsno().equals(firstNode.getCls_parent())){
|
||||||
sxCategoryModel.setFirst_category_name(secondNode.getItem_clsname());
|
sxCategoryModel.setFirst_category_name(secondNode.getItem_clsname());
|
||||||
sxCategoryModel.setSecond_category_name(firstNode.getItem_clsname());
|
sxCategoryModel.setSecond_category_name(firstNode.getItem_clsname());
|
||||||
@ -98,9 +101,28 @@ public abstract class SxDataAbstService {
|
|||||||
sxCategoryModel.setProduct_type(sxCategoryModel.getCategory_name());
|
sxCategoryModel.setProduct_type(sxCategoryModel.getCategory_name());
|
||||||
sxCategoryModels.add(sxCategoryModel);
|
sxCategoryModels.add(sxCategoryModel);
|
||||||
}
|
}
|
||||||
|
sxCategoryModels=filterCategories(sxCategoryModels);
|
||||||
return sxCategoryModels;
|
return sxCategoryModels;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<SxCategoryModel> filterCategories(List<SxCategoryModel> categories) {
|
||||||
|
// 步骤1: 收集所有作为父类出现的名称
|
||||||
|
Set<String> parentNames = categories.stream()
|
||||||
|
.map(SxCategoryModel::getFirst_category_name)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
Set<String> rootParents = categories.stream()
|
||||||
|
.map(SxCategoryModel::getSecond_category_name)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
// 步骤2: 保留叶子节点(没有作为父类出现的节点)
|
||||||
|
return categories.stream()
|
||||||
|
.filter(category -> !parentNames.contains(category.getCategory_name()))
|
||||||
|
.filter(category -> !rootParents.contains(category.getCategory_name()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过流查找父节点
|
* 通过流查找父节点
|
||||||
* @param sxSyncCategories
|
* @param sxSyncCategories
|
||||||
|
|||||||
@ -728,7 +728,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
String where="where 1=1";
|
String where="where 1=1";
|
||||||
Integer total =0;
|
Integer total =0;
|
||||||
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
||||||
where+=" and b.start_date>'"+commentModel.getSyncTime()+"' ";
|
where+=" and b.oper_date>'"+commentModel.getSyncTime()+"' ";
|
||||||
// where+=" or b.oper_date>'"+commentModel.getSyncTime()+"') ";
|
// where+=" or b.oper_date>'"+commentModel.getSyncTime()+"') ";
|
||||||
}
|
}
|
||||||
dataBaseInfo.setWhere(where);
|
dataBaseInfo.setWhere(where);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user