TASK:style;

This commit is contained in:
shahaibo
2024-05-22 09:50:34 +08:00
parent 4b1a58c036
commit cd817dbf57
12 changed files with 234 additions and 60 deletions

View File

@@ -34,7 +34,7 @@ public class MyTaskScheduler {
// 定时任务,每十五天执行一次 // 定时任务,每十五天执行一次
// @Scheduled(cron = "0 0 0 ? * MON") // @Scheduled(cron = "0 0 0 ? * MON")
@Scheduled(cron = "0 0 0 */15 * ?") // @Scheduled(cron = "0 0 0 */15 * ?")
public void checkExpiry() { public void checkExpiry() {
// 检测正式用户是否快要过期 // 检测正式用户是否快要过期
QueryWrapper<Account> qw = new QueryWrapper<>(); QueryWrapper<Account> qw = new QueryWrapper<>();
@@ -68,7 +68,7 @@ public class MyTaskScheduler {
} }
} }
} }
@Scheduled(cron = "0 0 8 * * ?") // @Scheduled(cron = "0 0 8 * * ?")
public void sendTrialOrderExcelToManagements() { public void sendTrialOrderExcelToManagements() {
// 获取前一天日期 // 获取前一天日期
LocalDate yesterday = LocalDate.now().minusDays(1); LocalDate yesterday = LocalDate.now().minusDays(1);

View File

@@ -1,10 +1,12 @@
package com.ai.da.controller; package com.ai.da.controller;
import com.ai.da.common.response.Response; import com.ai.da.common.response.Response;
import com.ai.da.mapper.primary.entity.Style;
import com.ai.da.mapper.primary.entity.Workspace; import com.ai.da.mapper.primary.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.BizJson;
import com.ai.da.model.vo.ModelsVO; import com.ai.da.model.vo.ModelsVO;
import com.ai.da.model.vo.StyleVO;
import com.ai.da.model.vo.WorkspaceVO; import com.ai.da.model.vo.WorkspaceVO;
import com.ai.da.service.WorkspaceService; import com.ai.da.service.WorkspaceService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -44,8 +46,8 @@ public class WorkspaceController {
@GetMapping("/detail") @GetMapping("/detail")
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入workspace") @ApiOperation(value = "详情", notes = "传入workspace")
public Response<Workspace> detail(@ApiParam(value = "主键集合", required = true) @RequestParam Long id) { public Response<WorkspaceVO> detail(@ApiParam(value = "主键集合", required = true) @RequestParam Long id) {
Workspace detail = workspaceService.getByIdNew(id); WorkspaceVO detail = workspaceService.getByIdNew(id);
return Response.success(detail); return Response.success(detail);
} }
@@ -66,8 +68,8 @@ public class WorkspaceController {
@PostMapping("/saveOrUpdate") @PostMapping("/saveOrUpdate")
@ApiOperationSupport(order = 3) @ApiOperationSupport(order = 3)
@ApiOperation(value = "新增或编辑", notes = "传入workspace") @ApiOperation(value = "新增或编辑", notes = "传入workspace")
public Response saveOrUpdate(@Valid @RequestBody Workspace workspace) { public Response saveOrUpdate(@Valid @RequestBody WorkspaceDTO workspaceDTO) {
return Response.success(workspaceService.saveOrUpdate(workspace)); return Response.success(workspaceService.saveOrUpdate(workspaceDTO));
} }
@@ -115,10 +117,17 @@ public class WorkspaceController {
} }
@PostMapping("maleDataInsert") @PostMapping("maleDataInsert")
@ApiOperationSupport(order = 7) @ApiOperationSupport(order = 8)
@ApiOperation(value = "男装数据入库入minio") @ApiOperation(value = "男装数据入库入minio")
public Response<Boolean> maleDataInsert() throws FileNotFoundException { public Response<Boolean> maleDataInsert() throws FileNotFoundException {
workspaceService.maleDataInsert(); workspaceService.maleDataInsert();
return Response.success(true); return Response.success(true);
} }
@PostMapping("styleList")
@ApiOperationSupport(order = 9)
@ApiOperation(value = "获取style列表")
public Response<List<StyleVO>> styleList() {
return Response.success(workspaceService.styleList());
}
} }

View File

@@ -0,0 +1,17 @@
package com.ai.da.mapper.primary;
import com.ai.da.common.config.mybatis.plus.CommonMapper;
import com.ai.da.mapper.primary.entity.Style;
import java.util.List;
/**
* Mapper 接口
*
* @author easy-generator
* @since 2022-06-13
*/
public interface StyleMapper extends CommonMapper<Style> {
}

View File

@@ -0,0 +1,15 @@
package com.ai.da.mapper.primary;
import com.ai.da.common.config.mybatis.plus.CommonMapper;
import com.ai.da.mapper.primary.entity.WorkspaceRelStyle;
/**
* Mapper 接口
*
* @author easy-generator
* @since 2022-06-13
*/
public interface WorkspaceRelStyleMapper extends CommonMapper<WorkspaceRelStyle> {
}

View File

@@ -0,0 +1,17 @@
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 java.io.Serializable;
@Data
@TableName("style")
public class Style implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String name;
}

