TASK:cloud;
This commit is contained in:
@@ -0,0 +1,7 @@
|
|||||||
|
package com.ai.da.mapper.primary;
|
||||||
|
|
||||||
|
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
||||||
|
import com.ai.da.mapper.primary.entity.UserBehavior;
|
||||||
|
|
||||||
|
public interface UserBehaviorMapper extends CommonMapper<UserBehavior> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package com.ai.da.mapper.primary.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("user_behavior")
|
||||||
|
public class UserBehavior implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private Long accountId;
|
||||||
|
|
||||||
|
private String behaviorType;
|
||||||
|
|
||||||
|
private String gender;
|
||||||
|
|
||||||
|
private String category;
|
||||||
|
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
||||||
44
src/main/java/com/ai/da/model/enums/UserBehaviorType.java
Normal file
44
src/main/java/com/ai/da/model/enums/UserBehaviorType.java
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
package com.ai.da.model.enums;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonValue;
|
||||||
|
|
||||||
|
public enum UserBehaviorType implements IEnumDisplay {
|
||||||
|
|
||||||
|
PORTFOLIO_CLICK("portfolioClick"),
|
||||||
|
PORTFOLIO_LIKE("portfolioLike"),
|
||||||
|
SECOND_CREATION("secondCreation"),
|
||||||
|
SKETCH_LIKE("sketchLike")
|
||||||
|
|
||||||
|
// CHILD("Child")
|
||||||
|
;
|
||||||
|
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
UserBehaviorType(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isValidName(String name) {
|
||||||
|
for (Sex sex : Sex.values()) {
|
||||||
|
if (sex.name().equalsIgnoreCase(name)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@JsonValue
|
||||||
|
public String getValue() {
|
||||||
|
return this.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static UserBehaviorType getType(String value) {
|
||||||
|
for (UserBehaviorType type : values()) {
|
||||||
|
if (type.value.equalsIgnoreCase(value)) {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new IllegalArgumentException("No matching constant for [" + value + "]");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -665,7 +665,7 @@ public class PythonService {
|
|||||||
if (useSystem) {
|
if (useSystem) {
|
||||||
// 获取系统推荐sketch
|
// 获取系统推荐sketch
|
||||||
String categoryParam = elementVO.getModelSex().toLowerCase() + "_" + styleCategory.toLowerCase();
|
String categoryParam = elementVO.getModelSex().toLowerCase() + "_" + styleCategory.toLowerCase();
|
||||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam);
|
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, elementVO.getBrandId(), elementVO.getBrandScale());
|
||||||
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, styleCategory, elementVO);
|
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, styleCategory, elementVO);
|
||||||
@@ -679,7 +679,7 @@ public class PythonService {
|
|||||||
return coverSketchToDesignPythonItem(collectionElements.get(randomNum).getId(), collectionElements.get(randomNum), elementVO);
|
return coverSketchToDesignPythonItem(collectionElements.get(randomNum).getId(), collectionElements.get(randomNum), elementVO);
|
||||||
}else {
|
}else {
|
||||||
String categoryParam = elementVO.getModelSex().toLowerCase() + "_" + styleCategory.toLowerCase();
|
String categoryParam = elementVO.getModelSex().toLowerCase() + "_" + styleCategory.toLowerCase();
|
||||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam);
|
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, elementVO.getBrandId(), elementVO.getBrandScale());
|
||||||
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, styleCategory, elementVO);
|
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, styleCategory, elementVO);
|
||||||
@@ -1035,7 +1035,7 @@ public class PythonService {
|
|||||||
// 获取随机pin sketch的category
|
// 获取随机pin sketch的category
|
||||||
String category = element.getLevel2Type();
|
String category = element.getLevel2Type();
|
||||||
String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase();
|
String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase();
|
||||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam);
|
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale());
|
||||||
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
||||||
@@ -1058,7 +1058,7 @@ public class PythonService {
|
|||||||
String category = dressings.get(randomNum).getStyleCategory();
|
String category = dressings.get(randomNum).getStyleCategory();
|
||||||
|
|
||||||
String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase();
|
String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase();
|
||||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam);
|
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale());
|
||||||
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
||||||
@@ -1094,7 +1094,7 @@ public class PythonService {
|
|||||||
String category = element.getLevel2Type();
|
String category = element.getLevel2Type();
|
||||||
|
|
||||||
String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase();
|
String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase();
|
||||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam);
|
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale());
|
||||||
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
||||||
@@ -1118,7 +1118,7 @@ public class PythonService {
|
|||||||
String category = dressings.get(randomNum).getStyleCategory();
|
String category = dressings.get(randomNum).getStyleCategory();
|
||||||
|
|
||||||
String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase();
|
String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase();
|
||||||
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam);
|
List<String> recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale());
|
||||||
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
if (!CollectionUtils.isEmpty(recommentdUrlList)) {
|
||||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
||||||
@@ -1702,7 +1702,7 @@ public class PythonService {
|
|||||||
elementVO.setDesignLibraryModelPointVO(vo);
|
elementVO.setDesignLibraryModelPointVO(vo);
|
||||||
} else {
|
} else {
|
||||||
// pythonItem.setBody_path("/workspace/python_code/Multi-layer-Virtual-Try-on/dataset_for_test/Img_model.png");
|
// pythonItem.setBody_path("/workspace/python_code/Multi-layer-Virtual-Try-on/dataset_for_test/Img_model.png");
|
||||||
pythonItem.setBody_path("aida-mannequins/model_1693218345.2714432.png");
|
pythonItem.setBody_path("aida-sys-image/models/female/dd6b48ce-1bab-4861-bb87-a30b82377a8f.png");
|
||||||
}
|
}
|
||||||
// if (Objects.nonNull(designLibraryModelPoint)) {
|
// if (Objects.nonNull(designLibraryModelPoint)) {
|
||||||
// pythonItem.setBody_path(designLibraryModelPoint.getTemplateUrl());
|
// pythonItem.setBody_path(designLibraryModelPoint.getTemplateUrl());
|
||||||
@@ -3934,7 +3934,7 @@ public class PythonService {
|
|||||||
throw new BusinessException("design.interface.exception");
|
throw new BusinessException("design.interface.exception");
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getSystemSketchByCategory(String category) {
|
public List<String> getSystemSketchByCategory(String category, Long brandId, Double brandScale) {
|
||||||
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
||||||
|
|
||||||
OkHttpClient client = new OkHttpClient().newBuilder()
|
OkHttpClient client = new OkHttpClient().newBuilder()
|
||||||
@@ -3953,7 +3953,9 @@ public class PythonService {
|
|||||||
"http://18.167.251.121",
|
"http://18.167.251.121",
|
||||||
"9994",
|
"9994",
|
||||||
userHolder.getId(),
|
userHolder.getId(),
|
||||||
category);
|
category,
|
||||||
|
brandId,
|
||||||
|
brandScale);
|
||||||
|
|
||||||
log.info("Recommendation request URL: {}", url);
|
log.info("Recommendation request URL: {}", url);
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import com.ai.da.model.dto.*;
|
|||||||
import com.ai.da.model.enums.BuildType;
|
import com.ai.da.model.enums.BuildType;
|
||||||
import com.ai.da.model.enums.CollectionType;
|
import com.ai.da.model.enums.CollectionType;
|
||||||
import com.ai.da.model.enums.DesignProcess;
|
import com.ai.da.model.enums.DesignProcess;
|
||||||
|
import com.ai.da.model.enums.UserBehaviorType;
|
||||||
import com.ai.da.model.vo.*;
|
import com.ai.da.model.vo.*;
|
||||||
import com.ai.da.python.PythonService;
|
import com.ai.da.python.PythonService;
|
||||||
import com.ai.da.python.vo.*;
|
import com.ai.da.python.vo.*;
|
||||||
@@ -147,6 +148,10 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
private ToProductImageRecordMapper toProductImageRecordMapper;
|
private ToProductImageRecordMapper toProductImageRecordMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private ColorLoopUpTableService colorLoopUpTableService;
|
private ColorLoopUpTableService colorLoopUpTableService;
|
||||||
|
@Resource
|
||||||
|
private UserBehaviorMapper userBehaviorMapper;
|
||||||
|
@Resource
|
||||||
|
private CollectionElementRelModelMapper collectionElementRelModelMapper;
|
||||||
|
|
||||||
private final ConcurrentHashMap<String, Map<String, Object>> designContext = new ConcurrentHashMap<>();
|
private final ConcurrentHashMap<String, Map<String, Object>> designContext = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
@@ -1214,9 +1219,32 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
}
|
}
|
||||||
//修改designItem为like状态
|
//修改designItem为like状态
|
||||||
designItemService.updateLikeStatus(designLikeDTO.getDesignItemId(), (byte) 1);
|
designItemService.updateLikeStatus(designLikeDTO.getDesignItemId(), (byte) 1);
|
||||||
|
// 记录喜欢的系统sketch
|
||||||
|
addSystemLikeSketch(designItem);
|
||||||
return new DesignLikeVO(userLikeSortId, userGroupId, groupDetailId, pictureName, userLike.getId(), userLikeSort.getSort());
|
return new DesignLikeVO(userLikeSortId, userGroupId, groupDetailId, pictureName, userLike.getId(), userLikeSort.getSort());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addSystemLikeSketch(DesignItem designItem) {
|
||||||
|
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
||||||
|
QueryWrapper<DesignItemDetail> qw = new QueryWrapper<>();
|
||||||
|
qw.lambda().eq(DesignItemDetail::getDesignItemId, designItem.getId());
|
||||||
|
qw.lambda().ne(DesignItemDetail::getType, "Body");
|
||||||
|
List<DesignItemDetail> designItemDetails = designItemDetailMapper.selectList(qw);
|
||||||
|
for (DesignItemDetail designItemDetail : designItemDetails) {
|
||||||
|
if (designItemDetail.getPath().startsWith("aida-sys-image")) {
|
||||||
|
String[] split = designItemDetail.getPath().split("/");
|
||||||
|
UserBehavior userBehavior = new UserBehavior();
|
||||||
|
userBehavior.setAccountId(userHolder.getId());
|
||||||
|
userBehavior.setBehaviorType(UserBehaviorType.SKETCH_LIKE.getValue());
|
||||||
|
userBehavior.setGender(split[2]);
|
||||||
|
userBehavior.setCategory(split[3]);
|
||||||
|
userBehavior.setUrl(designItemDetail.getPath());
|
||||||
|
userBehavior.setCreateTime(LocalDateTime.now());
|
||||||
|
userBehaviorMapper.insert(userBehavior);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CollectionSort addCollectionSort(Long relationId, String relationType, Long projectId) {
|
public CollectionSort addCollectionSort(Long relationId, String relationType, Long projectId) {
|
||||||
int sort = getNextSort(projectId);
|
int sort = getNextSort(projectId);
|
||||||
@@ -2319,11 +2347,30 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
}else {
|
}else {
|
||||||
designCollectionDTO.setSketchBoards(new ArrayList<>());
|
designCollectionDTO.setSketchBoards(new ArrayList<>());
|
||||||
}
|
}
|
||||||
|
if (CollectionUtil.isNotEmpty(groupedMap.get("Models"))) {
|
||||||
|
List<MannequinDTO> mannequins = new ArrayList<>();
|
||||||
|
List<CollectionElement> modelList = groupedMap.get("Models");
|
||||||
|
for (CollectionElement collectionElement : modelList) {
|
||||||
|
MannequinDTO dto = new MannequinDTO();
|
||||||
|
QueryWrapper<CollectionElementRelModel> qw = new QueryWrapper<>();
|
||||||
|
qw.lambda().eq(CollectionElementRelModel::getCollectionElementId, collectionElement.getId());
|
||||||
|
List<CollectionElementRelModel> collectionElementRelModels = collectionElementRelModelMapper.selectList(qw);
|
||||||
|
if (!CollectionUtils.isEmpty(collectionElementRelModels)) {
|
||||||
|
CollectionElementRelModel relModel = collectionElementRelModels.get(0);
|
||||||
|
dto.setId(relModel.getRelationId());
|
||||||
|
dto.setType(relModel.getRelationType());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}else {
|
||||||
|
designCollectionDTO.setMannequins(new ArrayList<>());
|
||||||
|
}
|
||||||
}else {
|
}else {
|
||||||
designCollectionDTO.setMoodBoards(new ArrayList<>());
|
designCollectionDTO.setMoodBoards(new ArrayList<>());
|
||||||
designCollectionDTO.setPrintBoards(new ArrayList<>());
|
designCollectionDTO.setPrintBoards(new ArrayList<>());
|
||||||
designCollectionDTO.setColorBoards(new ArrayList<>());
|
designCollectionDTO.setColorBoards(new ArrayList<>());
|
||||||
designCollectionDTO.setSketchBoards(new ArrayList<>());
|
designCollectionDTO.setSketchBoards(new ArrayList<>());
|
||||||
|
designCollectionDTO.setMannequins(new ArrayList<>());
|
||||||
}
|
}
|
||||||
Long workspaceId = workspaceService.getByProjectId(projectId);
|
Long workspaceId = workspaceService.getByProjectId(projectId);
|
||||||
Workspace workspace = workspaceService.getById(workspaceId);
|
Workspace workspace = workspaceService.getById(workspaceId);
|
||||||
|
|||||||
Reference in New Issue
Block a user