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) {
|
||||
// 获取系统推荐sketch
|
||||
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)) {
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, styleCategory, elementVO);
|
||||
@@ -679,7 +679,7 @@ public class PythonService {
|
||||
return coverSketchToDesignPythonItem(collectionElements.get(randomNum).getId(), collectionElements.get(randomNum), elementVO);
|
||||
}else {
|
||||
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)) {
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, styleCategory, elementVO);
|
||||
@@ -1035,7 +1035,7 @@ public class PythonService {
|
||||
// 获取随机pin sketch的category
|
||||
String category = element.getLevel2Type();
|
||||
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)) {
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
||||
@@ -1058,7 +1058,7 @@ public class PythonService {
|
||||
String category = dressings.get(randomNum).getStyleCategory();
|
||||
|
||||
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)) {
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
||||
@@ -1094,7 +1094,7 @@ public class PythonService {
|
||||
String category = element.getLevel2Type();
|
||||
|
||||
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)) {
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
||||
@@ -1118,7 +1118,7 @@ public class PythonService {
|
||||
String category = dressings.get(randomNum).getStyleCategory();
|
||||
|
||||
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)) {
|
||||
String recommendSystemSketch = recommentdUrlList.get(0);
|
||||
return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO);
|
||||
@@ -1702,7 +1702,7 @@ public class PythonService {
|
||||
elementVO.setDesignLibraryModelPointVO(vo);
|
||||
} else {
|
||||
// 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)) {
|
||||
// pythonItem.setBody_path(designLibraryModelPoint.getTemplateUrl());
|
||||
@@ -3934,7 +3934,7 @@ public class PythonService {
|
||||
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();
|
||||
|
||||
OkHttpClient client = new OkHttpClient().newBuilder()
|
||||
@@ -3953,7 +3953,9 @@ public class PythonService {
|
||||
"http://18.167.251.121",
|
||||
"9994",
|
||||
userHolder.getId(),
|
||||
category);
|
||||
category,
|
||||
brandId,
|
||||
brandScale);
|
||||
|
||||
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.CollectionType;
|
||||
import com.ai.da.model.enums.DesignProcess;
|
||||
import com.ai.da.model.enums.UserBehaviorType;
|
||||
import com.ai.da.model.vo.*;
|
||||
import com.ai.da.python.PythonService;
|
||||
import com.ai.da.python.vo.*;
|
||||
@@ -147,6 +148,10 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
private ToProductImageRecordMapper toProductImageRecordMapper;
|
||||
@Resource
|
||||
private ColorLoopUpTableService colorLoopUpTableService;
|
||||
@Resource
|
||||
private UserBehaviorMapper userBehaviorMapper;
|
||||
@Resource
|
||||
private CollectionElementRelModelMapper collectionElementRelModelMapper;
|
||||
|
||||
private final ConcurrentHashMap<String, Map<String, Object>> designContext = new ConcurrentHashMap<>();
|
||||
|
||||
@@ -1214,9 +1219,32 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
}
|
||||
//修改designItem为like状态
|
||||
designItemService.updateLikeStatus(designLikeDTO.getDesignItemId(), (byte) 1);
|
||||
// 记录喜欢的系统sketch
|
||||
addSystemLikeSketch(designItem);
|
||||
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
|
||||
public CollectionSort addCollectionSort(Long relationId, String relationType, Long projectId) {
|
||||
int sort = getNextSort(projectId);
|
||||
@@ -2319,11 +2347,30 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
}else {
|
||||
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 {
|
||||
designCollectionDTO.setMoodBoards(new ArrayList<>());
|
||||
designCollectionDTO.setPrintBoards(new ArrayList<>());
|
||||
designCollectionDTO.setColorBoards(new ArrayList<>());
|
||||
designCollectionDTO.setSketchBoards(new ArrayList<>());
|
||||
designCollectionDTO.setMannequins(new ArrayList<>());
|
||||
}
|
||||
Long workspaceId = workspaceService.getByProjectId(projectId);
|
||||
Workspace workspace = workspaceService.getById(workspaceId);
|
||||
|
||||
Reference in New Issue
Block a user