View File

@@ -0,0 +1,18 @@
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 java.io.Serializable;
@Data
@TableName("workspace_rel_style")
public class WorkspaceRelStyle implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private Long workspaceId;
private Long styleId;
}

View File

@@ -16,4 +16,6 @@ import lombok.EqualsAndHashCode;
public class WorkspaceDTO extends PageQueryBaseVo { public class WorkspaceDTO extends PageQueryBaseVo {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Long styleId;
} }

View File

@@ -0,0 +1,57 @@
package com.ai.da.model.enums;
import lombok.Data;
import lombok.Getter;
@Getter
public enum StyleEnum {
// 定义风格及其对应的中英文描述
NEO_CHINESE("新中式", "Neo Chinese"),
COUNTRY_STYLE("田园风", "Country Style"),
FUTURISM("未来主义", "Futurism"),
MINIMALISM("极简风", "Minimalism"),
LOLITA("洛丽塔", "Lolita"),
Y2K("Y2K", "Y2K"),
BUSINESS("商务风", "Business"),
MERLAD("美拉德", "Merlad"),
OUTDOOR_FUNCTIONAL("户外机能", "Outdoor Functional"),
ROCK("摇滚", "Rock"),
DOPAMINE("多巴胺", "Dopamine"),
GOTHIC("哥特风", "Gothic"),
POST_APOCALYPTIC("废土", "Post-apocalyptic"),
ROMANTIC("浪漫", "Romantic"),
WABI_SABI("侘寂", "Wabi-sabi");
private final String chinese;
private final String english;
// 构造函数
StyleEnum(String chinese, String english) {
this.chinese = chinese;
this.english = english;
}
// 获取中文描述
public String getChinese() {
return chinese;
}
// 获取英文描述
public String getEnglish() {
return english;
}
// 重写toString方法返回格式化的描述
@Override
public String toString() {
return chinese + " (" + english + ")";
}
public static StyleEnum fromName(String name) {
for (StyleEnum style : StyleEnum.values()) {
if (style.name().equals(name)) {
return style;
}
}
throw new IllegalArgumentException("No enum constant for name: " + name);
}
}

View File

@@ -0,0 +1,16 @@
package com.ai.da.model.vo;
import com.ai.da.mapper.primary.entity.Style;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
@Data
public class StyleVO extends Style {
private static final long serialVersionUID = 1L;
private String value;
}

View File

@@ -33,4 +33,6 @@ public class WorkspaceVO extends Workspace {
private BizJson positionEnum; private BizJson positionEnum;
private String styleName;
} }

View File

@@ -1,10 +1,12 @@
package com.ai.da.service; package com.ai.da.service;
import com.ai.da.mapper.primary.entity.Style;
import com.ai.da.mapper.primary.entity.Workspace; import com.ai.da.mapper.primary.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.BizJson;
import com.ai.da.model.vo.ModelsVO; import com.ai.da.model.vo.ModelsVO;
import com.ai.da.model.vo.StyleVO;
import com.ai.da.model.vo.WorkspaceVO; import com.ai.da.model.vo.WorkspaceVO;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@@ -29,13 +31,13 @@ public interface WorkspaceService extends IService<Workspace> {
*/ */
IPage<WorkspaceVO> selectWorkspacePage(IPage<WorkspaceVO> page, WorkspaceVO workspace); IPage<WorkspaceVO> selectWorkspacePage(IPage<WorkspaceVO> page, WorkspaceVO workspace);
boolean saveOrUpdate(Workspace workspace); boolean saveOrUpdate(WorkspaceDTO workspaceDTO);
WorkspaceVO getPage(WorkspaceDTO query); WorkspaceVO getPage(WorkspaceDTO query);
List<BizJson> getEnumValues(String enumName); List<BizJson> getEnumValues(String enumName);
Workspace getByIdNew(Long id); WorkspaceVO getByIdNew(Long id);
List<ModelsVO> getMannequins(String sex); List<ModelsVO> getMannequins(String sex);
@@ -48,4 +50,6 @@ public interface WorkspaceService extends IService<Workspace> {
List<Long> delete(List<Workspace> workspaceList); List<Long> delete(List<Workspace> workspaceList);
Workspace getCurrentWorkspace(); Workspace getCurrentWorkspace();
List<StyleVO> styleList();
} }

