[feat]搜索功用修改

This commit is contained in:
haolj 2025-08-30 16:35:13 +08:00
parent 4d02d61b64
commit dd8796ba79
6 changed files with 86 additions and 34 deletions

View File

@ -36,7 +36,7 @@ public class AppSearchController {
@Tag(name = "视频、商品和用户检索")
@PostMapping("")
public R<IPage<?>> searchApp(@RequestBody SearchBO searchBO, @RequestBody Page page) {
public R<IPage<?>> search(@RequestBody SearchBO searchBO, @RequestBody Page page) {
try {
LoginUser loginUser = LoginHelper.getLoginUser();
if (loginUser == null) {
@ -44,7 +44,7 @@ public class AppSearchController {
}
searchBO.setUserId(String.valueOf(loginUser.getUserId()));
} catch (Exception e) {
log.error("用户没登陆11", e);
log.error("用户没登陆", e);
}
IPage<?> pages = null;

View File

@ -39,10 +39,4 @@ public class SearchBO {
@Schema(description = "城市编码")
private String cityCode;
/**
* 状态
*/
@Schema(description = "状态")
private String status;
}

View File

@ -0,0 +1,17 @@
package com.wzj.soopin.content.enums;
import lombok.AllArgsConstructor;
@AllArgsConstructor
public enum VlogStatusEnum {
AUDITING(0, "待审核"),
APPROVED(1, "通过"),
AUDITI_REJECT(2, "审核驳回"),
NEED_REEXAMINE (3, "需复审"),
OFF_SHELF(4, "下架"),
DELETE(5, "删除");
public final Integer type;
public final String value;
}

View File

@ -15,6 +15,7 @@ import com.wzj.soopin.content.domain.po.MyLikedVlog;
import com.wzj.soopin.content.domain.po.Vlog;
import com.wzj.soopin.content.domain.po.Users;
import com.wzj.soopin.content.domain.vo.VlogerVO;
import com.wzj.soopin.content.enums.VlogStatusEnum;
import com.wzj.soopin.member.domain.po.Member;
import com.wzj.soopin.content.domain.vo.IndexVlogVO;
import com.wzj.soopin.content.enums.YesOrNo;
@ -84,6 +85,8 @@ public class VlogServiceImpl extends ServiceImpl<VlogMapper, Vlog> implements Vl
@Autowired
private IMemberService memberService;
@Autowired
private RedisOperator redis;
@Transactional(rollbackFor = Exception.class)
@Override
@ -654,8 +657,50 @@ public class VlogServiceImpl extends ServiceImpl<VlogMapper, Vlog> implements Vl
if (StringUtils.isNotBlank(bo.getCityCode())) {
queryWrapper.eq(Vlog::getCityCode, bo.getCityCode());
}
if (StringUtils.isNotBlank(bo.getStatus())) {
queryWrapper.eq(Vlog::getStatus, bo.getStatus());
queryWrapper.eq(Vlog::getStatus, VlogStatusEnum.APPROVED.type);
// 去掉黑名单的视频
if (StringUtils.isNotBlank(userId)) {
String redisKey = REDIS_VIDEO_BLOCK + ":" + userId;
if (redis.keyIsExist(redisKey)) {
List<String> blockVdList = new ArrayList<>();
ObjectMapper objectMapper = new ObjectMapper();
List<String> reports = redis.lrange(redisKey, 0, -1);
for (String report : reports) {
try {
Map<String, Object> reportMap = objectMapper.readValue(report, new TypeReference<Map<String, Object>>() {});
String vlogId = (String) reportMap.get("vlogId");
blockVdList.add(vlogId);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
if (!blockVdList.isEmpty()) {
queryWrapper.notIn(Vlog::getId, blockVdList);
}
}
}
// 去掉黑名单的用户
if (StringUtils.isNotBlank(userId)) {
String redisKey = REDIS_USER_BLOCK + ":" + userId;
if (redis.keyIsExist(redisKey)) {
List<String> blockUserList = new ArrayList<>();
ObjectMapper objectMapper = new ObjectMapper();
List<String> reports = redis.lrange(redisKey, 0, -1);
for (String report : reports) {
try {
Map<String, Object> reportMap = objectMapper.readValue(report, new TypeReference<Map<String, Object>>() {});
String memberId = (String) reportMap.get("MemberId");
blockUserList.add(memberId);
} catch (JsonProcessingException e) {
log.error(e.getMessage());
}
}
if (!blockUserList.isEmpty()) {
queryWrapper.notIn(Vlog::getMemberId, blockUserList);
}
}
}
Page<Vlog> vlogPage = vlogMapper.selectPage(pageParam, queryWrapper);

View File

@ -25,14 +25,14 @@ public class RedisOperator {
// Key简单的key-value操作
//
// /**
// * 判断key是否存在
// * @param key
// * @return
// */
// public boolean keyIsExist(String key) {
// return redisTemplate.hasKey(key);
// }
/**
* 判断key是否存在
* @param key
* @return
*/
public boolean keyIsExist(String key) {
return redisTemplate.hasKey(key);
}
//
// /**
// * 实现命令TTL key以秒为单位返回给定 key的剩余生存时间(TTL, time to live)
@ -283,18 +283,18 @@ public class RedisOperator {
// public long rpush(String key, String value) {
// return redisTemplate.opsForList().rightPush(key, value);
// }
// // List列表
// /**
// * 实现命令LRANGE key start stop返回列表key中指定区间内的元素
// *
// * @param key Redis key
// * @param start 开始索引
// * @param stop 结束索引
// * @return 返回指定区间的元素
// */
// public List<String> lrange(String key, long start, long stop) {
// return redisTemplate.opsForList().range(key, start, stop);
// }
// List列表
/**
* 实现命令LRANGE key start stop返回列表key中指定区间内的元素
*
* @param key Redis key
* @param start 开始索引
* @param stop 结束索引
* @return 返回指定区间的元素
*/
public List<String> lrange(String key, long start, long stop) {
return redisTemplate.opsForList().range(key, start, stop);
}
// /**
// * 实现命令LREM key count value移除列表中与 value 相等的元素
// *

View File

@ -293,10 +293,6 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper,Member> implemen
*/
@Override
public IPage<MemberVO> getMemberPageList(MemberBO query, Page<Member> page) {
// int current = (int) page.getCurrent();
// int size = (int) page.getSize();
// Page<Member> pageParam = new Page<>(current, size);
System.out.println("aaa");
return memberMapper.getMember(page, query);
}
}