解决商品多规格中文排序问题
This commit is contained in:
1 parent
91763cfe3c
commit
4d9b2cd377
2 files changed
+22
-5
No files matched your search
+20
-4
@@ -3,11 +3,10 @@ package co.yixiang.yshop.framework.common.util.string;
|
|||||||
import cn.hutool.core.text.StrPool;
|
import cn.hutool.core.text.StrPool;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.text.Collator;
|
||||||
import java.util.Collection;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -77,4 +76,21 @@ public class StrUtils {
|
|||||||
.collect(Collectors.joining("\n"));
|
.collect(Collectors.joining("\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数字排在最前,英文字母其次,汉字则按照拼音进行排序
|
||||||
|
*/
|
||||||
|
public static List<String> compareTo(List<String> stringList) {
|
||||||
|
if (CollectionUtils.isEmpty(stringList)) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
Comparator<String> comparator = (text, texts) -> {
|
||||||
|
Collator collator = Collator.getInstance(java.util.Locale.CHINESE);
|
||||||
|
return collator.getCollationKey(text).compareTo(
|
||||||
|
collator.getCollationKey(texts));
|
||||||
|
};
|
||||||
|
Collections.sort(stringList, comparator);
|
||||||
|
return stringList;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+2
-1
@@ -3,6 +3,7 @@ package co.yixiang.yshop.module.product.service.storeproductattr;
|
|||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import co.yixiang.yshop.framework.common.util.string.StrUtils;
|
||||||
import co.yixiang.yshop.module.product.dal.dataobject.storeproductattr.StoreProductAttrDO;
|
import co.yixiang.yshop.module.product.dal.dataobject.storeproductattr.StoreProductAttrDO;
|
||||||
import co.yixiang.yshop.module.product.dal.dataobject.storeproductattrvalue.StoreProductAttrValueDO;
|
import co.yixiang.yshop.module.product.dal.dataobject.storeproductattrvalue.StoreProductAttrValueDO;
|
||||||
import co.yixiang.yshop.module.product.dal.mysql.storeproductattr.StoreProductAttrMapper;
|
import co.yixiang.yshop.module.product.dal.mysql.storeproductattr.StoreProductAttrMapper;
|
||||||
@@ -103,7 +104,7 @@ public class StoreProductAttrServiceImpl extends ServiceImpl<StoreProductAttrMap
|
|||||||
// throw new BadRequestException("活动商品库存不能大于原有商品库存");
|
// throw new BadRequestException("活动商品库存不能大于原有商品库存");
|
||||||
// }
|
// }
|
||||||
List<String> stringList = new ArrayList<>(productFormatDto.getDetail().values());
|
List<String> stringList = new ArrayList<>(productFormatDto.getDetail().values());
|
||||||
Collections.sort(stringList);
|
stringList = StrUtils.compareTo(stringList);
|
||||||
StoreProductAttrValueDO oldAttrValue = storeProductAttrValueService.getOne(new LambdaQueryWrapper<StoreProductAttrValueDO>()
|
StoreProductAttrValueDO oldAttrValue = storeProductAttrValueService.getOne(new LambdaQueryWrapper<StoreProductAttrValueDO>()
|
||||||
.eq(StoreProductAttrValueDO::getSku, productFormatDto.getSku())
|
.eq(StoreProductAttrValueDO::getSku, productFormatDto.getSku())
|
||||||
.eq(StoreProductAttrValueDO::getProductId, productId));
|
.eq(StoreProductAttrValueDO::getProductId, productId));
|
||||||
|
|||||||
Reference in new issue
Block a user