feat: 返回用户收藏列表

This commit is contained in:
sjm
2024-07-20 14:05:50 +08:00
parent 09ec6bcbce
commit 310a4b23dc
6 changed files with 67 additions and 13 deletions

View File

@@ -5,14 +5,17 @@ import com.google.common.base.Preconditions;
import com.schisandra.share.application.convert.SchisandraUserFavoritesDTOConverter;
import com.schisandra.share.application.dto.SchisandraUserFavoritesDTO;
import com.schisandra.share.common.entity.Result;
import com.schisandra.share.common.utils.CaffeineUtil;
import com.schisandra.share.domain.bo.SchisandraUserFavoritesBO;
import com.schisandra.share.domain.service.SchisandraUserFavoritesDomainService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* 收藏表 controller
@@ -28,26 +31,46 @@ public class SchisandraUserFavoritesController {
@Resource
private SchisandraUserFavoritesDomainService schisandraUserFavoritesDomainService;
@Resource
CaffeineUtil caffeineUtil;
/**
* 新增收藏
* 我的收藏
* @param userId
* @return
*/
@GetMapping("myfavor")
public Result<SchisandraUserFavoritesDTO> myfavor(String userId) {
try{
if (log.isInfoEnabled()) {
log.info("SchisandraUserFavoritesController.myfavor.userId:{}", JSON.toJSONString(userId));
}
Preconditions.checkNotNull(userId, "userId不能为空");
List<SchisandraUserFavoritesBO> result= (List<SchisandraUserFavoritesBO>) caffeineUtil
.caffeineBuild().getIfPresent("myfavor"+userId);
if(result!=null){
return Result.ok(result);
}
result = schisandraUserFavoritesDomainService.returnMyFavor(userId);
return Result.ok(result);
} catch (Exception e) {
log.error("SchisandraUserFavoritesController.myfavor.error:{}", e.getMessage(), e);
return Result.fail("获取用户收藏表失败");
}
}
/**
* 新增收藏
*/
@RequestMapping("add")
public Result<Boolean> add(@RequestBody SchisandraUserFavoritesDTO schisandraUserFavoritesDTO) {
try {
if (log.isInfoEnabled()) {
log.info("SchisandraUserFavoritesController.add.dto:{}", JSON.toJSONString(schisandraUserFavoritesDTO));
}
Preconditions.checkNotNull(schisandraUserFavoritesDTO.getId(), "不能为空");
Preconditions.checkNotNull(schisandraUserFavoritesDTO.getUserId(), "不能为空");
Preconditions.checkNotNull(schisandraUserFavoritesDTO.getDetailId(), "不能为空");
Preconditions.checkNotNull(schisandraUserFavoritesDTO.getCircleId(), "不能为空");
Preconditions.checkNotNull(schisandraUserFavoritesDTO.getExtJson(), "不能为空");
Preconditions.checkNotNull(schisandraUserFavoritesDTO.getCreatedBy(), "创建人不能为空");
Preconditions.checkNotNull(schisandraUserFavoritesDTO.getCreatedTime(), "创建时间不能为空");
Preconditions.checkNotNull(schisandraUserFavoritesDTO.getUpdateBy(), "更新人不能为空");
Preconditions.checkNotNull(schisandraUserFavoritesDTO.getUpdateTime(), "更新时间不能为空");
Preconditions.checkNotNull(schisandraUserFavoritesDTO.getIsDeleted(), "不能为空");
Preconditions.checkNotNull(schisandraUserFavoritesDTO.getUserId(), "userId不能为空");
Preconditions.checkNotNull(schisandraUserFavoritesDTO.getDetailId(), "detailId不能为空");
SchisandraUserFavoritesBO SchisandraUserFavoritesBO = SchisandraUserFavoritesDTOConverter.INSTANCE.convertDTOToBO(schisandraUserFavoritesDTO);
return Result.ok(schisandraUserFavoritesDomainService.add(SchisandraUserFavoritesBO));
} catch (Exception e) {

View File

@@ -5,6 +5,8 @@ import com.schisandra.share.infra.basic.entity.SchisandraUserFavorites;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* 收藏表 bo转换器
*
@@ -19,4 +21,5 @@ public interface SchisandraUserFavoritesBOConverter {
SchisandraUserFavorites convertBOToEntity(SchisandraUserFavoritesBO schisandraUserFavoritesBO);
SchisandraUserFavoritesBO convertEntityToBO(SchisandraUserFavorites schisandraUserFavorites);
List<SchisandraUserFavoritesBO> convertEntityToBOList(List<SchisandraUserFavorites> schisandraUserFavorites);
}

View File

@@ -2,6 +2,8 @@ package com.schisandra.share.domain.service;
import com.schisandra.share.domain.bo.SchisandraUserFavoritesBO;
import java.util.List;
/**
* 收藏表 领域service
*
@@ -25,4 +27,6 @@ public interface SchisandraUserFavoritesDomainService {
*/
Boolean delete(SchisandraUserFavoritesBO schisandraUserFavoritesBO);
List<SchisandraUserFavoritesBO> returnMyFavor(String userId);
}

View File

@@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 收藏表 领域service实现了
@@ -45,4 +46,10 @@ public class SchisandraUserFavoritesDomainServiceImpl implements SchisandraUserF
return schisandraUserFavoritesService.update(schisandraUserFavorites) > 0;
}
@Override
public List<SchisandraUserFavoritesBO> returnMyFavor(String userId){
List<SchisandraUserFavoritesBO> schisandraUserFavoritesBOS = SchisandraUserFavoritesBOConverter.INSTANCE.convertEntityToBOList(schisandraUserFavoritesService.returnMyFavor(userId));
return schisandraUserFavoritesBOS;
}
}

