|
|
@@ -21,7 +21,8 @@ import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
- * 二手商品服务实现类
|
|
|
+ * 二手商品分类服务实现类
|
|
|
+ * 实现商品分类的查询、新增、更新和构建树形结构等核心业务逻辑
|
|
|
*/
|
|
|
@Slf4j
|
|
|
@Service
|
|
|
@@ -30,10 +31,14 @@ public class SecondGoodsCategoryServiceImpl extends ServiceImpl<SecondGoodsCateg
|
|
|
|
|
|
@Autowired
|
|
|
private SecondGoodsCategoryMapper mapper;
|
|
|
+
|
|
|
/**
|
|
|
- * 保存商品为草稿状态
|
|
|
- * @param parentId 商品实体
|
|
|
- * @return 是否成功保存
|
|
|
+ * 根据父级ID和状态查询商品分类列表
|
|
|
+ *
|
|
|
+ * @param parentId 父级分类ID,可为空,为空时查询顶级分类
|
|
|
+ * @param categoryState 分类状态,可为空,1表示启用,0表示禁用
|
|
|
+ * @return 商品分类列表
|
|
|
+ * @throws Exception 查询过程中可能发生的异常
|
|
|
*/
|
|
|
@Override
|
|
|
public List<SecondGoodsCategory> querySecondGoodsByParentId(Integer parentId, Integer categoryState) throws Exception {
|
|
|
@@ -45,6 +50,14 @@ public class SecondGoodsCategoryServiceImpl extends ServiceImpl<SecondGoodsCateg
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 新增商品分类
|
|
|
+ * 会自动计算分类排序值,确保在同一父级下排序值递增
|
|
|
+ *
|
|
|
+ * @param category 商品分类对象
|
|
|
+ * @return 受影响的行数,大于0表示插入成功
|
|
|
+ * @throws Exception 插入过程中可能发生的异常
|
|
|
+ */
|
|
|
@Override
|
|
|
public Integer insertSecondGoodsCategory(SecondGoodsCategory category) throws Exception {
|
|
|
try {
|
|
|
@@ -65,6 +78,14 @@ public class SecondGoodsCategoryServiceImpl extends ServiceImpl<SecondGoodsCateg
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新商品分类
|
|
|
+ * 可以更新分类名称、URL、父级ID、排序、状态等字段,并记录更新人信息
|
|
|
+ *
|
|
|
+ * @param category 商品分类对象
|
|
|
+ * @return 受影响的行数,大于0表示更新成功
|
|
|
+ * @throws Exception 更新过程中可能发生的异常
|
|
|
+ */
|
|
|
public Integer updateSecondGoodsCategory(SecondGoodsCategory category) throws Exception {
|
|
|
try {
|
|
|
JSONObject data = JwtUtil.getCurrentUserInfo();
|
|
|
@@ -106,6 +127,13 @@ public class SecondGoodsCategoryServiceImpl extends ServiceImpl<SecondGoodsCateg
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询商品分类树结构
|
|
|
+ * 将所有商品分类构建成树形结构,便于前端展示
|
|
|
+ *
|
|
|
+ * @return 商品分类树结构列表
|
|
|
+ * @throws Exception 查询过程中可能发生的异常
|
|
|
+ */
|
|
|
@Override
|
|
|
public List<SecondGoodsCategory> querySecondGoodsTree() throws Exception {
|
|
|
try {
|
|
|
@@ -116,6 +144,12 @@ public class SecondGoodsCategoryServiceImpl extends ServiceImpl<SecondGoodsCateg
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 构建商品分类树形结构
|
|
|
+ *
|
|
|
+ * @param nodes 所有商品分类节点列表
|
|
|
+ * @return 根节点列表,每个根节点包含其子节点
|
|
|
+ */
|
|
|
// 2. 构建树的核心逻辑
|
|
|
public List<SecondGoodsCategory> buildTree(List<SecondGoodsCategory> nodes) {
|
|
|
Map<Integer, SecondGoodsCategory> nodeMap = nodes.stream()
|
|
|
@@ -136,6 +170,12 @@ public class SecondGoodsCategoryServiceImpl extends ServiceImpl<SecondGoodsCateg
|
|
|
return roots;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 递归添加子节点
|
|
|
+ *
|
|
|
+ * @param parent 父节点
|
|
|
+ * @param nodeMap 节点映射表
|
|
|
+ */
|
|
|
private void addChildrenRecursive(SecondGoodsCategory parent, Map<Integer, SecondGoodsCategory> nodeMap) {
|
|
|
List<SecondGoodsCategory> children = nodeMap.values().stream()
|
|
|
.filter(child -> child.getParentId().equals(parent.getId()))
|