本文共 2348 字,大约阅读时间需要 7 分钟。
在属性分组中,新增关联功能旨在帮助管理员高效管理属性与分组的关系。系统支持用户根据需要添加新的关联,具体功能如下:
在属性分组管理中,系统提供了获取未关联属性的功能,主要流程如下:
新增接口 attrNoRelation,功能描述如下:
@GetMapping("/{attrgroupId}/noattr/relation")public R attrNoRelation(@PathVariable Long attrgroupId, @RequestParam Map params) { PageUtils page = attrService.getNoRelationAttr(params, attrgroupId); return R.ok().put("page", page);} 新增服务方法 getNoRelationAttr,具体功能描述如下:
PageUtils getNoRelationAttr(Mapparams, Long attrgroupId);
实现 getNoRelationAttr 方法,具体实现逻辑如下:
@Overridepublic PageUtils getNoRelationAttr(Mapparams, Long attrgroupId) { // 获取当前分组信息 AttrGroupEntity attrGroupEntity = attrGroupDao.selectById(attrgroupId); Long catelogId = attrGroupEntity.getCatelogId(); // 获取当前分类下的所有分组 List attrGroupEntities = attrGroupDao.selectList(new QueryWrapper () .eq("catelog_id", catelogId)); // 收集目标分组的attrGroup_id List collect = attrGroupEntities.stream() .map(item -> item.getAttrGroupId()) .collect(Collectors.toList()); // 获取目标分组关联的属性 List attrgroupRelationEntities = relationDao.selectList(new QueryWrapper () .in("attr_group_id", collect)); // 提取关联属性ID List attrIds = attrgroupRelationEntities.stream() .map(item -> item.getAttrId()) .collect(Collectors.toList()); // 构建查询条件 QueryWrapper wrapper = new QueryWrapper () .eq("catelog_id", catelogId) .eq("attr_type", ProductConstant.AttrEnum.ATTR_TYPE_BASE.getCode()); // 排除已关联的属性 if (attrIds != null && !attrIds.isEmpty()) { wrapper.notIn("attr_id", attrIds); } // 支持关键词搜索 String key = (String) params.get("key"); if (!StringUtils.isEmpty(key)) { wrapper.and((w) -> { w.eq("attr_id", key).or().like("attr_name", key); return w; }); } // 执行查询并返回结果 IPage page = this.page( new Query () .getPage(params), wrapper ); PageUtils pageUtils = new PageUtils(page); return pageUtils;}
通过以上功能,管理员可以高效管理属性分组关联关系,确保分类属性的准确性和完整性。
转载地址:http://sxjp.baihongyu.com/