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

View File

@ -39,10 +39,4 @@ public class SearchBO {
@Schema(description = "城市编码") @Schema(description = "城市编码")
private String cityCode; 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.Vlog;
import com.wzj.soopin.content.domain.po.Users; import com.wzj.soopin.content.domain.po.Users;
import com.wzj.soopin.content.domain.vo.VlogerVO; 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.member.domain.po.Member;
import com.wzj.soopin.content.domain.vo.IndexVlogVO; import com.wzj.soopin.content.domain.vo.IndexVlogVO;
import com.wzj.soopin.content.enums.YesOrNo; import com.wzj.soopin.content.enums.YesOrNo;
@ -84,6 +85,8 @@ public class VlogServiceImpl extends ServiceImpl<VlogMapper, Vlog> implements Vl
@Autowired @Autowired
private IMemberService memberService; private IMemberService memberService;
@Autowired
private RedisOperator redis;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
@ -654,8 +657,50 @@ public class VlogServiceImpl extends ServiceImpl<VlogMapper, Vlog> implements Vl
if (StringUtils.isNotBlank(bo.getCityCode())) { if (StringUtils.isNotBlank(bo.getCityCode())) {
queryWrapper.eq(Vlog::getCityCode, 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); Page<Vlog> vlogPage = vlogMapper.selectPage(pageParam, queryWrapper);

View File

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

View File

@ -293,10 +293,6 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper,Member> implemen
*/ */
@Override @Override
public IPage<MemberVO> getMemberPageList(MemberBO query, Page<Member> page) { 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); return memberMapper.getMember(page, query);
} }
} }