mybatis——plus 三表添加

pojo

package com.offcn.sellergoods.group;

import com.offcn.sellergoods.pojo.Goods;
import com.offcn.sellergoods.pojo.GoodsDesc;
import com.offcn.sellergoods.pojo.Item;

import java.io.Serializable;
import java.util.List;

/**
 * @Auther: zzh
 * @Date: 2022/7/28 10:39
 * @Description:     商品复合实体类
 */
public class GoodsEntity implements Serializable {


    private Goods goods;     //SPU信息
    private GoodsDesc goodsDesc;      //扩展信息
    private List<Item> itemList;      //SKU信息集合

    public Goods getGoods() {
        return goods;
    }

    public void setGoods(Goods goods) {
        this.goods = goods;
    }

    public GoodsDesc getGoodsDesc() {
        return goodsDesc;
    }

    public void setGoodsDesc(GoodsDesc goodsDesc) {
        this.goodsDesc = goodsDesc;
    }

    public List<Item> getItemList() {
        return itemList;
    }

    public void setItemList(List<Item> itemList) {
        this.itemList = itemList;
    }
}

controller

 /***
     * 新增Goods数据
     * @param goods
     * @return
     */
    @ApiOperation(value = "Goods添加",notes = "添加Goods方法详情",tags = {"GoodsController"})
    @PostMapping
    public Result add(@RequestBody  @ApiParam(name = "Goods对象",value = "传入JSON数据",required = true) GoodsEntity goodsEntity){
        //调用GoodsService实现添加Goods
        goodsService.add(goodsEntity);
        return new Result(true,StatusCode.OK,"添加成功");
    }

service

    /***
     * 新增Goods
     * @param goods
     */
    void add(GoodsEntity goodsEntity);

serviceImpl

   /**
     * 增加Goods
     *
     * @param goods
     */
    @Override
    public void add(GoodsEntity goodsEntity) {
        //1.设置审核状态  未审核
        goodsEntity.getGoods().setAuditStatus("0");     //未审核
        //2.保存SPU信息
        goodsMapper.insert(goodsEntity.getGoods());
        //3.获取SPU的主键ID
        //4.保存扩展信息
        goodsEntity.getGoodsDesc().setGoodsId(goodsEntity.getGoods().getId());
        goodsDescMapper.insert(goodsEntity.getGoodsDesc());
        //int i = 10/0;

        //5.保存SKU信息
        this.saveItem(goodsEntity);

    }

 private void saveItem(GoodsEntity goodsEntity) {
        if ("1".equals(goodsEntity.getGoods().getIsEnableSpec())) {
            if (!CollectionUtils.isEmpty(goodsEntity.getItemList())) {
                for (Item item : goodsEntity.getItemList()) {
                    //SKU标题     SPU名称+规格  {“网络制式”:"联通4G","机身内存":"16G"}
                    String title = goodsEntity.getGoods().getGoodsName();

                    Map<String, String> specMap = JSON.parseObject(item.getSpec(), Map.class);
                    for (String key : specMap.keySet()) {
                        title += " " + specMap.get(key) + " ";
                    }
                    item.setTitle(title);       //SKU标题
                    this.setItemValue(goodsEntity, item);
                    itemMapper.insert(item);
                }
            }
        } else {
            //不启用规格时
            Item item = new Item();
            item.setTitle(goodsEntity.getGoods().getGoodsName());     //SKU名称
            item.setPrice(goodsEntity.getGoods().getPrice());      //SKU的价格
            item.setNum(9999);
            item.setStatus("1");     //启用状态
            item.setIsDefault("1");   //启用默认
            item.setSpec("{}");      //规格
            this.setItemValue(goodsEntity, item);

            itemMapper.insert(item);
        }
    }

dao

1
package com.offcn.sellergoods.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.offcn.sellergoods.pojo.Goods;
public interface GoodsMapper extends BaseMapper<Goods> {
}


2
package com.offcn.sellergoods.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.offcn.sellergoods.pojo.GoodsDesc;
public interface GoodsDescMapper extends BaseMapper<GoodsDesc> {
}



3
package com.offcn.sellergoods.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.offcn.sellergoods.pojo.Item;
public interface ItemMapper extends BaseMapper<Item> {
}

测试json

{ "goods": { "brandId": 1, "caption": "测试商品01副标题", "category1Id": 558, "category2Id": 559, "category3Id": 560, "goodsName": "测试商品01", "isEnableSpec": "1", "price": "1000", "typeTemplateId": 35 },"goodsDesc": { "customAttributeItems": "[{\"text\":\"内存大小\",\"value\":\"16G\"}, {\"text\":\"颜色\",\"value\":\"绿色\"}]", "introduction": "<span style=\"color:#666666;font-family:tahoma, arial, &quot;font-size:14px;background-color:#FFFFFF;\">测试描述</span><br />", "itemImages": "[{\"color\":\"红色 \",\"url\":\"http://192.168.188.146/group1/M00/00/00/wKi8kly5gXGAZ9X_AAQQPbR_emI 045.png\"},{\"color\":\"绿色 \",\"url\":\"http://192.168.188.146/group1/M00/00/00/wKi8kly5gXmANvndAAI1bFuIUJE 180.jpg\"}]", "packageList": "测试包装", "saleService": "测试售后服务", "specificationItems": "[{\"attributeValue\":[\"移动3G\",\"移动 4G\"],\"attributeName\":\"网络\"},{\"attributeValue\": [\"16G\",\"32G\"],\"attributeName\":\"机身内存\"}]" },"itemList": [ { "isDefault": "1", "num": 9999, "price": "1000", "spec": "{\"机身内存\":\"16G\",\"网络\":\"移动3G\"}", "status": "1" },{ "isDefault": "0",
"num": 9999, "price": "2000", "spec": "{\"机身内存\":\"16G\",\"网络\":\"移动4G\"}", "status": "1" },{ "isDefault": "0", "num": 9999, "price": "2001", "spec": "{\"机身内存\":\"24G\",\"网络\":\"移动3G\"}", "status": "1" },{ "isDefault": "0", "num": 9999, "price": "2002", "spec": "{\"机身内存\":\"24G\",\"网络\":\"移动4G\"}", "status": "1" } ] }

结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值