后台系统关联属性增删修改功能

g_develop
ddyd 2 weeks ago
parent b7de4e50d0
commit b2f984c991

@ -5,13 +5,12 @@ import java.util.List;
import java.util.Map;
import com.bookstore.bookmall.product.entity.AttrEntity;
import com.bookstore.bookmall.product.service.AttrService;
import com.bookstore.bookmall.product.service.CategoryService;
import com.bookstore.bookmall.product.vo.AttrGroupRelationVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.bookstore.bookmall.product.entity.AttrGroupEntity;
import com.bookstore.bookmall.product.service.AttrGroupService;
@ -34,6 +33,25 @@ public class AttrGroupController {
private AttrGroupService attrGroupService;
@Autowired
private CategoryService categoryService;
@Autowired
private AttrService attrService;
///product/attrgroup/attr/relation/delete
@PostMapping("/attr/relation/delete")
//自定义数据必须加@RequestBody
private R deleteRelation(@RequestBody AttrGroupRelationVo[] vos) {
attrGroupService.deleteRelation(vos);
return R.ok();
}
///product/attrgroup/{attrgroupId}/attr/relation
@GetMapping("/{attrgroupId}/attr/relation")
private R attrRelation(@PathVariable("attrgroupId") Long attrgroupId) {
List<AttrEntity> entities = attrService.getRelationAttr(attrgroupId);
return R.ok().put("data",entities);
}
/**
*

@ -3,6 +3,9 @@ package com.bookstore.bookmall.product.dao;
import com.bookstore.bookmall.product.entity.AttrAttrgroupRelationEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* &
@ -14,4 +17,6 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface AttrAttrgroupRelationDao extends BaseMapper<AttrAttrgroupRelationEntity> {
//用Param标注
void deleteBatchRelation(@Param("entities") List<AttrAttrgroupRelationEntity> entities);
}

@ -1,6 +1,7 @@
package com.bookstore.bookmall.product.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.bookmall.product.vo.AttrGroupRelationVo;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.bookmall.product.entity.AttrGroupEntity;
@ -18,5 +19,7 @@ public interface AttrGroupService extends IService<AttrGroupEntity> {
PageUtils queryPage(Map<String, Object> params);
PageUtils querypage(Map<String, Object> params, Long catelogId);
void deleteRelation(AttrGroupRelationVo[] vos);
}

@ -6,6 +6,7 @@ import com.bookstore.bookmall.product.vo.AttrVo;
import com.bookstore.common.utils.PageUtils;
import com.bookstore.bookmall.product.entity.AttrEntity;
import java.util.List;
import java.util.Map;
/**
@ -27,6 +28,7 @@ public interface AttrService extends IService<AttrEntity> {
void updateAttr(AttrVo attrVo);
List<AttrEntity> getRelationAttr(Long attrgroupId);
}

@ -1,8 +1,19 @@
package com.bookstore.bookmall.product.service.impl;
import com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.util.internal.StringUtil;
import com.bookstore.bookmall.product.dao.AttrAttrgroupRelationDao;
import com.bookstore.bookmall.product.entity.AttrAttrgroupRelationEntity;
import com.bookstore.bookmall.product.vo.AttrGroupRelationVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -17,6 +28,9 @@ import com.bookstore.bookmall.product.service.AttrGroupService;
@Service("attrGroupService")
public class AttrGroupServiceImpl extends ServiceImpl<AttrGroupDao, AttrGroupEntity> implements AttrGroupService {
@Autowired
AttrAttrgroupRelationDao RelationDao;
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<AttrGroupEntity> page = this.page(
@ -53,4 +67,21 @@ public class AttrGroupServiceImpl extends ServiceImpl<AttrGroupDao, AttrGroupEnt
}
}
@Override
public void deleteRelation(AttrGroupRelationVo[] vos) {
//查找到attrRelationEntities
//修改删除标志
//保存
//RelationDao.delete(new QueryWrapper<AttrAttrgroupRelationEntity>().eq("attr_id"), xx).eq("attr_group_id", xx)
//将Vos转化为传入AttrAttrgroupRelationEntities
List<AttrAttrgroupRelationEntity> entities = Arrays.asList(vos).stream().map((vo) -> {
AttrAttrgroupRelationEntity attrAttrgroupRelationEntity = new AttrAttrgroupRelationEntity();
BeanUtils.copyProperties(vo, attrAttrgroupRelationEntity);
return attrAttrgroupRelationEntity;
}).collect(Collectors.toList());
//批量删除
RelationDao.deleteBatchRelation(entities);// 传入AttrAttrgroupRelationEntitys
}
}

@ -17,6 +17,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -183,6 +184,28 @@ public class AttrServiceImpl extends ServiceImpl<AttrDao, AttrEntity> implements
}
}
/*
* @Description: id
* @return: attrgroupId
* @Author: huishuohuademao
* @date: 2025-08-23 14:09:03
*/
@Override
public List<AttrEntity> getRelationAttr(Long attrgroupId) {
//查找同一组的属性
List<AttrAttrgroupRelationEntity> relationEntities = RelationDao.selectList(
new QueryWrapper<AttrAttrgroupRelationEntity>().eq("attr_group_id", attrgroupId));
//返回属性id
List<Long> attrIds = relationEntities.stream().map((attr)->{
return attr.getAttrId();
}).collect(Collectors.toList());
//查找返回同一组属性
Collection<AttrEntity> attrEntities = this.listByIds(attrIds);
return (List<AttrEntity>)attrEntities;
}
}

