TASK:aida;

This commit is contained in:
shahaibo
2024-06-17 09:34:48 +08:00
parent fc48d8931f
commit 18914bea7e
35 changed files with 454 additions and 46 deletions

View File

@@ -178,6 +178,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
response.setToken(createAccountToken(account));
}
response.setUserId(account.getId());
response.setSystemUser(account.getSystemUser());
//判断是否常用ip 不是则发邮件提示
calculateExceptionIp(RequestInfoUtil.getIpAddress(request), account);
return response;
@@ -378,6 +379,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
account.setValidEndTime(Long.valueOf(accountAddDTO.getValidEndTime()));
account.setCreateDate(new Date());
account.setIsTrial(accountAddDTO.getIsTrial());
account.setSystemUser(1);
return accountMapper.insert(account) > 0;
}
@@ -539,6 +541,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
account.setCreateDate(new Date());
account.setIsTrial(1);
account.setIsBeginner(1);
account.setSystemUser(1);
accountMapper.insert(account);
}
// 发送邮件提醒用户试用用户已创建
@@ -591,6 +594,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
account.setCreateDate(new Date());
account.setIsTrial(1);
account.setIsBeginner(1);
account.setSystemUser(1);
accountMapper.insert(account);
}
// 发送邮件提醒用户试用用户已创建
@@ -668,6 +672,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
newAccount.setLanguage(Language.ENGLISH.name());
// 插入新账户
newAccount.setSystemUser(1);
accountMapper.insert(newAccount);
return Boolean.TRUE;
@@ -826,6 +831,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
newAccount.setLanguage(Language.ENGLISH.name());
// 插入新账户
newAccount.setSystemUser(1);
accountMapper.insert(newAccount);
return "<!DOCTYPE html>\n" +
@@ -946,8 +952,48 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
if (CollectionUtil.isNotEmpty(accountList)) {
throw new BusinessException("The email has already been registered");
}
String randomVerifyCode = RandomsUtil.generateVerifyCode(100000L, 999999L);
LocalCacheUtils.setVerifyCodeCache("DesignWorksRegister"+ "_" + accountDesignWorksRegisterDTO.getUserEmail(), randomVerifyCode);
Boolean b = SendEmailUtil.designWorksRegister(accountDesignWorksRegisterDTO.getUserEmail(), randomVerifyCode);
if (!b) {
throw new BusinessException("failed.to.send.mail");
}
return Boolean.TRUE;
}
@Override
public AccountLoginVO designWorksRegisterCode(AccountDesignWorksRegisterDTO accountDesignWorksRegisterDTO) {
String verifyCode = LocalCacheUtils.getVerifyCodeCache("DesignWorksRegister"+ "_" + accountDesignWorksRegisterDTO.getUserEmail());
if (StringUtils.isBlank(verifyCode)) {
throw new BusinessException("the.verification.code.has.expired", ResultEnum.PROMPT.getCode());
}
if (!verifyCode.equals(accountDesignWorksRegisterDTO.getEmailVerifyCode())) {
throw new BusinessException("verification.code.error", ResultEnum.PROMPT.getCode());
}
Account account = CopyUtil.copyObject(accountDesignWorksRegisterDTO, Account.class);
account.setSystemUser(0);
if (StringUtils.isBlank(accountDesignWorksRegisterDTO.getLanguage())) {
account.setLanguage(Language.ENGLISH.name());
}
account.setIsTrial(1);
account.setIsBeginner(1);
account.setCreateDate(new Date());
account.setCredits(BigDecimal.valueOf(500));
accountMapper.insert(account);
return null;
AccountLoginVO response = CopyUtil.copyObject(account, AccountLoginVO.class);
response.setEmail(account.getUserEmail());
String token = LocalCacheUtils.getTokenCache(String.valueOf(account.getId()));
if (StringUtils.isNotBlank(token)) {
//用户已登入
response.setToken(token);
} else {
response.setToken(createAccountToken(account));
}
response.setUserId(account.getId());
response.setSystemUser(account.getSystemUser());
return response;
}
}

