|  |  |  | 
|---|
|  |  |  | import com.doumee.core.utils.Utils; | 
|---|
|  |  |  | import com.doumee.dao.business.CategoryMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.model.Category; | 
|---|
|  |  |  | import com.doumee.dao.business.model.Member; | 
|---|
|  |  |  | import com.doumee.dao.business.vo.CompanyTree; | 
|---|
|  |  |  | import com.doumee.dao.web.vo.CategoryVO; | 
|---|
|  |  |  | import com.doumee.dao.web.vo.CategoryVOTree; | 
|---|
|  |  |  | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Objects; | 
|---|
|  |  |  | import java.util.UUID; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 分类信息表Service实现 | 
|---|
|  |  |  | 
|---|
|  |  |  | if(parent == null || Constants.equalsInteger(parent.getIsdeleted(),Constants.ONE)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "对不起,父级信息不存在~"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(Constants.equalsInteger(parent.getType(),Constants.FOUR) && parent.getParentId()!=null){ | 
|---|
|  |  |  | //如果是二级CDA主题,自己为观察项 | 
|---|
|  |  |  | category.setType(Constants.SIX); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | idPath = parent.getIdPath(); | 
|---|
|  |  |  | category.setIdPath(parent.getIdPath()+category.getId()+"/"); | 
|---|
|  |  |  | category.setNamePath(parent.getNamePath()+"/"+category.getName()); | 
|---|
|  |  |  | 
|---|
|  |  |  | if( category.getId() == null){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(Constants.equalsInteger(category.getId(),category.getParentId())){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,父级不能设置为自身!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | category.setType(null);//类型不支持修改 | 
|---|
|  |  |  | Category model = categoryMapper.selectById(category.getId()); | 
|---|
|  |  |  | if(model ==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)) { | 
|---|
|  |  |  | 
|---|
|  |  |  | .eq(Category::getIsdeleted,Constants.ZERO)) >0){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "对不起,名称不能重复~"); | 
|---|
|  |  |  | }*/ | 
|---|
|  |  |  | String oldIdPath = model.getIdPath(); | 
|---|
|  |  |  | String oldNamePath = model.getNamePath(); | 
|---|
|  |  |  | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  | category.setIdPath(category.getId()+"/");//名称路径 | 
|---|
|  |  |  | category.setNamePath(category.getName());//名称路径 | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | category.setEditDate(new Date()); | 
|---|
|  |  |  | category.setEditor(user.getId()); | 
|---|
|  |  |  | categoryMapper.updateById(category); | 
|---|
|  |  |  | categoryMapper.update(null,new UpdateWrapper<Category>().lambda() | 
|---|
|  |  |  | .eq(Category::getId,category.getId()) | 
|---|
|  |  |  | .set(Category::getEditDate,category.getEditDate()) | 
|---|
|  |  |  | .set(Category::getEditor,category.getEditor()) | 
|---|
|  |  |  | .set(Category::getName,category.getName()) | 
|---|
|  |  |  | .set(Category::getParentId,category.getParentId()) | 
|---|
|  |  |  | .set(Category::getSortnum,category.getSortnum()) | 
|---|
|  |  |  | .set(Category::getRemark,category.getRemark()) | 
|---|
|  |  |  | .set(Category::getNamePath,category.getNamePath()) | 
|---|
|  |  |  | .set(Category::getIdPath,category.getId()) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //修改全部下级的编码和名称路径 | 
|---|
|  |  |  | categoryMapper.update(null,new UpdateWrapper<Category>().lambda() | 
|---|
|  |  |  | .likeRight(Category::getIdPath,oldIdPath) | 
|---|
|  |  |  | .set(Category::getEditDate,category.getEditDate()) | 
|---|
|  |  |  | .set(Category::getEditor,category.getEditor()) | 
|---|
|  |  |  | .setSql("id_path=replace(id_path,'"+oldIdPath+"','"+category.getIdParentPath()+"')") | 
|---|
|  |  |  | .setSql("name_path=replace(name_path,'"+oldNamePath+"/','"+category.getName()+"/')") | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<Category> findList(Category category) { | 
|---|
|  |  |  | category.setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | MPJLambdaWrapper<Category> queryWrapper = new MPJLambdaWrapper<>(); | 
|---|
|  |  |  | queryWrapper.selectAll(Category.class); | 
|---|
|  |  |  | queryWrapper.selectAs(SystemUser::getUsername,Category::getEditorName); | 
|---|
|  |  |  | 
|---|
|  |  |  | .eq(category.getType() != null, Category::getType, category.getType()) | 
|---|
|  |  |  | .eq(category.getParentId() != null, Category::getParentId, category.getParentId()) | 
|---|
|  |  |  | .eq(category.getNamePath() != null, Category::getNamePath, category.getNamePath()) | 
|---|
|  |  |  | .isNull(category.getIsRoot() != null &&category.getIsRoot().equals(Constants.ONE), Category::getParentId) | 
|---|
|  |  |  | .eq(category.getIdPath() != null, Category::getIdPath, category.getIdPath()) | 
|---|
|  |  |  | .orderByAsc( Category::getSortnum); | 
|---|
|  |  |  | return categoryMapper.selectJoinList(Category.class,queryWrapper); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<CategoryVO>  getCategoryVOTree(Integer categoryType){ | 
|---|
|  |  |  | public List<CategoryVO>  getCategoryVOTree(String categoryType,Integer categoryId){ | 
|---|
|  |  |  | List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda() | 
|---|
|  |  |  | .eq(Category::getIsdeleted, Constants.ZERO) | 
|---|
|  |  |  | .eq(Objects.nonNull(categoryType),Category::getType,categoryType) | 
|---|
|  |  |  | .in(Objects.nonNull(categoryType),Category::getType,categoryType.split(",")) | 
|---|
|  |  |  | .apply(Objects.nonNull(categoryId)," find_in_set("+categoryId+", REPLACE(ID_PATH,'/',',')  )  ") | 
|---|
|  |  |  | .orderByAsc(Category::getSortnum,Category::getId) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | List<CategoryVO>  categoryVOList = new ArrayList<>(); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<CategoryVO>  getCategoryVOList(Integer categoryType){ | 
|---|
|  |  |  | public List<CategoryVO>  getCategoryVOForGCXTree(Integer categoryId){ | 
|---|
|  |  |  | List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda() | 
|---|
|  |  |  | .eq(Category::getIsdeleted, Constants.ZERO) | 
|---|
|  |  |  | .eq(Category::getType, Constants.FOUR) | 
|---|
|  |  |  | .and( ms->ms.eq(Category::getId,categoryId).or().eq(Category::getParentId,categoryId)) | 
|---|
|  |  |  | .orderByAsc(Category::getSortnum,Category::getId) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(categoryList)){ | 
|---|
|  |  |  | categoryList.addAll( | 
|---|
|  |  |  | categoryMapper.selectList(new QueryWrapper<Category>().lambda() | 
|---|
|  |  |  | .eq(Category::getIsdeleted, Constants.ZERO) | 
|---|
|  |  |  | .eq(Category::getType, Constants.SIX) | 
|---|
|  |  |  | .in(Category::getParentId,categoryList.stream().map(i->i.getId()).collect(Collectors.toList())) | 
|---|
|  |  |  | .orderByAsc(Category::getSortnum,Category::getId)) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<CategoryVO>  categoryVOList = new ArrayList<>(); | 
|---|
|  |  |  | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(categoryList)){ | 
|---|
|  |  |  | for (Category category:categoryList) { | 
|---|
|  |  |  | CategoryVO categoryVO = new CategoryVO(); | 
|---|
|  |  |  | categoryVO.setId(category.getId()); | 
|---|
|  |  |  | categoryVO.setName(category.getName()); | 
|---|
|  |  |  | categoryVO.setParentId(category.getParentId()); | 
|---|
|  |  |  | categoryVOList.add(categoryVO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | CategoryVOTree treeBuild = new CategoryVOTree(categoryVOList); | 
|---|
|  |  |  | categoryVOList = treeBuild.buildTree(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return categoryVOList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<CategoryVO>  getCategoryVOList(Integer categoryType,Integer isRoot){ | 
|---|
|  |  |  | List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda() | 
|---|
|  |  |  | .eq(Category::getIsdeleted, Constants.ZERO) | 
|---|
|  |  |  | .eq(Objects.nonNull(categoryType),Category::getType,categoryType) | 
|---|
|  |  |  | .isNull(Constants.equalsInteger(isRoot,Constants.ONE),Category::getParentId) | 
|---|
|  |  |  | .orderByAsc(Category::getSortnum,Category::getId) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | List<CategoryVO>  categoryVOList = new ArrayList<>(); | 
|---|