| | |
| | | queryWrapper.notIn(ObjectUtil.notEqual("1", itemQuery.getMarketIndex()), "symbol", symbolsNotCotnains); |
| | | } |
| | | |
| | | List<String> symbols = Lists.newArrayList(); |
| | | if (StrUtil.isNotEmpty(symbol)) { |
| | | symbols = Splitter.on(",").splitToList(symbol); |
| | | // 搜索:name / symbol 均支持对 NAME、SYMBOL、en_name 模糊匹配。 |
| | | // 仅当 symbol 为逗号分隔的多代码时,才按精确 symbol 列表筛选。 |
| | | String nameParam = StrUtil.trim(itemQuery.getName()); |
| | | String keywordParam = StrUtil.trim(itemQuery.getKeyword()); |
| | | String symbolParam = StrUtil.trim(symbol); |
| | | List<String> symbolFilter = Lists.newArrayList(); |
| | | String keyword = null; |
| | | if (StrUtil.isNotEmpty(symbolParam) && symbolParam.contains(",")) { |
| | | symbolFilter = Splitter.on(",").trimResults().omitEmptyStrings().splitToList(symbolParam); |
| | | } else if (StrUtil.isNotBlank(keywordParam)) { |
| | | keyword = keywordParam; |
| | | } else if (StrUtil.isNotBlank(nameParam)) { |
| | | keyword = nameParam; |
| | | } else if (StrUtil.isNotBlank(symbolParam)) { |
| | | keyword = symbolParam; |
| | | } |
| | | |
| | | if ("1".equalsIgnoreCase(itemQuery.getBoardType())) { |
| | |
| | | } else if ("2".equalsIgnoreCase(itemQuery.getBoardType())) { |
| | | queryWrapper.ne("category", "global"); |
| | | } |
| | | queryWrapper.in(CollectionUtil.isNotEmpty(symbols), "symbol", symbols); |
| | | String name = itemQuery.getName(); |
| | | queryWrapper.and(StringUtils.isNotEmpty(name), itemWrapper -> itemWrapper.like("name", name).or().like("symbol", name).or().like("en_name", name)); |
| | | queryWrapper.in(CollectionUtil.isNotEmpty(symbolFilter), "symbol", symbolFilter); |
| | | if (StrUtil.isNotBlank(keyword)) { |
| | | final String kw = keyword; |
| | | queryWrapper.and(w -> w.like("name", kw).or().like("symbol", kw).or().like("en_name", kw)); |
| | | } |
| | | queryWrapper.eq(StrUtil.isNotBlank(type), "type", type); |
| | | queryWrapper.like(StrUtil.isNotBlank(category), "category", category); |
| | | // 倒序吗? TODO |