refactor(character): 移除冗余Bean拷贝并统一返回VO类型
This commit is contained in:
@@ -42,8 +42,7 @@ public class CharacterController {
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "人设列表", description = "人设列表接口按 rank 排名")
|
||||
public BaseResponse<List<KeyboardCharacterRespVO>> list() {
|
||||
List<KeyboardCharacter> list = characterService.selectListWithRank();
|
||||
return ResultUtils.success(BeanUtil.copyToList(list, KeyboardCharacterRespVO.class));
|
||||
return ResultUtils.success(characterService.selectListWithRank());
|
||||
}
|
||||
|
||||
@GetMapping("/detail")
|
||||
@@ -56,8 +55,7 @@ public class CharacterController {
|
||||
@GetMapping("/listByTag")
|
||||
@Operation(summary = "按标签查询人设列表", description = "按标签查询人设列表接口")
|
||||
public BaseResponse<List<KeyboardCharacterRespVO>> listByTag(@RequestParam("tagId") Long tagId) {
|
||||
List<KeyboardCharacter> list = characterService.selectListByTag(tagId);
|
||||
return ResultUtils.success(BeanUtil.copyToList(list, KeyboardCharacterRespVO.class));
|
||||
return ResultUtils.success(characterService.selectListByTag(tagId));
|
||||
}
|
||||
|
||||
@GetMapping("/listByUser")
|
||||
|
||||
@@ -39,4 +39,6 @@ public class KeyboardCharacterRespVO {
|
||||
@Schema(description="排名顺序")
|
||||
private Integer rank;
|
||||
|
||||
@Schema(description = "是否添加")
|
||||
private Boolean added;
|
||||
}
|
||||
@@ -28,4 +28,6 @@ public class KeyboardUserCharacterVO {
|
||||
|
||||
@Schema(description = "emoji")
|
||||
private String emoji;
|
||||
|
||||
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import com.yolo.keyborad.model.entity.KeyboardCharacter;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.yolo.keyborad.model.entity.KeyboardTag;
|
||||
import com.yolo.keyborad.model.entity.KeyboardUserCharacter;
|
||||
import com.yolo.keyborad.model.vo.character.KeyboardCharacterRespVO;
|
||||
import com.yolo.keyborad.model.vo.character.KeyboardUserCharacterVO;
|
||||
|
||||
import java.util.List;
|
||||
@@ -17,9 +18,9 @@ import java.util.List;
|
||||
public interface KeyboardCharacterService extends IService<KeyboardCharacter>{
|
||||
|
||||
|
||||
List<KeyboardCharacter> selectListWithRank();
|
||||
List<KeyboardCharacterRespVO> selectListWithRank();
|
||||
|
||||
List<KeyboardCharacter> selectListByTag(Long tagId);
|
||||
List<KeyboardCharacterRespVO> selectListByTag(Long tagId);
|
||||
|
||||
List<KeyboardUserCharacterVO> selectListByUserId();
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.yolo.keyborad.service.impl;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
@@ -14,6 +15,7 @@ import com.yolo.keyborad.model.dto.userCharacter.KeyboardUserCharacterAddDTO;
|
||||
import com.yolo.keyborad.model.dto.userCharacter.KeyboardUserCharacterSortUpdateDTO;
|
||||
import com.yolo.keyborad.model.entity.KeyboardUser;
|
||||
import com.yolo.keyborad.model.entity.KeyboardUserCharacter;
|
||||
import com.yolo.keyborad.model.vo.character.KeyboardCharacterRespVO;
|
||||
import com.yolo.keyborad.model.vo.character.KeyboardUserCharacterVO;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -24,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
/*
|
||||
* @author: ziin
|
||||
* @date: 2025/12/3 14:18
|
||||
@@ -42,18 +45,39 @@ public class KeyboardCharacterServiceImpl extends ServiceImpl<KeyboardCharacterM
|
||||
private KeyboardUserSortMapper keyboardUserSortMapper;
|
||||
|
||||
@Override
|
||||
public List<KeyboardCharacter> selectListWithRank() {
|
||||
return keyboardCharacterMapper.selectList(new LambdaQueryWrapper<KeyboardCharacter>()
|
||||
public List<KeyboardCharacterRespVO> selectListWithRank() {
|
||||
long userId = StpUtil.getLoginIdAsLong();
|
||||
List<KeyboardCharacter> keyboardCharacters = keyboardCharacterMapper.selectList(new LambdaQueryWrapper<KeyboardCharacter>()
|
||||
.eq(KeyboardCharacter::getDeleted, false)
|
||||
.orderByAsc(KeyboardCharacter::getRank));
|
||||
|
||||
List<KeyboardUserCharacterVO> userCharacterVOList = keyboardUserCharacterMapper.selectByUserId(userId);
|
||||
List<KeyboardCharacterRespVO> keyboardCharacterRespVOS = BeanUtil.copyToList(keyboardCharacters, KeyboardCharacterRespVO.class);
|
||||
keyboardCharacterRespVOS.forEach(character -> {
|
||||
character.setAdded(userCharacterVOList.stream().anyMatch(userCharacter ->
|
||||
userCharacter.getId().equals(character.getId())));
|
||||
});
|
||||
return keyboardCharacterRespVOS;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<KeyboardCharacter> selectListByTag(Long tagId) {
|
||||
return keyboardCharacterMapper.selectList(new LambdaQueryWrapper<KeyboardCharacter>()
|
||||
public List<KeyboardCharacterRespVO> selectListByTag(Long tagId) {
|
||||
List<KeyboardCharacter> keyboardCharacters = keyboardCharacterMapper.selectList(new LambdaQueryWrapper<KeyboardCharacter>()
|
||||
.eq(KeyboardCharacter::getDeleted, false)
|
||||
.eq(KeyboardCharacter::getTag, tagId)
|
||||
.orderByDesc(KeyboardCharacter::getRank));
|
||||
|
||||
long userId = StpUtil.getLoginIdAsLong();
|
||||
List<KeyboardUserCharacterVO> userCharacterVOList = keyboardUserCharacterMapper.selectByUserId(userId);
|
||||
List<KeyboardCharacterRespVO> keyboardCharacterRespVOS = BeanUtil.copyToList(keyboardCharacters, KeyboardCharacterRespVO.class);
|
||||
keyboardCharacterRespVOS.forEach(character -> {
|
||||
character.setAdded(userCharacterVOList.stream().anyMatch(userCharacter ->
|
||||
userCharacter.getId().equals(character.getId())));
|
||||
});
|
||||
return keyboardCharacterRespVOS;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user