generate 添加dislike功能

获取library地址修改(兼容minio地址)
This commit is contained in:
xupei
2023-09-19 15:21:53 +08:00
parent 00803692b2
commit eb2ef0f39d
5 changed files with 51 additions and 8 deletions

View File

@@ -13,4 +13,6 @@ public interface GenerateService {
GenerateCollectionVO generateThroughImageText(GenerateThroughImageTextDTO generateThroughImageTextDTO);
GenerateLikeVO generateLike(GenerateLikeDTO generateLikeDTO);
Boolean generateDislike(Long generateDetailId,String timeZone);
}

View File

@@ -153,17 +153,44 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper,Generate> im
Assert.isTrue(generateLikeDTO.getLevel1Type().equals(generate.getLevel1Type()),"level1Type does not match");
// 2、将like的图片信息存入library
// 2.1、不能重复喜欢
Library libraryDetail = libraryService.getById(generateDetail.getLibraryId());
Assert.isTrue(Objects.isNull(generateDetail.getLibraryId()) || Objects.isNull(libraryDetail),
"Duplicate likes are not allowed");
// 2.2、添加到library
AuthPrincipalVo userInfo = UserContext.getUserHolder();
Long accountId = userInfo.getId();
Library library = setLibrary(accountId, generateLikeDTO, generateDetail.getUrl());
libraryService.save(library);
// 3、更新generateDetail表的isLike列
updateLikeStatus(generateLikeDTO.getGenerateDetailId(),(byte)1);
// 3、更新generateDetail表的isLike列和libraryId列
updateLikeStatus(generateLikeDTO.getGenerateDetailId(),(byte)1,library.getId(),generateLikeDTO.getTimeZone());
return new GenerateLikeVO(library.getId());
}
@Override
public Boolean generateDislike(Long generateDetailId, String timeZone) {
// 1、确定generateDetail中是否有这条记录
GenerateDetail generateDetail = generateDetailMapper.selectById(generateDetailId);
Assert.notNull(generateDetail,"generateItem does not exist");
// 2、修改generateDetail表中的isLike、libraryId字段
updateLikeStatus(generateDetailId,(byte)0,0L,timeZone);
// 3、确定library中是否添加该条记录
Library libraryDetail = libraryService.getById(generateDetail.getLibraryId());
if (Objects.isNull(libraryDetail)){
return Boolean.TRUE;
}
// 4、删除library相关记录
libraryService.removeById(libraryDetail.getId());
// 5、返回成功
return Boolean.TRUE;
}
public Library setLibrary(Long accountId,GenerateLikeDTO generateLikeDTO,String imageUrl){
Library library = new Library();
library.setAccountId(accountId);
@@ -176,12 +203,14 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper,Generate> im
return library;
}
public void updateLikeStatus(Long generateDetailId,Byte hasLike){
public void updateLikeStatus(Long generateDetailId,Byte hasLike,Long libraryId,String timeZone){
QueryWrapper<GenerateDetail> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", generateDetailId);
GenerateDetail generateDetail = new GenerateDetail();
generateDetail.setIsLike(hasLike);
generateDetail.setLibraryId(libraryId);
generateDetail.setUpdateDate(DateUtil.getByTimeZone(timeZone));
generateDetailMapper.update(generateDetail,queryWrapper);
}
}

View File

@@ -5,25 +5,21 @@ import com.ai.da.common.config.exception.BusinessException;
import com.ai.da.common.context.UserContext;
import com.ai.da.common.enums.*;
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.DateUtil;
import com.ai.da.common.utils.FileUtil;
import com.ai.da.mapper.CollectionElementMapper;
import com.ai.da.common.utils.MinioUtil;
import com.ai.da.mapper.LibraryMapper;
import com.ai.da.mapper.UserLikeMapper;
import com.ai.da.mapper.entity.*;
import com.ai.da.model.dto.*;
import com.ai.da.model.vo.*;
import com.ai.da.service.LibraryModelPointService;
import com.ai.da.service.LibraryService;
import com.ai.da.service.UserLikeService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.base.Function;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
@@ -50,6 +46,8 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, Library> impl
private FileProperties fileProperties;
@Resource
private LibraryModelPointService libraryModelPointService;
@Resource
private MinioUtil minioUtil;
private static List<String> top = Arrays.asList(CollectionLevel2TypeEnum.DRESS.getRealName(),
CollectionLevel2TypeEnum.OUTWEAR.getRealName(),CollectionLevel2TypeEnum.BLOUSE.getRealName());
@@ -122,6 +120,9 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, Library> impl
IPage<QueryLibraryPageVO> convert = page.convert((Function<Library, QueryLibraryPageVO>) library -> {
QueryLibraryPageVO libraryPageVO = CopyUtil.copyObject(library,QueryLibraryPageVO.class);
libraryPageVO.setDesignType(DesignTypeEnum.LIBRARY.getRealName());
if (library.getUrl().startsWith("aida")){
libraryPageVO.setUrl(minioUtil.splitThenGetPreviewUrl(library.getUrl(),480));
}
if(finalMap != null && finalMap.containsKey(library.getId())){
libraryPageVO.setLibraryModelPoint(finalMap.get(library.getId()));
}