TASK:workspace、design模块代码;
This commit is contained in:
@@ -279,6 +279,16 @@ public class MinioUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getPresignedUrl(String path, int expiry) {
|
||||||
|
if (!path.contains("/")) {
|
||||||
|
throw new BusinessException("The path is error!");
|
||||||
|
}
|
||||||
|
int index = path.indexOf("/");
|
||||||
|
String bucketName = path.substring(0, index);
|
||||||
|
String fileName = path.substring(index + 1);
|
||||||
|
return getPresignedUrl(bucketName, fileName, expiry);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 将桶名、文件名从url中分离出来
|
* 将桶名、文件名从url中分离出来
|
||||||
* @param url 带桶名、文件名的url
|
* @param url 带桶名、文件名的url
|
||||||
|
|||||||
@@ -60,8 +60,18 @@ public class Workspace implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 人体模型
|
* 人体模型
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "人体模型")
|
@ApiModelProperty(value = "人体模型ID")
|
||||||
private String mannequin;
|
private Long mannequinId;
|
||||||
|
/**
|
||||||
|
* 人体模型
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "人体模型URL")
|
||||||
|
private String mannequinUrl;
|
||||||
|
/**
|
||||||
|
* 人体模型
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "人体模型类型")
|
||||||
|
private String mannequinType;
|
||||||
/**
|
/**
|
||||||
* 最后使用的工作空间标识
|
* 最后使用的工作空间标识
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -7,16 +7,15 @@ import com.fasterxml.jackson.annotation.JsonValue;
|
|||||||
* @Date: 2023/08/01 17:21
|
* @Date: 2023/08/01 17:21
|
||||||
* @Description: 服装性别分类
|
* @Description: 服装性别分类
|
||||||
*/
|
*/
|
||||||
public enum Mannequin implements IEnumDisplay {
|
public enum MannequinType implements IEnumDisplay {
|
||||||
|
|
||||||
A("A"),
|
SYSTEM("System"),
|
||||||
B("B"),
|
LIBRARY("Library")
|
||||||
C("C")
|
|
||||||
;
|
;
|
||||||
|
|
||||||
private String value;
|
private String value;
|
||||||
|
|
||||||
Mannequin(String value) {
|
MannequinType(String value) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -9,8 +9,8 @@ import com.fasterxml.jackson.annotation.JsonValue;
|
|||||||
*/
|
*/
|
||||||
public enum Position implements IEnumDisplay {
|
public enum Position implements IEnumDisplay {
|
||||||
|
|
||||||
OVERALL("overall"),
|
OVERALL("Overall"),
|
||||||
SINGLE("single")
|
SINGLE("Single")
|
||||||
;
|
;
|
||||||
|
|
||||||
private String value;
|
private String value;
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import com.fasterxml.jackson.annotation.JsonValue;
|
|||||||
*/
|
*/
|
||||||
public enum Sex implements IEnumDisplay {
|
public enum Sex implements IEnumDisplay {
|
||||||
|
|
||||||
MALE("male"),
|
MALE("Male"),
|
||||||
FEMALE("female"),
|
FEMALE("Female"),
|
||||||
CHILD("child")
|
CHILD("Child")
|
||||||
;
|
;
|
||||||
|
|
||||||
private String value;
|
private String value;
|
||||||
|
|||||||
@@ -10,4 +10,5 @@ import lombok.NoArgsConstructor;
|
|||||||
public class ModelVO {
|
public class ModelVO {
|
||||||
private Long id;
|
private Long id;
|
||||||
private String url;
|
private String url;
|
||||||
|
private String presignedUrl;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -170,6 +170,9 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
.filter(f -> f.getLevel1Type().equals(CollectionLevel1TypeEnum.MOOD_BOARD.getRealName()))
|
.filter(f -> f.getLevel1Type().equals(CollectionLevel1TypeEnum.MOOD_BOARD.getRealName()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (!CollectionUtils.isEmpty(newMoodboard)) {
|
if (!CollectionUtils.isEmpty(newMoodboard)) {
|
||||||
|
if (CollectionUtils.isEmpty(elementVO.getMoodBoardElements())) {
|
||||||
|
elementVO.setMoodBoardElements(new ArrayList<>());
|
||||||
|
}
|
||||||
elementVO.getMoodBoardElements().addAll(newMoodboard);
|
elementVO.getMoodBoardElements().addAll(newMoodboard);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -444,30 +447,32 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
TDesignPythonOutfitDetail designPythonOutfitDetail = new TDesignPythonOutfitDetail();
|
TDesignPythonOutfitDetail designPythonOutfitDetail = new TDesignPythonOutfitDetail();
|
||||||
designPythonOutfitDetail.setDesignId(designId);
|
designPythonOutfitDetail.setDesignId(designId);
|
||||||
designPythonOutfitDetail.setDesignPythonOutfitId(designPythonOutfit.getId());
|
designPythonOutfitDetail.setDesignPythonOutfitId(designPythonOutfit.getId());
|
||||||
JSONArray position = jsonObject.getJSONArray("position");
|
// JSONArray position = jsonObject.getJSONArray("position");
|
||||||
if (position != null && !CollectionUtils.isEmpty(position)) {
|
// if (position != null && !CollectionUtils.isEmpty(position)) {
|
||||||
StringBuilder builder = new StringBuilder();
|
// StringBuilder builder = new StringBuilder();
|
||||||
for (int i2 = 0; i2 < position.size(); i2++) {
|
// for (int i2 = 0; i2 < position.size(); i2++) {
|
||||||
if (i2 != position.size() - 1) {
|
// if (i2 != position.size() - 1) {
|
||||||
builder.append(position.getInteger(i2)).append(",");
|
// builder.append(position.getInteger(i2)).append(",");
|
||||||
} else {
|
// } else {
|
||||||
builder.append(position.getInteger(i2));
|
// builder.append(position.getInteger(i2));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
designPythonOutfitDetail.setPosition(builder.toString());
|
// designPythonOutfitDetail.setPosition(builder.toString());
|
||||||
}
|
// }
|
||||||
JSONArray imageSize = jsonObject.getJSONArray("image_size");
|
designPythonOutfitDetail.setPosition(jsonObject.getString("position"));
|
||||||
if (imageSize != null && !CollectionUtils.isEmpty(position)) {
|
// JSONArray imageSize = jsonObject.getJSONArray("image_size");
|
||||||
StringBuilder builder = new StringBuilder();
|
// if (imageSize != null && !CollectionUtils.isEmpty(position)) {
|
||||||
for (int i2 = 0; i2 < imageSize.size(); i2++) {
|
// StringBuilder builder = new StringBuilder();
|
||||||
if (i2 != imageSize.size() - 1) {
|
// for (int i2 = 0; i2 < imageSize.size(); i2++) {
|
||||||
builder.append(imageSize.getInteger(i2)).append(",");
|
// if (i2 != imageSize.size() - 1) {
|
||||||
} else {
|
// builder.append(imageSize.getInteger(i2)).append(",");
|
||||||
builder.append(imageSize.getInteger(i2));
|
// } else {
|
||||||
}
|
// builder.append(imageSize.getInteger(i2));
|
||||||
}
|
// }
|
||||||
designPythonOutfitDetail.setImageSize(builder.toString());
|
// }
|
||||||
}
|
// designPythonOutfitDetail.setImageSize(builder.toString());
|
||||||
|
// }
|
||||||
|
designPythonOutfitDetail.setImageSize(jsonObject.getString("image_size"));
|
||||||
designPythonOutfitDetail.setImageUrl(jsonObject.getString("image_url"));
|
designPythonOutfitDetail.setImageUrl(jsonObject.getString("image_url"));
|
||||||
designPythonOutfitDetail.setImageCategory(jsonObject.getString("image_category"));
|
designPythonOutfitDetail.setImageCategory(jsonObject.getString("image_category"));
|
||||||
designPythonOutfitDetail.setMaskUrl(jsonObject.getString("mask_url"));
|
designPythonOutfitDetail.setMaskUrl(jsonObject.getString("mask_url"));
|
||||||
@@ -602,7 +607,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
designItemService.deleteByCollectionId(reDesignDTO.getCollectionId());
|
designItemService.deleteByCollectionId(reDesignDTO.getCollectionId());
|
||||||
designItemDetailService.deleteByDesignId(oldDesign.getId());
|
designItemDetailService.deleteByDesignId(oldDesign.getId());
|
||||||
//redesign
|
//redesign
|
||||||
return designOrRedesignOperate(CopyUtil.copyObject(
|
return designOrRedesignOperateNew(CopyUtil.copyObject(
|
||||||
reDesignDTO, DesignCollectionDTO.class), userInfo, reDesignDTO.getCollectionId(), elementVO);
|
reDesignDTO, DesignCollectionDTO.class), userInfo, reDesignDTO.getCollectionId(), elementVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -826,7 +831,6 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
d.setId(o.getBusinessId());
|
d.setId(o.getBusinessId());
|
||||||
d.setPrintObject(new DesignPythonItemPrint());
|
d.setPrintObject(new DesignPythonItemPrint());
|
||||||
}));
|
}));
|
||||||
return editDesignItemLayer(flag, designPythonOutfit, designItem.getDesignUrl(), editResponseColor(designItemDetails, response));
|
|
||||||
return editDesignItemLayer(flag,designPythonOutfit,
|
return editDesignItemLayer(flag,designPythonOutfit,
|
||||||
minIoUtil.splitThenGetPreviewUrl(designItem.getDesignUrl(),480),
|
minIoUtil.splitThenGetPreviewUrl(designItem.getDesignUrl(),480),
|
||||||
editResponseColor(designItemDetails,response));
|
editResponseColor(designItemDetails,response));
|
||||||
|
|||||||
@@ -48,8 +48,6 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper,Generate> im
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private MinioUtil minioUtil;
|
private MinioUtil minioUtil;
|
||||||
@Value("${minio.bucketName4}")
|
|
||||||
private String bucketName4;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GenerateCaptionVO generateCaption(Long sketchElementId) {
|
public GenerateCaptionVO generateCaption(Long sketchElementId) {
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ import com.ai.da.common.response.PageBaseResponse;
|
|||||||
import com.ai.da.common.utils.CopyUtil;
|
import com.ai.da.common.utils.CopyUtil;
|
||||||
import com.ai.da.common.utils.DateUtil;
|
import com.ai.da.common.utils.DateUtil;
|
||||||
import com.ai.da.common.utils.MinioUtil;
|
import com.ai.da.common.utils.MinioUtil;
|
||||||
import com.ai.da.common.utils.FileUtil;
|
|
||||||
import com.ai.da.common.utils.MinioUtil;
|
|
||||||
import com.ai.da.mapper.LibraryMapper;
|
import com.ai.da.mapper.LibraryMapper;
|
||||||
import com.ai.da.mapper.entity.*;
|
import com.ai.da.mapper.entity.*;
|
||||||
import com.ai.da.model.dto.*;
|
import com.ai.da.model.dto.*;
|
||||||
@@ -149,7 +147,7 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, Library> impl
|
|||||||
}
|
}
|
||||||
Assert.isTrue(!( level1TypeEnum.equals(LibraryLevel1TypeEnum.SKETCH_BOARD)
|
Assert.isTrue(!( level1TypeEnum.equals(LibraryLevel1TypeEnum.SKETCH_BOARD)
|
||||||
&& StringUtils.isEmpty(libraryUploadDTO.getLevel2Type()) ),"level2Type cannot be empty!");
|
&& StringUtils.isEmpty(libraryUploadDTO.getLevel2Type()) ),"level2Type cannot be empty!");
|
||||||
String path = calculateFileUrl(level1TypeEnum, userInfo.getId());
|
String path = calculateFileUrl(level1TypeEnum, libraryUploadDTO.getLevel2Type(), userInfo.getId());
|
||||||
String bucketName = null;
|
String bucketName = null;
|
||||||
switch (level1TypeEnum) {
|
switch (level1TypeEnum) {
|
||||||
case MODELS:
|
case MODELS:
|
||||||
@@ -188,11 +186,10 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, Library> impl
|
|||||||
return library;
|
return library;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String calculateFileUrl(LibraryLevel1TypeEnum level1TypeEnum, Long userId) {
|
private String calculateFileUrl(LibraryLevel1TypeEnum level1TypeEnum, String level2Type, Long userId) {
|
||||||
// String rootPath = fileProperties.getSys().getPath();
|
// String rootPath = fileProperties.getSys().getPath();
|
||||||
String day = DateUtil.dateToStr(new Date(), DateUtil.YYYYMM);
|
// String day = DateUtil.dateToStr(new Date(), DateUtil.YYYYMM);
|
||||||
return day + File.separator + "userFile" + File.separator + "library"
|
return StringUtils.isEmpty(level2Type) ? userId + File.separator + level1TypeEnum.getRealName() : userId + File.separator + level1TypeEnum.getRealName() + File.separator + level2Type;
|
||||||
+ File.separator + level1TypeEnum.getRealName() + File.separator + userId;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -28,10 +28,6 @@ import java.util.Objects;
|
|||||||
@Service
|
@Service
|
||||||
public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl<TDesignPythonOutfitDetailMapper, TDesignPythonOutfitDetail> implements ITDesignPythonOutfitDetailService {
|
public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl<TDesignPythonOutfitDetailMapper, TDesignPythonOutfitDetail> implements ITDesignPythonOutfitDetailService {
|
||||||
|
|
||||||
@Value("${minio.bucketName.clothing}")
|
|
||||||
private String bucketName2;
|
|
||||||
@Value("${minio.bucketName3}")
|
|
||||||
private String bucketName3;
|
|
||||||
@Resource
|
@Resource
|
||||||
private MinioUtil minIoUtil;
|
private MinioUtil minIoUtil;
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.ai.da.common.enums.LibraryLevel1TypeEnum;
|
|||||||
import com.ai.da.common.enums.SysFileLevel1TypeEnum;
|
import com.ai.da.common.enums.SysFileLevel1TypeEnum;
|
||||||
import com.ai.da.common.enums.SysFileLevel2TypeEnum;
|
import com.ai.da.common.enums.SysFileLevel2TypeEnum;
|
||||||
import com.ai.da.common.response.PageBaseResponse;
|
import com.ai.da.common.response.PageBaseResponse;
|
||||||
|
import com.ai.da.common.utils.MinioUtil;
|
||||||
import com.ai.da.mapper.LibraryMapper;
|
import com.ai.da.mapper.LibraryMapper;
|
||||||
import com.ai.da.mapper.SysFileMapper;
|
import com.ai.da.mapper.SysFileMapper;
|
||||||
import com.ai.da.mapper.WorkspaceMapper;
|
import com.ai.da.mapper.WorkspaceMapper;
|
||||||
@@ -13,10 +14,7 @@ import com.ai.da.mapper.entity.Library;
|
|||||||
import com.ai.da.mapper.entity.SysFile;
|
import com.ai.da.mapper.entity.SysFile;
|
||||||
import com.ai.da.mapper.entity.Workspace;
|
import com.ai.da.mapper.entity.Workspace;
|
||||||
import com.ai.da.model.dto.WorkspaceDTO;
|
import com.ai.da.model.dto.WorkspaceDTO;
|
||||||
import com.ai.da.model.enums.BizJson;
|
import com.ai.da.model.enums.*;
|
||||||
import com.ai.da.model.enums.IEnumDisplay;
|
|
||||||
import com.ai.da.model.enums.Position;
|
|
||||||
import com.ai.da.model.enums.Sex;
|
|
||||||
import com.ai.da.model.vo.AuthPrincipalVo;
|
import com.ai.da.model.vo.AuthPrincipalVo;
|
||||||
import com.ai.da.model.vo.ModelVO;
|
import com.ai.da.model.vo.ModelVO;
|
||||||
import com.ai.da.model.vo.ModelsVO;
|
import com.ai.da.model.vo.ModelsVO;
|
||||||
@@ -53,6 +51,9 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
|
|||||||
@Resource
|
@Resource
|
||||||
private SysFileMapper sysFileMapper;
|
private SysFileMapper sysFileMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MinioUtil minioUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<WorkspaceVO> selectWorkspacePage(IPage<WorkspaceVO> page, WorkspaceVO workspace) {
|
public IPage<WorkspaceVO> selectWorkspacePage(IPage<WorkspaceVO> page, WorkspaceVO workspace) {
|
||||||
return page.setRecords(baseMapper.selectWorkspacePage(page, workspace));
|
return page.setRecords(baseMapper.selectWorkspacePage(page, workspace));
|
||||||
@@ -96,16 +97,25 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
|
|||||||
workspace.setSystemDesignerPercentage(SYSTEM_DESIGNER_PERCENTAGE);
|
workspace.setSystemDesignerPercentage(SYSTEM_DESIGNER_PERCENTAGE);
|
||||||
workspace.setPosition(Position.OVERALL.getValue());
|
workspace.setPosition(Position.OVERALL.getValue());
|
||||||
workspace.setUserName(userName);
|
workspace.setUserName(userName);
|
||||||
|
workspace.setMannequinId(null);
|
||||||
|
workspace.setMannequinUrl("aida-mannequins/model_1693218345.2714431.png");
|
||||||
|
workspace.setMannequinType(MannequinType.SYSTEM.getValue());
|
||||||
workspace.setIsLastIndex(1);
|
workspace.setIsLastIndex(1);
|
||||||
int insert = workspaceMapper.insert(workspace);
|
int insert = workspaceMapper.insert(workspace);
|
||||||
if (insert <= 0) {
|
if (insert <= 0) {
|
||||||
throw new BusinessException("save workspace failed");
|
throw new BusinessException("save workspace failed");
|
||||||
}
|
}
|
||||||
page = workspaceMapper.selectPage(new Page<>(query.getPage(), query.getSize()), qw);
|
page = workspaceMapper.selectPage(new Page<>(query.getPage(), query.getSize()), qw);
|
||||||
|
page.getRecords().forEach(o -> {
|
||||||
|
o.setMannequinUrl(minioUtil.getPresignedUrl(o.getMannequinUrl(), 10));
|
||||||
|
});
|
||||||
vo.setPage(PageBaseResponse.success(page));
|
vo.setPage(PageBaseResponse.success(page));
|
||||||
vo.setId(workspace.getId());
|
vo.setId(workspace.getId());
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
page.getRecords().forEach(o -> {
|
||||||
|
o.setMannequinUrl(minioUtil.getPresignedUrl(o.getMannequinUrl(), 10));
|
||||||
|
});
|
||||||
vo.setPage(PageBaseResponse.success(page));
|
vo.setPage(PageBaseResponse.success(page));
|
||||||
QueryWrapper<Workspace> qwIsLastIndex = new QueryWrapper<>();
|
QueryWrapper<Workspace> qwIsLastIndex = new QueryWrapper<>();
|
||||||
qwIsLastIndex.lambda().eq(Workspace::getUserName, userName);
|
qwIsLastIndex.lambda().eq(Workspace::getUserName, userName);
|
||||||
@@ -159,10 +169,16 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
|
|||||||
ModelVO modelVO = new ModelVO();
|
ModelVO modelVO = new ModelVO();
|
||||||
modelVO.setId(library.getId());
|
modelVO.setId(library.getId());
|
||||||
modelVO.setUrl(library.getUrl());
|
modelVO.setUrl(library.getUrl());
|
||||||
|
if (library.getUrl().contains("aida-")) {
|
||||||
|
modelVO.setPresignedUrl(minioUtil.getPresignedUrl(library.getUrl(), 10));
|
||||||
|
}else {
|
||||||
|
modelVO.setPresignedUrl(library.getUrl());
|
||||||
|
}
|
||||||
|
modelVOList.add(modelVO);
|
||||||
}
|
}
|
||||||
ModelsVO vo = new ModelsVO();
|
ModelsVO vo = new ModelsVO();
|
||||||
vo.setModelList(modelVOList);
|
vo.setModelList(modelVOList);
|
||||||
vo.setType("Library");
|
vo.setType(MannequinType.LIBRARY.getValue());
|
||||||
result.add(vo);
|
result.add(vo);
|
||||||
}
|
}
|
||||||
QueryWrapper<SysFile> sysFileQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysFile> sysFileQueryWrapper = new QueryWrapper<>();
|
||||||
@@ -175,10 +191,16 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
|
|||||||
ModelVO modelVO = new ModelVO();
|
ModelVO modelVO = new ModelVO();
|
||||||
modelVO.setId(sysFile.getId());
|
modelVO.setId(sysFile.getId());
|
||||||
modelVO.setUrl(sysFile.getUrl());
|
modelVO.setUrl(sysFile.getUrl());
|
||||||
|
if (sysFile.getUrl().contains("aida-")) {
|
||||||
|
modelVO.setPresignedUrl(minioUtil.getPresignedUrl(sysFile.getUrl(), 10));
|
||||||
|
}else {
|
||||||
|
modelVO.setPresignedUrl(sysFile.getUrl());
|
||||||
|
}
|
||||||
|
modelVOList.add(modelVO);
|
||||||
}
|
}
|
||||||
ModelsVO vo = new ModelsVO();
|
ModelsVO vo = new ModelsVO();
|
||||||
vo.setModelList(modelVOList);
|
vo.setModelList(modelVOList);
|
||||||
vo.setType("System");
|
vo.setType(MannequinType.SYSTEM.getValue());
|
||||||
result.add(vo);
|
result.add(vo);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -10,7 +10,9 @@
|
|||||||
<result column="sex" property="sex"/>
|
<result column="sex" property="sex"/>
|
||||||
<result column="position" property="position"/>
|
<result column="position" property="position"/>
|
||||||
<result column="system_designer_percentage" property="systemDesignerPercentage"/>
|
<result column="system_designer_percentage" property="systemDesignerPercentage"/>
|
||||||
<result column="mannequin" property="mannequin"/>
|
<result column="mannequinId" property="mannequin"/>
|
||||||
|
<result column="mannequinUrl" property="mannequin"/>
|
||||||
|
<result column="mannequinType" property="mannequin"/>
|
||||||
<result column="create_time" property="createTime"/>
|
<result column="create_time" property="createTime"/>
|
||||||
<result column="update_time" property="updateTime"/>
|
<result column="update_time" property="updateTime"/>
|
||||||
<result column="is_deleted" property="isDeleted"/>
|
<result column="is_deleted" property="isDeleted"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user