✨ 更新品牌时同时更新品牌分类关系表
This commit is contained in:
parent
14d77a07af
commit
8a7844fcd8
|
@ -55,8 +55,8 @@ public class CategoryController {
|
||||||
|
|
||||||
@Operation(summary = "添加商品三级分类", description = "添加商品三级分类")
|
@Operation(summary = "添加商品三级分类", description = "添加商品三级分类")
|
||||||
@PostMapping()
|
@PostMapping()
|
||||||
public Result<String> addCategory(@Valid @RequestBody CategoryDto dto) {
|
public Result<String> saveCategory(@Valid @RequestBody CategoryDto dto) {
|
||||||
categoryService.addCategory(dto);
|
categoryService.saveCategory(dto);
|
||||||
return Result.success(ResultCodeEnum.ADD_SUCCESS);
|
return Result.success(ResultCodeEnum.ADD_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.mall.product.domain.dto;
|
package com.mall.product.domain.dto;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
|
@ -14,6 +16,7 @@ import lombok.NoArgsConstructor;
|
||||||
public class CategoryDto {
|
public class CategoryDto {
|
||||||
|
|
||||||
@Schema(name = "catId", title = "分类id")
|
@Schema(name = "catId", title = "分类id")
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
private Long catId;
|
private Long catId;
|
||||||
|
|
||||||
@Schema(name = "name", title = "分类名称")
|
@Schema(name = "name", title = "分类名称")
|
||||||
|
|
|
@ -29,4 +29,11 @@ public interface CategoryBrandRelationMapper extends BaseMapper<CategoryBrandRel
|
||||||
*/
|
*/
|
||||||
IPage<CategoryBrandRelationVo> selectListByPage(@Param("page") Page<CategoryBrandRelationEntity> pageParams, @Param("dto") CategoryBrandRelationDto dto);
|
IPage<CategoryBrandRelationVo> selectListByPage(@Param("page") Page<CategoryBrandRelationEntity> pageParams, @Param("dto") CategoryBrandRelationDto dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据品牌id更新 品牌分类关系表
|
||||||
|
* 根据分类id跟新,更新分类时同时更新品牌和分类关系表
|
||||||
|
*
|
||||||
|
* @param dto 品牌分类关联的DTO对象
|
||||||
|
*/
|
||||||
|
void updateByBrandIdAndCatId(CategoryBrandRelationDto dto);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,8 @@ public interface BrandService extends IService<BrandEntity> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新品牌
|
* 更新品牌
|
||||||
|
* 先更新自己的品牌数据
|
||||||
|
* 之后更新冗余表中的数据
|
||||||
*
|
*
|
||||||
* @param dto {@link BrandDto} 更新表单
|
* @param dto {@link BrandDto} 更新表单
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -63,4 +63,5 @@ public interface CategoryBrandRelationService extends IService<CategoryBrandRela
|
||||||
* @return 品牌关联所有分类列表
|
* @return 品牌关联所有分类列表
|
||||||
*/
|
*/
|
||||||
List<CategoryBrandRelationVo> getCategoryList(Long brandId);
|
List<CategoryBrandRelationVo> getCategoryList(Long brandId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,10 +28,11 @@ public interface CategoryService extends IService<CategoryEntity> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加商品三级分类
|
* 添加商品三级分类
|
||||||
|
* 添加分类需要同时更新:品牌和分类关联关系
|
||||||
*
|
*
|
||||||
* @param dto {@link CategoryDto} 添加表单
|
* @param dto {@link CategoryDto} 添加表单
|
||||||
*/
|
*/
|
||||||
void addCategory(CategoryDto dto);
|
void saveCategory(CategoryDto dto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新商品三级分类
|
* 更新商品三级分类
|
||||||
|
|
|
@ -5,10 +5,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.mall.common.domain.vo.result.PageResult;
|
import com.mall.common.domain.vo.result.PageResult;
|
||||||
import com.mall.product.domain.dto.BrandDto;
|
import com.mall.product.domain.dto.BrandDto;
|
||||||
|
import com.mall.product.domain.dto.CategoryBrandRelationDto;
|
||||||
import com.mall.product.domain.entity.BrandEntity;
|
import com.mall.product.domain.entity.BrandEntity;
|
||||||
import com.mall.product.domain.vo.BrandVo;
|
import com.mall.product.domain.vo.BrandVo;
|
||||||
import com.mall.product.mapper.BrandMapper;
|
import com.mall.product.mapper.BrandMapper;
|
||||||
|
import com.mall.product.mapper.CategoryBrandRelationMapper;
|
||||||
import com.mall.product.service.BrandService;
|
import com.mall.product.service.BrandService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
@ -25,8 +29,11 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Transactional
|
@Transactional
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class BrandServiceImpl extends ServiceImpl<BrandMapper, BrandEntity> implements BrandService {
|
public class BrandServiceImpl extends ServiceImpl<BrandMapper, BrandEntity> implements BrandService {
|
||||||
|
|
||||||
|
private final CategoryBrandRelationMapper categoryBrandRelationMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* * 品牌 服务实现类
|
* * 品牌 服务实现类
|
||||||
*
|
*
|
||||||
|
@ -60,14 +67,27 @@ public class BrandServiceImpl extends ServiceImpl<BrandMapper, BrandEntity> impl
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新品牌
|
* 更新品牌
|
||||||
|
* 先更新自己的品牌数据
|
||||||
|
* 之后更新冗余表中的数据
|
||||||
*
|
*
|
||||||
* @param dto 品牌更新
|
* @param dto {@link BrandDto} 更新表单
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void updateBrand(BrandDto dto) {
|
public void updateBrand(BrandDto dto) {
|
||||||
BrandEntity brandEntity = new BrandEntity();
|
BrandEntity brandEntity = new BrandEntity();
|
||||||
BeanUtils.copyProperties(dto, brandEntity);
|
BeanUtils.copyProperties(dto, brandEntity);
|
||||||
updateById(brandEntity);
|
updateById(brandEntity);
|
||||||
|
|
||||||
|
// 品牌名不为空保存品牌名
|
||||||
|
String name = brandEntity.getName();
|
||||||
|
if (StringUtils.isNotBlank(name)) {
|
||||||
|
// 根据品牌id更新 品牌分类关系表
|
||||||
|
CategoryBrandRelationDto categoryBrandRelationDto = CategoryBrandRelationDto.builder()
|
||||||
|
.brandId(dto.getBrandId())
|
||||||
|
.brandName(name)
|
||||||
|
.build();
|
||||||
|
categoryBrandRelationMapper.updateByBrandIdAndCatId(categoryBrandRelationDto);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -4,13 +4,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.mall.common.domain.vo.result.PageResult;
|
import com.mall.common.domain.vo.result.PageResult;
|
||||||
|
import com.mall.product.domain.dto.CategoryBrandRelationDto;
|
||||||
import com.mall.product.domain.dto.CategoryDto;
|
import com.mall.product.domain.dto.CategoryDto;
|
||||||
import com.mall.product.domain.entity.CategoryEntity;
|
import com.mall.product.domain.entity.CategoryEntity;
|
||||||
import com.mall.product.domain.vo.CategoryVo;
|
import com.mall.product.domain.vo.CategoryVo;
|
||||||
|
import com.mall.product.mapper.CategoryBrandRelationMapper;
|
||||||
import com.mall.product.mapper.CategoryMapper;
|
import com.mall.product.mapper.CategoryMapper;
|
||||||
import com.mall.product.service.CategoryService;
|
import com.mall.product.service.CategoryService;
|
||||||
import com.mall.product.service.ext.CategoryServiceImplExt;
|
import com.mall.product.service.ext.CategoryServiceImplExt;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
@ -36,6 +39,7 @@ import static com.mall.product.service.ext.CategoryServiceImplExt.getCategoryTre
|
||||||
public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, CategoryEntity> implements CategoryService {
|
public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, CategoryEntity> implements CategoryService {
|
||||||
|
|
||||||
private final CategoryServiceImplExt categoryServiceImplExt;
|
private final CategoryServiceImplExt categoryServiceImplExt;
|
||||||
|
private final CategoryBrandRelationMapper categoryBrandRelationMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* * 商品三级分类 服务实现类
|
* * 商品三级分类 服务实现类
|
||||||
|
@ -62,7 +66,7 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, CategoryEnt
|
||||||
* @param dto 商品三级分类添加
|
* @param dto 商品三级分类添加
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void addCategory(CategoryDto dto) {
|
public void saveCategory(CategoryDto dto) {
|
||||||
CategoryEntity categoryEntity = new CategoryEntity();
|
CategoryEntity categoryEntity = new CategoryEntity();
|
||||||
BeanUtils.copyProperties(dto, categoryEntity);
|
BeanUtils.copyProperties(dto, categoryEntity);
|
||||||
save(categoryEntity);
|
save(categoryEntity);
|
||||||
|
@ -78,6 +82,15 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, CategoryEnt
|
||||||
CategoryEntity categoryEntity = new CategoryEntity();
|
CategoryEntity categoryEntity = new CategoryEntity();
|
||||||
BeanUtils.copyProperties(dto, categoryEntity);
|
BeanUtils.copyProperties(dto, categoryEntity);
|
||||||
updateById(categoryEntity);
|
updateById(categoryEntity);
|
||||||
|
|
||||||
|
// 根据分类id跟新,更新分类时同时更新品牌和分类关系表
|
||||||
|
String name = categoryEntity.getName();
|
||||||
|
if (StringUtils.isNotBlank(name)) {
|
||||||
|
CategoryBrandRelationDto categoryBrandRelationDto = CategoryBrandRelationDto.builder()
|
||||||
|
.catelogId(dto.getCatId())
|
||||||
|
.catelogName(name).build();
|
||||||
|
categoryBrandRelationMapper.updateByBrandIdAndCatId(categoryBrandRelationDto);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -16,6 +16,30 @@
|
||||||
id,brand_id,catelog_id,brand_name,catelog_name
|
id,brand_id,catelog_id,brand_name,catelog_name
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
<update id="updateByBrandIdAndCatId">
|
||||||
|
update pms_category_brand_relation
|
||||||
|
<set>
|
||||||
|
<if test="name != null and brandId != null">
|
||||||
|
brand_name = #{name},
|
||||||
|
</if>
|
||||||
|
<if test="name != null and catId != null">
|
||||||
|
catelog_name = #{name},
|
||||||
|
</if>
|
||||||
|
</set>
|
||||||
|
where
|
||||||
|
<choose>
|
||||||
|
<when test="brandId != null">
|
||||||
|
brand_id = #{brandId}
|
||||||
|
</when>
|
||||||
|
<when test="catId != null">
|
||||||
|
catelog_id = #{catId}
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
1=0 <!-- 如果没有提供任何ID条件,则不更新任何记录 -->
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
</update>
|
||||||
|
|
||||||
<!-- 分页查询品牌分类关联内容 -->
|
<!-- 分页查询品牌分类关联内容 -->
|
||||||
<select id="selectListByPage" resultType="com.mall.product.domain.vo.CategoryBrandRelationVo">
|
<select id="selectListByPage" resultType="com.mall.product.domain.vo.CategoryBrandRelationVo">
|
||||||
select
|
select
|
||||||
|
|
Loading…
Reference in New Issue