View File

@@ -2,6 +2,8 @@ package com.schisandra.share.infra.basic.service;
import com.schisandra.share.infra.basic.entity.SchisandraUserFavorites;
import java.util.List;
/**
* 收藏表 表服务接口
*
@@ -42,5 +44,5 @@ public interface SchisandraUserFavoritesService {
*/
boolean deleteById(Long id);
List<SchisandraUserFavorites> returnMyFavor(String userId);
}

View File

@@ -1,11 +1,14 @@
package com.schisandra.share.infra.basic.service.impl;
import com.mybatisflex.core.query.QueryWrapper;
import com.schisandra.share.infra.basic.entity.SchisandraUserFavorites;
import com.schisandra.share.infra.basic.dao.SchisandraUserFavoritesDao;
import com.schisandra.share.infra.basic.entity.table.SchisandraUserFavoritesTableDef;
import com.schisandra.share.infra.basic.service.SchisandraUserFavoritesService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 收藏表 表服务实现类
@@ -63,5 +66,17 @@ public class SchisandraUserFavoritesServiceImpl implements SchisandraUserFavorit
return this.schisandraUserFavoritesDao.deleteById(id) > 0;
}
@Override
public List<SchisandraUserFavorites> returnMyFavor(String userId) {
QueryWrapper wrapper = QueryWrapper.create()
.select(SchisandraUserFavoritesTableDef.SCHISANDRA_USER_FAVORITES.ID,
SchisandraUserFavoritesTableDef.SCHISANDRA_USER_FAVORITES.DETAIL_ID,
SchisandraUserFavoritesTableDef.SCHISANDRA_USER_FAVORITES.CIRCLE_ID,
SchisandraUserFavoritesTableDef.SCHISANDRA_USER_FAVORITES.CREATED_TIME)
.where(SchisandraUserFavoritesTableDef.SCHISANDRA_USER_FAVORITES.USER_ID.eq(userId))
.orderBy(SchisandraUserFavoritesTableDef.SCHISANDRA_USER_FAVORITES.CREATED_TIME,false);
return this.schisandraUserFavoritesDao.selectListByQuery(wrapper);
}
}