@Override
  public void update(ProductParam param) {
    // 保存描述信息
    ProductDescriptionParam dParam = new ProductDescriptionParam();
    dParam.setDescription(param.getDescription());
    dParam.setId(param.getDescriptionId());
    dParam.setProductId(param.getId());
    if (dParam.getId() == null) {
      productDescriptionDao.insert(dParam);
    } else {
      productDescriptionDao.update(dParam);
    }

    // 保存主图
    ImgParam imgParam = new ImgParam();
    imgParam.setId(param.getPrimaryImgId());
    imgParam.setTypes(ImgType.PRIMARY.getValue());
    imgParam.setToId(param.getId());
    if (imgParam.getId() == null) {
      imgParam.setName(param.getPrimaryImg());
      imgDao.insert(imgParam);
    } else {
      // 如果用户修改了图片,则删除原来的图片
      List<ImgModel> imgs = imgDao.getList(imgParam);
      if (!CollectionUtils.isEmpty(imgs)) {
        File file = new File(Constants.PRODUCT_IMG_ABSOLUTE_PATH + imgs.get(0).getName());
        if (file.exists()) {
          file.delete();
        }
      }
      imgDao.update(imgParam);
    }

    // 商品
    productDao.update(param);
  }
  @Override
  public ProductVO get(ProductParam param) {
    List<ProductVO> vos = getList(param);
    if (!CollectionUtils.isEmpty(vos)) {
      ProductVO product = vos.get(0);

      // 描述
      List<ProductDescriptionModel> desModel =
          productDescriptionDao.getByProductId(product.getId());
      if (!CollectionUtils.isEmpty(desModel)) {
        product.setDescription(desModel.get(0).getDescription());
        product.setDescriptionId(desModel.get(0).getId());
      }
      return product;
    }
    return null;
  }
  @Override
  public void delete(ProductParam param) {
    // 删除描述信息
    ProductDescriptionParam dParam = new ProductDescriptionParam();
    dParam.setProductId(param.getId());
    dParam.setStatus(StatusType.DEL.getValue());
    productDescriptionDao.update(dParam);

    // 删除图片
    ImgParam imgParam = new ImgParam();
    imgParam.setToId(param.getId());
    imgParam.setStatus(StatusType.DEL.getValue());
    imgDao.update(imgParam);

    // 商品
    param.setStatus(StatusType.DEL.getValue());
    productDao.update(param);
  }
  @Override
  public void add(ProductParam param) {
    // 获取公司id
    CompanyModel company = companyDao.getByUserId(param.getUserId());
    if (company != null) {
      param.setCompanyId(company.getId());
    }

    // 必须先保存商品,因为返回的商品主键以后要使用
    productDao.insert(param);

    // 保存描述信息
    ProductDescriptionParam dParam = new ProductDescriptionParam();
    dParam.setDescription(param.getDescription());
    dParam.setProductId(param.getId());
    productDescriptionDao.insert(dParam);

    // 保存主图
    ImgParam imgParam = new ImgParam();
    imgParam.setName(param.getPrimaryImg());
    imgParam.setToId(param.getId());
    imgParam.setTypes(ImgType.PRIMARY.getValue());
    imgDao.insert(imgParam);
  }