wzj-boot/ruoyi-admin/src/main/java/org/dromara/app/AppSearchController.java
2025-08-30 10:06:57 +08:00

68 lines
2.9 KiB
Java

package org.dromara.app;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wzj.soopin.content.domain.bo.SearchBO;
import com.wzj.soopin.content.enums.SearchTypeEnum;
import com.wzj.soopin.content.service.VlogService;
import com.wzj.soopin.goods.domain.bo.ProductBo;
import com.wzj.soopin.goods.service.ProductService;
import com.wzj.soopin.member.domain.bo.MemberBO;
import com.wzj.soopin.member.service.IMemberService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.satoken.utils.LoginHelper;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Objects;
@Slf4j
@RestController
@RequestMapping("/app/common/search")
@Tag(name = "公共检索")
@RequiredArgsConstructor
public class AppSearchController {
private final ProductService productService;
private final IMemberService memberService;
private final VlogService vlogService;
@Tag(name = "视频、商品和用户检索")
@PostMapping("")
public R<IPage<?>> searchApp(@RequestBody SearchBO searchBO, @RequestBody Page page) {
try {
LoginUser loginUser = LoginHelper.getLoginUser();
if (loginUser == null) {
throw new ServiceException("用户未登录");
}
searchBO.setUserId(String.valueOf(loginUser.getUserId()));
} catch (Exception e) {
log.error("用户没登陆11", e);
}
IPage<?> pages = null;
// 视频检索信息
if (Objects.nonNull(searchBO) && Objects.nonNull(searchBO.getType()) && (SearchTypeEnum.VIDEO.type.intValue() == searchBO.getType().intValue())) {
pages = vlogService.getIndexSearchVlogList(searchBO, page);
// 商品检索信息
} else if (Objects.nonNull(searchBO) && Objects.nonNull(searchBO.getType()) && (SearchTypeEnum.PRODUCT.type.intValue() == searchBO.getType().intValue())) {
ProductBo productBo = new ProductBo();
productBo.setNameLike(searchBO.getTitle());
pages = productService.getProductPageList(productBo, page);
// 用户检索信息
} else if (Objects.nonNull(searchBO) && Objects.nonNull(searchBO.getType()) && (SearchTypeEnum.MEMBER.type.intValue() == searchBO.getType().intValue())) {
MemberBO memberBO = new MemberBO();
memberBO.setNickname(searchBO.getTitle());
pages = memberService.getMemberPageList(memberBO, page);
}
return R.ok(pages);
}
}