@ -0,0 +1,10 @@
package com.bookstore.bookmall.product.vo;
import lombok.Data;
@Data
public class AttrGroupRelationVo {
//"attrId": 1, "attrGroupId": 2
private Long attrId;
private Long attrGroupId;
}

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.AttrAttrgroupRelationDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.AttrAttrgroupRelationEntity" id="attrAttrgroupRelationMap">
<result property="id" column="id"/>
<result property="attrId" column="attr_id"/>
<result property="attrGroupId" column="attr_group_id"/>
<result property="attrSort" column="attr_sort"/>
</resultMap>
<delete id="deleteBatchRelation">
DELETE FROM `pms_attr_attrgroup_relation` WHERE
<foreach collection="entities" item="item" separator=" OR ">
(attr_id=#{item.attrId} AND attr_group_id=#{item.attrGroupId})
</foreach>
</delete>
</mapper>

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.AttrDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.AttrEntity" id="attrMap">
<result property="attrId" column="attr_id"/>
<result property="attrName" column="attr_name"/>
<result property="searchType" column="search_type"/>
<result property="valueType" column="value_type"/>
<result property="icon" column="icon"/>
<result property="valueSelect" column="value_select"/>
<result property="attrType" column="attr_type"/>
<result property="enable" column="enable"/>
<result property="catelogId" column="catelog_id"/>
<result property="showDesc" column="show_desc"/>
</resultMap>
</mapper>

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.AttrGroupDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.AttrGroupEntity" id="attrGroupMap">
<result property="attrGroupId" column="attr_group_id"/>
<result property="attrGroupName" column="attr_group_name"/>
<result property="sort" column="sort"/>
<result property="descript" column="descript"/>
<result property="icon" column="icon"/>
<result property="catelogId" column="catelog_id"/>
</resultMap>
</mapper>

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.BrandDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.BrandEntity" id="brandMap">
<result property="brandId" column="brand_id"/>
<result property="name" column="name"/>
<result property="logo" column="logo"/>
<result property="descript" column="descript"/>
<result property="showStatus" column="show_status"/>
<result property="firstLetter" column="first_letter"/>
<result property="sort" column="sort"/>
</resultMap>
</mapper>

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.CategoryBrandRelationDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.CategoryBrandRelationEntity" id="categoryBrandRelationMap">
<result property="id" column="id"/>
<result property="brandId" column="brand_id"/>
<result property="catelogId" column="catelog_id"/>
<result property="brandName" column="brand_name"/>
<result property="catelogName" column="catelog_name"/>
</resultMap>
</mapper>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.CategoryDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.CategoryEntity" id="categoryMap">
<result property="catId" column="cat_id"/>
<result property="name" column="name"/>
<result property="parentCid" column="parent_cid"/>
<result property="catLevel" column="cat_level"/>
<result property="showStatus" column="show_status"/>
<result property="sort" column="sort"/>
<result property="icon" column="icon"/>
<result property="productUnit" column="product_unit"/>
<result property="productCount" column="product_count"/>
</resultMap>
</mapper>

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.CommentReplayDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.CommentReplayEntity" id="commentReplayMap">
<result property="id" column="id"/>
<result property="commentId" column="comment_id"/>
<result property="replyId" column="reply_id"/>
</resultMap>
</mapper>

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.ProductAttrValueDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.ProductAttrValueEntity" id="productAttrValueMap">
<result property="id" column="id"/>
<result property="spuId" column="spu_id"/>
<result property="attrId" column="attr_id"/>
<result property="attrName" column="attr_name"/>
<result property="attrValue" column="attr_value"/>
<result property="attrSort" column="attr_sort"/>
<result property="quickShow" column="quick_show"/>
</resultMap>
</mapper>

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.SkuImagesDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.SkuImagesEntity" id="skuImagesMap">
<result property="id" column="id"/>
<result property="skuId" column="sku_id"/>
<result property="imgUrl" column="img_url"/>
<result property="imgSort" column="img_sort"/>
<result property="defaultImg" column="default_img"/>
</resultMap>
</mapper>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.SkuInfoDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.SkuInfoEntity" id="skuInfoMap">
<result property="skuId" column="sku_id"/>
<result property="spuId" column="spu_id"/>
<result property="skuName" column="sku_name"/>
<result property="skuDesc" column="sku_desc"/>
<result property="catalogId" column="catalog_id"/>
<result property="brandId" column="brand_id"/>
<result property="skuDefaultImg" column="sku_default_img"/>
<result property="skuTitle" column="sku_title"/>
<result property="skuSubtitle" column="sku_subtitle"/>
<result property="price" column="price"/>
<result property="saleCount" column="sale_count"/>
</resultMap>
</mapper>

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.SkuSaleAttrValueDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.SkuSaleAttrValueEntity" id="skuSaleAttrValueMap">
<result property="id" column="id"/>
<result property="skuId" column="sku_id"/>
<result property="attrId" column="attr_id"/>
<result property="attrName" column="attr_name"/>
<result property="attrValue" column="attr_value"/>
<result property="attrSort" column="attr_sort"/>
</resultMap>
</mapper>

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.SpuCommentDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.SpuCommentEntity" id="spuCommentMap">
<result property="id" column="id"/>
<result property="skuId" column="sku_id"/>
<result property="spuId" column="spu_id"/>
<result property="spuName" column="spu_name"/>
<result property="memberNickName" column="member_nick_name"/>
<result property="star" column="star"/>
<result property="memberIp" column="member_ip"/>
<result property="createTime" column="create_time"/>
<result property="showStatus" column="show_status"/>
<result property="spuAttributes" column="spu_attributes"/>
<result property="likesCount" column="likes_count"/>
<result property="replyCount" column="reply_count"/>
<result property="resources" column="resources"/>
<result property="content" column="content"/>
<result property="memberIcon" column="member_icon"/>
<result property="commentType" column="comment_type"/>
</resultMap>
</mapper>

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.SpuImagesDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.SpuImagesEntity" id="spuImagesMap">
<result property="id" column="id"/>
<result property="spuId" column="spu_id"/>
<result property="imgName" column="img_name"/>
<result property="imgUrl" column="img_url"/>
<result property="imgSort" column="img_sort"/>
<result property="defaultImg" column="default_img"/>
</resultMap>
</mapper>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.SpuInfoDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.SpuInfoEntity" id="spuInfoMap">
<result property="id" column="id"/>
<result property="spuName" column="spu_name"/>
<result property="spuDescription" column="spu_description"/>
<result property="catalogId" column="catalog_id"/>
<result property="brandId" column="brand_id"/>
<result property="weight" column="weight"/>
<result property="publishStatus" column="publish_status"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.bookmall.product.dao.SpuInfoDescDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.bookstore.bookmall.product.entity.SpuInfoDescEntity" id="spuInfoDescMap">
<result property="spuId" column="spu_id"/>
<result property="decript" column="decript"/>
</resultMap>
</mapper>
Loading…
Cancel
Save