View File

@@ -351,20 +351,20 @@ public class CollectionElementServiceImpl extends ServiceImpl<CollectionElementM
@Override
public ValidateElementVO validateElement(DesignCollectionDTO designDTO) {
ValidateElementVO elementVO = CopyUtil.copyObject(designDTO, ValidateElementVO.class);
// List<CollectionColorDTO> colorBoards = elementVO.getColorBoards();
// for (CollectionColorDTO colorBoard : colorBoards) {
// if (Objects.nonNull(colorBoard.getGradient())) {
// String colorImg = colorBoard.getGradient().getColorImg();
// String[] parts = colorImg.split(",");
// String imageType = parts[0].split("/")[1].split(";")[0];
// String base64Data = parts[1];
// String gradientMinioUrl = minioUtil.uploadImageFromBase64(gradientBucketName, base64Data, imageType);
// colorBoard.setGradientMinioUrl(gradientMinioUrl);
// colorBoard.getGradient().setColorImg(null);
// colorBoard.setGradientString(JSON.toJSONString(colorBoard.getGradient()));
// }
// }
// elementVO.setColorBoards(colorBoards);
List<CollectionColorDTO> colorBoards = elementVO.getColorBoards();
for (CollectionColorDTO colorBoard : colorBoards) {
if (Objects.nonNull(colorBoard.getGradient())) {
String colorImg = colorBoard.getGradient().getColorImg();
String[] parts = colorImg.split(",");
String imageType = parts[0].split("/")[1].split(";")[0];
String base64Data = parts[1];
String gradientMinioUrl = minioUtil.uploadImageFromBase64(gradientBucketName, base64Data, imageType);
colorBoard.setGradientMinioUrl(gradientMinioUrl);
colorBoard.getGradient().setColorImg(null);
colorBoard.setGradientString(JSON.toJSONString(colorBoard.getGradient()));
}
}
elementVO.setColorBoards(colorBoards);
List<Long> usedElementIds = elementVO.getUsedElementIds();
List<CollectionElement> libraryCollectionElements = elementVO.getLibraryCollectionElements();
List<CollectionElement> generateCollectionElements = elementVO.getGenerateCollectionElements();

View File

@@ -22,6 +22,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.gson.Gson;
import io.minio.errors.MinioException;

View File

@@ -116,7 +116,9 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, Library> impl
AuthPrincipalVo authPrincipalVo = UserContext.getUserHolder();
// 分页数据
QueryWrapper<Library> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("account_id", authPrincipalVo.getId());
if (!query.getLevel1Type().equals(LibraryLevel1TypeEnum.DESIGN_ELEMENTS.getRealName())) {
queryWrapper.eq("account_id", authPrincipalVo.getId());
}
if (!StringUtils.isEmpty(query.getLevel1Type())) {
LibraryLevel1TypeEnum level1TypeEnum = LibraryLevel1TypeEnum.uploadOf(query.getLevel1Type());
@@ -211,13 +213,20 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, Library> impl
if (finalMap != null && finalMap.containsKey(library.getId())) {
libraryPageVO.setLibraryModelPoint(finalMap.get(library.getId()));
}
if (libraryPageVO.getLevel1Type().equals(LibraryLevel1TypeEnum.SKETCH_BOARD.getRealName())
|| libraryPageVO.getLevel1Type().equals(LibraryLevel1TypeEnum.PRINT_BOARD.getRealName())) {
if (libraryPageVO.getLevel1Type().equals(LibraryLevel1TypeEnum.SKETCH_BOARD.getRealName())) {
if (!StringUtils.isEmpty(libraryPageVO.getLevel2Type())) {
Position position = Position.getPosition(libraryPageVO.getLevel2Type());
libraryPageVO.setLevel2TypeEnum(new BizJson(position.getValue(), position.name(), BusinessException.getMessageFromResource(position.name())));
}
}
if (libraryPageVO.getLevel1Type().equals(LibraryLevel1TypeEnum.PRINT_BOARD.getRealName())) {
PrintboardLevel2TypeEnum printboardLevel2TypeEnum = PrintboardLevel2TypeEnum.fromName(libraryPageVO.getLevel2Type());
libraryPageVO.setLevel2TypeEnum(new BizJson(printboardLevel2TypeEnum.getValue(), printboardLevel2TypeEnum.name(), BusinessException.getMessageFromResource(printboardLevel2TypeEnum.name())));
}
if (libraryPageVO.getLevel1Type().equals(LibraryLevel1TypeEnum.DESIGN_ELEMENTS.getRealName())) {
DesignElementsEnum designElementsEnum = DesignElementsEnum.fromName(libraryPageVO.getLevel2Type());
libraryPageVO.setLevel2TypeEnum(new BizJson(designElementsEnum.getValue(), designElementsEnum.name(), BusinessException.getMessageFromResource(designElementsEnum.name())));
}
return libraryPageVO;
});
return PageBaseResponse.success(convert);

View File

@@ -5,11 +5,10 @@ import com.ai.da.common.response.PageBaseResponse;
import com.ai.da.common.response.Response;
import com.ai.da.common.utils.CopyUtil;
import com.ai.da.common.utils.MinioUtil;
import com.ai.da.common.utils.RedisUtil;
import com.ai.da.mapper.primary.*;
import com.ai.da.mapper.primary.entity.*;
import com.ai.da.model.dto.DesignWorksRegisterDTO;
import com.ai.da.model.dto.PortfolioDTO;
import com.ai.da.model.dto.QueryPortfolioPageDTO;
import com.ai.da.model.dto.*;
import com.ai.da.model.enums.Position;
import com.ai.da.model.enums.Sex;
import com.ai.da.model.vo.*;
@@ -91,6 +90,9 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
@Resource
private CanvasMapper canvasMapper;
@Resource
private AccountMapper accountMapper;
@Override
public Boolean publish(MultipartFile file, String data) {
PortfolioDTO portfolioDTO = JSONObject.parseObject(data, PortfolioDTO.class);
@@ -143,6 +145,7 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
portfolio.setIsDeleted(0);
portfolio.setUserLikeGroupSourceId(portfolioDTO.getUserLikeGroupId());
portfolio.setCanvasId(canvas.getId());
portfolio.setPortfolioDes(portfolioDTO.getPortfolioDes());
if (!CollectionUtils.isEmpty(portfolios)) {
portfolioMapper.updateById(portfolio);
}else {
@@ -235,6 +238,7 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
portfolio.setOpenSource(0);
portfolio.setUserLikeGroupSourceId(portfolioDTO.getUserLikeGroupId());
portfolio.setCanvasId(canvas.getId());
portfolio.setPortfolioDes(portfolioDTO.getPortfolioDes());
if (!CollectionUtils.isEmpty(portfolios)) {
portfolioMapper.updateById(portfolio);
}else {
@@ -365,7 +369,17 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
@Override
public PageBaseResponse<PortfolioVO> page(QueryPortfolioPageDTO query) {
AuthPrincipalVo userHolder = UserContext.getUserHolder();
QueryWrapper<Portfolio> qw = new QueryWrapper<>();
if (query.getGetMyPortfolio() == 1) {
qw.lambda().eq(Portfolio::getAccountId, userHolder.getId());
}
if (query.getGetLikePortfolio() == 1) {
List<Long> likedPortfolioIdList = redisUtil.getLikedPortfolios(userHolder.getId());
if (!CollectionUtils.isEmpty(likedPortfolioIdList)) {
qw.lambda().in(Portfolio::getId, likedPortfolioIdList);
}
}
qw.lambda().orderByDesc(Portfolio::getUpdateDate);
IPage<Portfolio> page = portfolioMapper.selectPage(new Page<>(query.getPage(), query.getSize()),qw);
IPage<PortfolioVO> convert = page.convert((Function<Portfolio, PortfolioVO>) portfolio -> {
@@ -373,6 +387,7 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
PortfolioVO vo = CopyUtil.copyObject(portfolio, PortfolioVO.class);
Canvas canvas = canvasMapper.selectById(vo.getCanvasId());
vo.setCanvasUrl(minioUtil.getPresignedUrl(canvas.getUrl(), 24 * 60));
vo.setLikeNum(redisUtil.getLikeCount(vo.getId()));
return vo;
}
return null;
@@ -382,6 +397,7 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
@Override
public PortfolioVO detail(PortfolioDTO portfolioDTO) {
AuthPrincipalVo userHolder = UserContext.getUserHolder();
Portfolio portfolio = portfolioMapper.selectById(portfolioDTO.getId());
PortfolioVO vo = CopyUtil.copyObject(portfolio, PortfolioVO.class);
if (vo.getOpenSource() == 1) {
@@ -404,6 +420,13 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
}
Canvas canvas = canvasMapper.selectById(vo.getCanvasId());
vo.setCanvasUrl(minioUtil.getPresignedUrl(canvas.getUrl(), 24 * 60));
vo.setLikeNum(redisUtil.getLikeCount(vo.getId()));
boolean postLikedByUser = redisUtil.isPostLikedByUser(portfolioDTO.getId(), userHolder.getId());
if (postLikedByUser) {
vo.setIsLike(1);
}else {
vo.setIsLike(0);
}
return vo;
}
@@ -522,4 +545,84 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
public Boolean designWorksRegister(DesignWorksRegisterDTO designWorksRegisterDTO) {
return null;
}
@Resource
private RedisUtil redisUtil;
@Override
public Boolean like(Long id) {
AuthPrincipalVo userHolder = UserContext.getUserHolder();
redisUtil.likePost(id, userHolder.getId());
return Boolean.TRUE;
}
@Resource
private CommentMapper commentMapper;
@Override
public Boolean comment(CommentDTO commentDTO) {
AuthPrincipalVo userHolder = UserContext.getUserHolder();
Comment comment = CopyUtil.copyObject(commentDTO, Comment.class);
comment.setCreateTime(LocalDateTime.now());
comment.setAccountId(userHolder.getId());
commentMapper.insert(comment);
return Boolean.TRUE;
}
@Override
public PageBaseResponse<CommentVO> commentPage(CommentPageDTO commentPageDTO) {
QueryWrapper<Comment> qw = new QueryWrapper<>();
qw.lambda().eq(Comment::getPortfolioId, commentPageDTO.getPortfolioId());
qw.lambda().eq(Comment::getParentLevel1Id, 0L);
qw.lambda().orderByDesc(Comment::getCreateTime);
Page<Comment> commentPage = commentMapper.selectPage(new Page<>(commentPageDTO.getPage(), commentPageDTO.getSize()), qw);
IPage<CommentVO> convert = commentPage.convert(o -> {
CommentVO commentVO = CopyUtil.copyObject(o, CommentVO.class);
commentVO.setUserName(accountMapper.selectById(commentVO.getAccountId()).getUserName());
List<CommentVO> childList = getChildCommentVOList(commentVO.getId());
if (!CollectionUtils.isEmpty(childList)) {
commentVO.setChildCommentVOList(childList);
}
return commentVO;
});
return PageBaseResponse.success(convert);
}
@Override
public Boolean unlike(Long id) {
AuthPrincipalVo userHolder = UserContext.getUserHolder();
redisUtil.unLikePost(id, userHolder.getId());
return Boolean.TRUE;
}
@Override
public Long getLikeCount(Long id) {
return redisUtil.getLikeCount(id);
}
private List<CommentVO> getChildCommentVOList(Long id) {
QueryWrapper<Comment> qw = new QueryWrapper<>();
qw.lambda().eq(Comment::getParentLevel1Id, id);
qw.lambda().orderByDesc(Comment::getCreateTime);
List<Comment> comments = commentMapper.selectList(qw);
if (CollectionUtils.isEmpty(comments)) {
return new ArrayList<>();
}
List<CommentVO> resultList = new ArrayList<>();
for (Comment comment : comments) {
CommentVO commentVO = CopyUtil.copyObject(comment, CommentVO.class);
commentVO.setUserName(accountMapper.selectById(commentVO.getAccountId()).getUserName());
if (null != commentVO.getParentLevel2Id()) {
Comment comment1 = commentMapper.selectById(commentVO.getParentLevel2Id());
commentVO.setReplyTo(accountMapper.selectById(comment1.getAccountId()).getUserName());
}
resultList.add(commentVO);
}
// List<CommentVO> commentVOS = CopyUtil.copyList(comments, CommentVO.class);
// for (CommentVO commentVO : commentVOS) {
// List<CommentVO> childCommentVOList = getChildCommentVOList(commentVO.getId());
// if (!CollectionUtils.isEmpty(childCommentVOList)) {
// commentVO.setChildCommentVOList(childCommentVOList);
// }
// }
return resultList;
}
}

View File

@@ -73,6 +73,8 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
private SysFileMapper sysFileMapper;
@Resource
private LibraryMapper libraryMapper;
@Resource
private PortfolioMapper portfolioMapper;
@Override
public void deleteUserGroup(Long userGroupId) {
@@ -154,7 +156,14 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
}
});
UserLikeCollectionVO userLikeCollection = collectionService.chooseCollection(group.getCollectionId());
return new UserLikeChooseVO(userGroupId, userLikeVOS, userLikeCollection, sex);
Integer beenPublished = 0;
QueryWrapper<Portfolio> qw = new QueryWrapper<>();
qw.lambda().eq(Portfolio::getUserLikeGroupSourceId, userGroupId);
List<Portfolio> portfolios = portfolioMapper.selectList(qw);
if (CollectionUtil.isNotEmpty(portfolios)) {
beenPublished = 1;
}
return new UserLikeChooseVO(userGroupId, userLikeVOS, userLikeCollection, sex, beenPublished);
}
@Override
@@ -385,6 +394,17 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
return toProductImageResults;
}
@Override
public Boolean productImageUnLike(ProductImageLikeDTO productImageLikeDTO) {
List<Long> toProductImageResultId = productImageLikeDTO.getToProductImageResultId();
QueryWrapper<ToProductImageResult> qw = new QueryWrapper<>();
qw.lambda().in(ToProductImageResult::getId, toProductImageResultId);
ToProductImageResult toProductImageResult = new ToProductImageResult();
toProductImageResult.setIsLike(0);
toProductImageResultMapper.update(toProductImageResult, qw);
return Boolean.TRUE;
}
public static String convert(InputStream inputStream) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
return reader.lines().collect(Collectors.joining("\n"));

View File

@@ -140,7 +140,7 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
}else {
WorkspaceRelStyle workspaceRelStyle = workspaceRelStyles.get(0);
if (!Objects.equals(workspaceRelStyle.getStyleId(), workspaceDTO.getStyleId())) {
workspaceRelStyle.setStyleId(workspaceRelStyle.getStyleId());
workspaceRelStyle.setStyleId(workspaceDTO.getStyleId());
workspaceRelStyleMapper.updateById(workspaceRelStyle);
}
}
@@ -276,6 +276,7 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
@Override
public WorkspaceVO getByIdNew(Long id) {
AuthPrincipalVo authPrincipalVo = UserContext.getUserHolder();
Long accountId = UserContext.getUserHolder().getId();
QueryWrapper<Workspace> qwOld = new QueryWrapper<>();
qwOld.lambda().eq(Workspace::getAccountId, accountId);
@@ -305,6 +306,19 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
Position position = Position.getPosition(vo.getPosition());
vo.setSexEnum(new BizJson(sex.getValue(), sex.name(), BusinessException.getMessageFromResource(sex.name())));
vo.setPositionEnum(new BizJson(position.getValue(), position.name(), BusinessException.getMessageFromResource(position.name())));
QueryWrapper<WorkspaceRelStyle> qw = new QueryWrapper<>();
qw.lambda().eq(WorkspaceRelStyle::getWorkspaceId, vo.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())) {
vo.setStyleName(styleEnum.getEnglish());
}else {
vo.setStyleName(styleEnum.getChinese());
}
}
return vo;
}