View File

@@ -9,18 +9,11 @@ import com.ai.da.common.utils.CopyUtil;
import com.ai.da.common.utils.FileUtil; import com.ai.da.common.utils.FileUtil;
import com.ai.da.common.utils.MD5Utils; import com.ai.da.common.utils.MD5Utils;
import com.ai.da.common.utils.MinioUtil; import com.ai.da.common.utils.MinioUtil;
import com.ai.da.mapper.primary.LibraryMapper; import com.ai.da.mapper.primary.*;
import com.ai.da.mapper.primary.SysFileMapper; import com.ai.da.mapper.primary.entity.*;
import com.ai.da.mapper.primary.WorkspaceMapper;
import com.ai.da.mapper.primary.entity.Library;
import com.ai.da.mapper.primary.entity.SysFile;
import com.ai.da.mapper.primary.entity.Workspace;
import com.ai.da.model.dto.WorkspaceDTO; import com.ai.da.model.dto.WorkspaceDTO;
import com.ai.da.model.enums.*; import com.ai.da.model.enums.*;
import com.ai.da.model.vo.AuthPrincipalVo; import com.ai.da.model.vo.*;
import com.ai.da.model.vo.ModelVO;
import com.ai.da.model.vo.ModelsVO;
import com.ai.da.model.vo.WorkspaceVO;
import com.ai.da.service.WorkspaceService; import com.ai.da.service.WorkspaceService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -43,6 +36,7 @@ import java.nio.file.Files;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -58,6 +52,12 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
@Resource @Resource
private WorkspaceMapper workspaceMapper; private WorkspaceMapper workspaceMapper;
@Resource
private StyleMapper styleMapper;
@Resource
private WorkspaceRelStyleMapper workspaceRelStyleMapper;
@Resource @Resource
private LibraryMapper libraryMapper; private LibraryMapper libraryMapper;
@@ -83,7 +83,8 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
private final static Integer SYSTEM_DESIGNER_PERCENTAGE = 30; private final static Integer SYSTEM_DESIGNER_PERCENTAGE = 30;
@Override @Override
public boolean saveOrUpdate(Workspace workspace) { public boolean saveOrUpdate(WorkspaceDTO workspaceDTO) {
Workspace workspace = CopyUtil.copyObject(workspaceDTO, Workspace.class);
// 防止前端传值修改标识 // 防止前端传值修改标识
workspace.setIsLastIndex(null); workspace.setIsLastIndex(null);
AuthPrincipalVo userInfo = UserContext.getUserHolder(); AuthPrincipalVo userInfo = UserContext.getUserHolder();
@@ -114,12 +115,35 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
if (insert <= 0) { if (insert <= 0) {
throw new BusinessException("save.workspace.failed"); throw new BusinessException("save.workspace.failed");
} }
if (workspaceDTO.getStyleId() != null) {
WorkspaceRelStyle rel = new WorkspaceRelStyle();
rel.setWorkspaceId(workspace.getId());
rel.setStyleId(workspaceDTO.getStyleId());
workspaceRelStyleMapper.insert(rel);
}
return true; return true;
} else { } else {
int update = workspaceMapper.updateById(workspace); int update = workspaceMapper.updateById(workspace);
if (update <= 0) { if (update <= 0) {
throw new BusinessException("update.workspace.failed"); throw new BusinessException("update.workspace.failed");
} }
if (workspaceDTO.getStyleId() != null) {
QueryWrapper<WorkspaceRelStyle> qw = new QueryWrapper<>();
qw.lambda().eq(WorkspaceRelStyle::getWorkspaceId, workspace.getId());
List<WorkspaceRelStyle> workspaceRelStyles = workspaceRelStyleMapper.selectList(qw);
if (CollectionUtils.isEmpty(workspaceRelStyles)) {
WorkspaceRelStyle rel = new WorkspaceRelStyle();
rel.setWorkspaceId(workspace.getId());
rel.setStyleId(workspaceDTO.getStyleId());
workspaceRelStyleMapper.insert(rel);
}else {
WorkspaceRelStyle workspaceRelStyle = workspaceRelStyles.get(0);
if (!Objects.equals(workspaceRelStyle.getStyleId(), workspaceDTO.getStyleId())) {
workspaceRelStyle.setStyleId(workspaceRelStyle.getStyleId());
workspaceRelStyleMapper.updateById(workspaceRelStyle);
}
}
}
return true; return true;
} }
} }
@@ -250,7 +274,8 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
} }
@Override @Override
public Workspace getByIdNew(Long id) { public WorkspaceVO getByIdNew(Long id) {
AuthPrincipalVo authPrincipalVo = UserContext.getUserHolder();
Long accountId = UserContext.getUserHolder().getId(); Long accountId = UserContext.getUserHolder().getId();
QueryWrapper<Workspace> qwOld = new QueryWrapper<>(); QueryWrapper<Workspace> qwOld = new QueryWrapper<>();
qwOld.lambda().eq(Workspace::getAccountId, accountId); qwOld.lambda().eq(Workspace::getAccountId, accountId);
@@ -261,7 +286,21 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
Workspace newIsLastIndex = workspaceMapper.selectById(id); Workspace newIsLastIndex = workspaceMapper.selectById(id);
newIsLastIndex.setIsLastIndex(1); newIsLastIndex.setIsLastIndex(1);
workspaceMapper.updateById(newIsLastIndex); workspaceMapper.updateById(newIsLastIndex);
return newIsLastIndex; WorkspaceVO workspaceVO = CopyUtil.copyObject(newIsLastIndex, WorkspaceVO.class);
QueryWrapper<WorkspaceRelStyle> qw = new QueryWrapper<>();
qw.lambda().eq(WorkspaceRelStyle::getWorkspaceId, workspaceVO.getId());
List<WorkspaceRelStyle> workspaceRelStyles = workspaceRelStyleMapper.selectList(qw);
if (!CollectionUtils.isEmpty(workspaceRelStyles)) {
Long styleId = workspaceRelStyles.get(0).getStyleId();
Style style = styleMapper.selectById(styleId);
StyleEnum styleEnum = StyleEnum.fromName(style.getName());
if (authPrincipalVo.getLanguage().equals(Language.ENGLISH.name())) {
workspaceVO.setStyleName(styleEnum.getEnglish());
}else {
workspaceVO.setStyleName(styleEnum.getChinese());
}
}
return workspaceVO;
} }
@Override @Override
@@ -498,44 +537,22 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
return workspaces.get(0); return workspaces.get(0);
} }
// public static void main(String[] args) throws FileNotFoundException { @Override
// String b = "C:\\workspace\\fileData\\aida_men_library\\top\\mens_test_9992.png"; public List<StyleVO> styleList() {
// File pngFile = new File(b); AuthPrincipalVo authPrincipalVo = UserContext.getUserHolder();
// SysFile sysFile = new SysFile(); QueryWrapper<Style> qw = new QueryWrapper<>();
// String fileName = pngFile.getName(); List<Style> styles = styleMapper.selectList(qw);
// sysFile.setName(fileName); List<StyleVO> styleVOS = CopyUtil.copyList(styles, StyleVO.class);
// sysFile.setLevel1Type("Images"); for (StyleVO styleVO : styleVOS) {
// sysFile.setLevel3Type("Male"); StyleEnum styleEnum = StyleEnum.fromName(styleVO.getName());
// StringBuilder sb = new StringBuilder(); if (authPrincipalVo.getLanguage().equals(Language.ENGLISH.name())) {
// sb.append("aida-sys-image/images/male"); styleVO.setValue(styleEnum.getEnglish());
// String absolutePath = pngFile.getAbsolutePath(); }else {
// if (absolutePath.contains("bottom")) { styleVO.setValue(styleEnum.getChinese());
// sysFile.setLevel2Type("Bottoms"); }
// sb.append("/bottoms/"); }
// }else if(absolutePath.contains("top")) { return styleVOS;
// sysFile.setLevel2Type("Tops"); }
// sb.append("/tops/");
// }else if(absolutePath.contains("outer")) {
// sysFile.setLevel2Type("Outwear");
// sb.append("/outwear/");
// }
// sb.append(fileName);
// String url = sb.toString();
// sysFile.setUrl(url);
// sysFile.setMd5(MD5Utils.encryptFile(new FileInputStream(pngFile)));
//// boolean b = minioUtil.doesObjectExist("aida-sys-image", uploadMinioPath);
//// if (!b) {
//// FileItem a = getMultipartFile(file, file.getName());
//// MultipartFile multipartFile = new CommonsMultipartFile(a);
//// minioUtil.upload(bucketName, uploadMinioPath, multipartFile, "");
//// }
// FileItem a = getMultipartFile(pngFile, fileName);
// MultipartFile multipartFile = new CommonsMultipartFile(a);
// System.out.println(url.substring(0,14));
// System.out.println(url.substring(15));
//// minioUtil.upload(url.substring(0,14), url.substring(15), multipartFile, "");
// sysFile.setCreateDate(new Date());
// }
public static List<File> getPNGFiles(String directoryPath) { public static List<File> getPNGFiles(String directoryPath) {
List<File> pngFiles = new ArrayList<>(); List<File> pngFiles = new ArrayList<>();