Commit c1d54204 authored by muhong's avatar muhong

新增 所有分类的接口

parent dec9de47
package com.wwdz.ch.db.dao;
import com.wwdz.ch.db.domain.Category;
import com.wwdz.ch.db.dto.request.CategorySearchRequestDto;
import java.util.List;
public interface CategoryDao {
......@@ -8,12 +10,12 @@ public interface CategoryDao {
List<Category> queryByLevel(Integer level, Integer offset, Integer limit);
/**
* 通过level查询未删除的分类列表
* 通过条件查询未删除的分类列表
*
* @param level
* @param dto
* @return
*/
List<Category> listByLevel(Integer level);
List<Category> listSelective(CategorySearchRequestDto dto);
List<Category> queryByPid(Integer pid);
......@@ -27,14 +29,6 @@ public interface CategoryDao {
*/
Category findByName(String name);
/**
* 通过名称模糊查询未删除的分类列表
*
* @param name
* @return
*/
List<Category> queryByName(String name);
/**
* 判断是否存在子类目
*
......
package com.wwdz.ch.db.dto.request;
import com.xxdxxs.entity.Entity;
import lombok.Data;
@Data
public class CategorySearchRequestDto extends BaseRequestDto implements Entity {
private Integer level;
private Long pid;
private String name;
}
package com.wwdz.ch.db.impl;
import com.github.pagehelper.PageHelper;
import com.wwdz.ch.db.dto.request.CategorySearchRequestDto;
import com.wwdz.ch.db.mapper.CategoryMapper;
import com.wwdz.ch.db.domain.Category;
import com.wwdz.ch.db.domain.CategoryExample;
import com.wwdz.ch.db.dao.CategoryDao;
import com.xxdxxs.db.component.JdbcHelper;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
......@@ -36,9 +38,14 @@ public class CategoryDaoImpl implements CategoryDao {
return categoryMapper.selectByExample(example);
}
public List<Category> listByLevel(Integer level) {
public List<Category> listSelective(CategorySearchRequestDto dto) {
CategoryExample example = new CategoryExample();
example.or().andLevelEqualTo(level).andIsDeletedEqualTo(false);
CategoryExample.Criteria criteria = example.createCriteria();
JdbcHelper.ifPresent(dto.getLevel(), criteria::andLevelEqualTo);
if (org.apache.commons.lang3.StringUtils.isNotBlank(dto.getName())) {
criteria.andNameLike("%" + dto.getName() + "%");
}
criteria.andIsDeletedEqualTo(false);
return categoryMapper.selectByExample(example);
}
......@@ -58,12 +65,6 @@ public class CategoryDaoImpl implements CategoryDao {
return categoryMapper.selectOneByExample(example);
}
public List<Category> queryByName(String name) {
CategoryExample example = new CategoryExample();
example.or().andNameLike("%" + name + "%").andIsDeletedEqualTo(false);
return categoryMapper.selectByExample(example);
}
@Override
public boolean isExistedChild (Integer id) {
CategoryExample example = new CategoryExample();
......
......@@ -4,6 +4,7 @@ import com.google.common.collect.Lists;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dao.CategoryDao;
import com.wwdz.ch.db.domain.Category;
import com.wwdz.ch.db.dto.request.CategorySearchRequestDto;
import com.wwdz.ch.wx.entity.request.CategoryRequestDto;
import com.wwdz.ch.wx.entity.vo.CategoryResponseVo;
import com.wwdz.ch.wx.service.CategoryService;
......@@ -59,7 +60,9 @@ public class CategoryServiceImpl implements CategoryService {
categoryList.add(category);
int i = category.getLevel() - 1;
while (i > 0) {
categoryList.addAll(categoryDao.listByLevel(i));
CategorySearchRequestDto categorySearchRequestDto = new CategorySearchRequestDto();
categorySearchRequestDto.setLevel(i);
categoryList.addAll(categoryDao.listSelective(categorySearchRequestDto));
i --;
}
List<CategoryResponseVo> responseVoList = categoryList.stream()
......@@ -76,6 +79,23 @@ public class CategoryServiceImpl implements CategoryService {
}
}
@Override
public Result all() {
try {
CategorySearchRequestDto categorySearchRequestDto = new CategorySearchRequestDto();
List<Category> list = categoryDao.listSelective(categorySearchRequestDto);
if (CollectionUtils.isEmpty(list)) {
return Result.success(new ArrayList<>());
}
List<CategoryResponseVo> responseVoList = list.stream()
.map(this::toCategoryResponseVo).collect(Collectors.toList());
return Result.success(convertVoList(responseVoList));
} catch (Exception e) {
logger.error("查询所有分类失败", e);
return Result.failed("查询所有分类失败");
}
}
@Override
public Result findNames(CategoryRequestDto dto) {
if (StringUtils.isBlank(dto.getName())) {
......@@ -83,7 +103,9 @@ public class CategoryServiceImpl implements CategoryService {
}
try {
List<Category> result = new ArrayList<>();
List<Category> list = categoryDao.queryByName(dto.getName());
CategorySearchRequestDto categorySearchRequestDto = new CategorySearchRequestDto();
categorySearchRequestDto.setName(dto.getName());
List<Category> list = categoryDao.listSelective(categorySearchRequestDto);
// 筛选叶子节点
if (CollectionUtils.isNotEmpty(list)) {
for (Category category : list) {
......
......@@ -28,6 +28,13 @@ public interface CategoryService {
*/
Result find(CategoryRequestDto dto);
/**
* 所有分类的树形列表
*
* @return
*/
Result all();
/**
* 按名称搜索模糊匹配返回分类列表
*
......
......@@ -55,6 +55,12 @@ public class WxCategoryController {
return categoryService.find(dto);
}
@ApiOperation(value = "所有分类查询")
@PostMapping(value = "/all")
public Result find() {
return categoryService.all();
}
@ApiOperation(value = "名称模糊联想")
@PostMapping(value = "/findNames")
public Result findNames(@RequestBody CategoryRequestDto dto) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment