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

@@ -46,4 +46,10 @@ public class GenerateController {
return Response.success(generateService.generateLike(generateLikeDTO)); return Response.success(generateService.generateLike(generateLikeDTO));
} }
@ApiOperation(value = "取消喜欢")
@PostMapping("/dislike")
public Response<Boolean> dislike(@RequestParam Long generateDetailId,String timeZone) {
return Response.success(generateService.generateDislike(generateDetailId,timeZone));
}
} }

View File

@@ -37,6 +37,11 @@ public class GenerateDetail {
*/ */
private Byte isLike; private Byte isLike;
/**
* 喜欢的图片添加到library对应的id
*/
private Long libraryId;
/** /**
* 创建时间 * 创建时间
*/ */

View File

@@ -13,4 +13,6 @@ public interface GenerateService {
GenerateCollectionVO generateThroughImageText(GenerateThroughImageTextDTO generateThroughImageTextDTO); GenerateCollectionVO generateThroughImageText(GenerateThroughImageTextDTO generateThroughImageTextDTO);
GenerateLikeVO generateLike(GenerateLikeDTO generateLikeDTO); 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"); Assert.isTrue(generateLikeDTO.getLevel1Type().equals(generate.getLevel1Type()),"level1Type does not match");
// 2、将like的图片信息存入library // 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(); AuthPrincipalVo userInfo = UserContext.getUserHolder();
Long accountId = userInfo.getId(); Long accountId = userInfo.getId();
Library library = setLibrary(accountId, generateLikeDTO, generateDetail.getUrl()); Library library = setLibrary(accountId, generateLikeDTO, generateDetail.getUrl());
libraryService.save(library); libraryService.save(library);
// 3、更新generateDetail表的isLike列 // 3、更新generateDetail表的isLike列和libraryId列
updateLikeStatus(generateLikeDTO.getGenerateDetailId(),(byte)1); updateLikeStatus(generateLikeDTO.getGenerateDetailId(),(byte)1,library.getId(),generateLikeDTO.getTimeZone());
return new GenerateLikeVO(library.getId()); 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){ public Library setLibrary(Long accountId,GenerateLikeDTO generateLikeDTO,String imageUrl){
Library library = new Library(); Library library = new Library();
library.setAccountId(accountId); library.setAccountId(accountId);
@@ -176,12 +203,14 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper,Generate> im
return library; 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<GenerateDetail> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", generateDetailId); queryWrapper.eq("id", generateDetailId);
GenerateDetail generateDetail = new GenerateDetail(); GenerateDetail generateDetail = new GenerateDetail();
generateDetail.setIsLike(hasLike); generateDetail.setIsLike(hasLike);
generateDetail.setLibraryId(libraryId);
generateDetail.setUpdateDate(DateUtil.getByTimeZone(timeZone));
generateDetailMapper.update(generateDetail,queryWrapper); 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.context.UserContext;
import com.ai.da.common.enums.*; import com.ai.da.common.enums.*;
import com.ai.da.common.response.PageBaseResponse; 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.CopyUtil;
import com.ai.da.common.utils.DateUtil; import com.ai.da.common.utils.DateUtil;
import com.ai.da.common.utils.FileUtil; 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.LibraryMapper;
import com.ai.da.mapper.UserLikeMapper;
import com.ai.da.mapper.entity.*; import com.ai.da.mapper.entity.*;
import com.ai.da.model.dto.*; import com.ai.da.model.dto.*;
import com.ai.da.model.vo.*; import com.ai.da.model.vo.*;
import com.ai.da.service.LibraryModelPointService; import com.ai.da.service.LibraryModelPointService;
import com.ai.da.service.LibraryService; 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.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.Assert; import org.springframework.util.Assert;
@@ -50,6 +46,8 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, Library> impl
private FileProperties fileProperties; private FileProperties fileProperties;
@Resource @Resource
private LibraryModelPointService libraryModelPointService; private LibraryModelPointService libraryModelPointService;
@Resource
private MinioUtil minioUtil;
private static List<String> top = Arrays.asList(CollectionLevel2TypeEnum.DRESS.getRealName(), private static List<String> top = Arrays.asList(CollectionLevel2TypeEnum.DRESS.getRealName(),
CollectionLevel2TypeEnum.OUTWEAR.getRealName(),CollectionLevel2TypeEnum.BLOUSE.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 -> { IPage<QueryLibraryPageVO> convert = page.convert((Function<Library, QueryLibraryPageVO>) library -> {
QueryLibraryPageVO libraryPageVO = CopyUtil.copyObject(library,QueryLibraryPageVO.class); QueryLibraryPageVO libraryPageVO = CopyUtil.copyObject(library,QueryLibraryPageVO.class);
libraryPageVO.setDesignType(DesignTypeEnum.LIBRARY.getRealName()); libraryPageVO.setDesignType(DesignTypeEnum.LIBRARY.getRealName());
if (library.getUrl().startsWith("aida")){
libraryPageVO.setUrl(minioUtil.splitThenGetPreviewUrl(library.getUrl(),480));
}
if(finalMap != null && finalMap.containsKey(library.getId())){ if(finalMap != null && finalMap.containsKey(library.getId())){
libraryPageVO.setLibraryModelPoint(finalMap.get(library.getId())); libraryPageVO.setLibraryModelPoint(finalMap.get(library.getId()));
} }