第二十一章第一节:规格参数添加功能


规则参数保存请求:/product/attr/save

请求参数:
{
	attrGroupId: 7,
	attrName: "包装清单",
	attrType: 1,
	catelogId: 225,
	enable: 1,
	icon: "xx",
	searchType: 1,
	showDesc: 1,
	t: 1623835934378,
	valueSelect: "手机;说明书;充电器",
	valueType: 1
}

响应数据示例:
{
	"msg": "success",
	"code": 0
}

操作数据库表:
pms_attr(保存基本属性)
pms_attr_attrgroup_relation(保存规格参数和属性分组的关联关系)

1、创建前端页面传递参数的vo对象

com.applesnt.onlinemall.product.vo.AttrVo

package com.applesnt.onlinemall.product.vo;

import lombok.Data;

/*
* 规格参数:前端请求参数的数据对象
* */
@Data
public class AttrVo {
    /**
     * 属性id
     */
    private Long attrId;
    /**
     * 属性名
     */
    private String attrName;
    /**
     * 是否需要检索[0-不需要,1-需要]
     */
    private Integer searchType;
    /**
     * 属性图标
     */
    private String icon;
    /**
     * 可选值列表[用逗号分隔]
     */
    private String valueSelect;
    /**
     * 属性类型[0-销售属性,1-基本属性,2-既是销售属性又是基本属性]
     */
    private Integer attrType;
    /**
     * 启用状态[0 - 禁用,1 - 启用]
     */
    private Long enable;
    /**
     * 所属分类
     */
    private Long catelogId;
    /**
     * 快速展示【是否展示在介绍上;0-否 1-是】,在sku中仍然可以调整
     */
    private Integer showDesc;

    /*属性分组id*/
    private Long attrGroupId;
}

2、定义规格参数保存接口

com.applesnt.onlinemall.product.service.AttrService

    void saveAttr(AttrVo attr);

3、定义规格参数保存接口实现

    /*注入关联关系dao*/
    @Autowired
    AttrAttrgroupRelationDao relationDao;

    @Transactional/*事务注解*/
    @Override
    public void saveAttr(AttrVo attr) {
        /*创建数据库操作实体对象*/
        AttrEntity attrEntity = new AttrEntity();
        /*对象之间复制属性值*/
        BeanUtils.copyProperties(attr,attrEntity);
        /*保存*/
        this.baseMapper.insert(attrEntity);

        /*保存关联关系,同时把属性分组和规格参数的关系保存到pms_attr_attrgroup_relation中*/
        AttrAttrgroupRelationEntity relationEntity = new AttrAttrgroupRelationEntity();
        relationEntity.setAttrGroupId(attr.getAttrGroupId());
        relationEntity.setAttrId(attrEntity.getAttrId());

        relationDao.insert(relationEntity);
    }

4、controller调用

com.applesnt.onlinemall.product.controller.AttrController

    /**
     * 规则属性保存,使用AttrVo接收前端传递过来的参数
     */
    @RequestMapping("/save")
    public R save(@RequestBody AttrVo attr){
		attrService.saveAttr(attr);

        return R.ok();
    }
posted @ 2021-06-16 17:43  努力的校长  阅读(43)  评论(0)    收藏  举报