sketch暂时修改为java端推荐,根据style进行推荐
This commit is contained in:
@@ -29,6 +29,7 @@ import com.google.common.collect.Maps;
|
||||
import io.netty.util.internal.StringUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import okhttp3.*;
|
||||
import org.apache.commons.lang3.RandomUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -666,33 +667,24 @@ public class PythonService {
|
||||
BigDecimal randomValue = generateRandomValue();
|
||||
boolean useSystem = randomValue.compareTo(systemScale) <= 0;
|
||||
|
||||
if (useSystem) {
|
||||
// 获取系统推荐sketch
|
||||
String categoryParam = elementVO.getModelSex().toLowerCase() + "_" + styleCategory.toLowerCase();
|
||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, elementVO.getBrandId(), elementVO.getBrandScale());
|
||||
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, styleCategory, elementVO);
|
||||
}else {
|
||||
throw new BusinessException("failed.to.obtain.system.sketch.recommendation");
|
||||
}
|
||||
}else {
|
||||
if (CollectionUtil.isNotEmpty(collectionElements)) {
|
||||
int collectionNoPinSize = collectionElements.size();
|
||||
int randomNum = RandomsUtil.randomSysFile(collectionNoPinSize);
|
||||
return coverSketchToDesignPythonItem(collectionElements.get(randomNum).getId(), collectionElements.get(randomNum), elementVO);
|
||||
}else {
|
||||
String categoryParam = elementVO.getModelSex().toLowerCase() + "_" + styleCategory.toLowerCase();
|
||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, elementVO.getBrandId(), elementVO.getBrandScale());
|
||||
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, styleCategory, elementVO);
|
||||
}else {
|
||||
throw new BusinessException("failed.to.obtain.system.sketch.recommendation");
|
||||
}
|
||||
}
|
||||
// 用过存在用户上传,则优先使用用户上传
|
||||
if (!useSystem && CollectionUtil.isNotEmpty(collectionElements)) {
|
||||
int collectionNoPinSize = collectionElements.size();
|
||||
int randomNum = RandomsUtil.randomSysFile(collectionNoPinSize);
|
||||
return coverSketchToDesignPythonItem(collectionElements.get(randomNum).getId(), collectionElements.get(randomNum), elementVO);
|
||||
}
|
||||
|
||||
// 其他所有情况,都回退到使用系统推荐
|
||||
String categoryParam = elementVO.getModelSex().toLowerCase() + "_" + styleCategory.toLowerCase();
|
||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, elementVO.getBrandId(), elementVO.getBrandScale(),elementVO.getStyle());
|
||||
|
||||
if (CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||
throw new BusinessException("failed.to.obtain.system.sketch.recommendation");
|
||||
}
|
||||
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, styleCategory, elementVO);
|
||||
|
||||
// int poolNum = 20;
|
||||
// if (CollectionUtil.isNotEmpty(collectionElements)) {
|
||||
// int collectionNoPinSize = collectionElements.size();
|
||||
@@ -1039,7 +1031,7 @@ public class PythonService {
|
||||
// 获取随机pin sketch的category
|
||||
String category = element.getLevel2Type();
|
||||
String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase();
|
||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale());
|
||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale(), validateElementVO.getStyle());
|
||||
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
||||
@@ -1062,7 +1054,7 @@ public class PythonService {
|
||||
String category = dressings.get(randomNum).getStyleCategory();
|
||||
|
||||
String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase();
|
||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale());
|
||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale(), validateElementVO.getStyle());
|
||||
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
||||
@@ -1098,7 +1090,7 @@ public class PythonService {
|
||||
String category = element.getLevel2Type();
|
||||
|
||||
String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase();
|
||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale());
|
||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale(), validateElementVO.getStyle());
|
||||
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
||||
@@ -1122,7 +1114,7 @@ public class PythonService {
|
||||
String category = dressings.get(randomNum).getStyleCategory();
|
||||
|
||||
String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase();
|
||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale());
|
||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale(), validateElementVO.getStyle());
|
||||
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
||||
@@ -3962,7 +3954,30 @@ public class PythonService {
|
||||
throw new BusinessException("design.interface.exception");
|
||||
}
|
||||
|
||||
public List<String> getSystemSketchByCategory(String category, Long brandId, Double brandScale) {
|
||||
public List<String> getSystemSketchByCategory(String category, Long brandId, Double brandScale,String style) {
|
||||
//******3.1.2版本临时使用java推荐方案去解决style未使用的问题**********
|
||||
try {
|
||||
//使用新库attribute_retrieval_style,表命名修改为elementVO.getModelSex().toLowerCase() + "_" + styleCategory.toLowerCase()比如female_skirt,与传入的category保持一致
|
||||
Integer countByStyle = attributeRetrievalMapper.getCountByStyle(category, style);
|
||||
//根据数量随机获取一个系统sketch
|
||||
if (countByStyle > 0) {
|
||||
//获取一个不大于countByStyle的随机整数
|
||||
Integer randomNum = RandomUtils.nextInt(0, countByStyle);
|
||||
//返回格式为 dress/0902000649.jpg
|
||||
String oneSystemSketchRadom = attributeRetrievalMapper.getOneSystemSketchRadom(category, style,randomNum);
|
||||
String imgName = oneSystemSketchRadom.split("/")[1];
|
||||
//补齐正确格式aida-sys-image/images/male/tops/mens_test_5689.png
|
||||
//裁切category前半部分
|
||||
String sex = category.split("_")[0];
|
||||
String realCategory = category.split("_")[1];
|
||||
String path = "aida-sys-image/images/" + sex + "/" +realCategory +"/" +imgName;
|
||||
return Arrays.asList(path);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.info("推荐失败:{}",e.getMessage());
|
||||
throw new BusinessException("system.error");
|
||||
}
|
||||
//**********************end***********************************
|
||||
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
||||
|
||||
OkHttpClient client = new OkHttpClient().newBuilder()
|
||||
|
||||
Reference in New Issue
Block a user