package com.doumee.service.business.impl; 
 | 
  
 | 
import com.doumee.biz.system.SystemDictDataBiz; 
 | 
import com.doumee.core.model.PageData; 
 | 
import com.doumee.core.model.PageWrap; 
 | 
import com.doumee.core.utils.Constants; 
 | 
import com.doumee.core.utils.DateUtil; 
 | 
import com.doumee.core.utils.PinYinUtil; 
 | 
import com.doumee.core.utils.Utils; 
 | 
import com.doumee.core.utils.aliyun.ALiYunUtil; 
 | 
import com.doumee.dao.business.*; 
 | 
import com.doumee.dao.business.model.*; 
 | 
import com.doumee.dao.business.model.dto.OssModel; 
 | 
import com.doumee.service.business.BaseDataService; 
 | 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
 | 
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 
 | 
import com.baomidou.mybatisplus.core.metadata.IPage; 
 | 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.apache.commons.lang3.StringUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.context.annotation.Lazy; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
import org.springframework.util.CollectionUtils; 
 | 
  
 | 
import java.io.File; 
 | 
import java.lang.reflect.Field; 
 | 
import java.lang.reflect.Method; 
 | 
import java.math.BigDecimal; 
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
import java.util.UUID; 
 | 
  
 | 
/** 
 | 
 * 商品源数据信息表Service实现 
 | 
 * @author 江蹄蹄 
 | 
 * @date 2023/09/08 11:39 
 | 
 */ 
 | 
@Service 
 | 
@Slf4j 
 | 
public class BaseDataServiceImpl implements BaseDataService { 
 | 
  
 | 
    @Autowired 
 | 
    private BaseDataMapper baseDataMapper; 
 | 
    @Autowired 
 | 
    private MultifileMapper multifileMapper; 
 | 
    @Autowired 
 | 
    @Lazy 
 | 
    private SystemDictDataBiz systemDictDataBiz; 
 | 
    @Autowired 
 | 
    private BaseGoodsMapper baseGoodsMapper; 
 | 
    @Autowired 
 | 
    private BaseGoodsParamMapper baseGoodsParamMapper; 
 | 
    @Autowired 
 | 
    private BaseCategoryMapper baseCategoryMapper; 
 | 
    @Autowired 
 | 
    private BaseCateParamMapper baseCateParamMapper; 
 | 
    @Autowired 
 | 
    private BrandMapper brandMapper; 
 | 
  
 | 
    @Override 
 | 
    public String create(BaseData baseData) { 
 | 
        baseDataMapper.insert(baseData); 
 | 
        return baseData.getId(); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteById(String id) { 
 | 
        baseDataMapper.deleteById(id); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void delete(BaseData baseData) { 
 | 
        UpdateWrapper<BaseData> deleteWrapper = new UpdateWrapper<>(baseData); 
 | 
        baseDataMapper.delete(deleteWrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteByIdInBatch(List<String> ids) { 
 | 
        if (CollectionUtils.isEmpty(ids)) { 
 | 
            return; 
 | 
        } 
 | 
        baseDataMapper.deleteBatchIds(ids); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateById(BaseData baseData) { 
 | 
        baseDataMapper.updateById(baseData); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateByIdInBatch(List<BaseData> baseDatas) { 
 | 
        if (CollectionUtils.isEmpty(baseDatas)) { 
 | 
            return; 
 | 
        } 
 | 
        for (BaseData baseData: baseDatas) { 
 | 
            this.updateById(baseData); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public BaseData findById(Integer id) { 
 | 
        return baseDataMapper.selectById(id); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public BaseData findOne(BaseData baseData) { 
 | 
        QueryWrapper<BaseData> wrapper = new QueryWrapper<>(baseData); 
 | 
        return baseDataMapper.selectOne(wrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<BaseData> findList(BaseData baseData) { 
 | 
        QueryWrapper<BaseData> wrapper = new QueryWrapper<>(baseData); 
 | 
        return baseDataMapper.selectList(wrapper); 
 | 
    } 
 | 
   
 | 
    @Override 
 | 
    public PageData<BaseData> findPage(PageWrap<BaseData> pageWrap) { 
 | 
        pageWrap.getModel().setIsdeleted(Constants.ZERO); 
 | 
        IPage<BaseData> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); 
 | 
        QueryWrapper<BaseData> queryWrapper = new QueryWrapper<>(); 
 | 
        Utils.MP.blankToNull(pageWrap.getModel()); 
 | 
        if (pageWrap.getModel().getId() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getId, pageWrap.getModel().getId()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getCreator() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getCreator, pageWrap.getModel().getCreator()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getCreateDate() != null) { 
 | 
            queryWrapper.lambda().ge(BaseData::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); 
 | 
            queryWrapper.lambda().le(BaseData::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); 
 | 
        } 
 | 
        if (pageWrap.getModel().getEditor() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getEditor, pageWrap.getModel().getEditor()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getEditDate() != null) { 
 | 
            queryWrapper.lambda().ge(BaseData::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); 
 | 
            queryWrapper.lambda().le(BaseData::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); 
 | 
        } 
 | 
        if (pageWrap.getModel().getIsdeleted() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getIsdeleted, pageWrap.getModel().getIsdeleted()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getTitle() != null) { 
 | 
            queryWrapper.lambda().like(BaseData::getTitle, pageWrap.getModel().getTitle()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getName() != null) { 
 | 
            queryWrapper.lambda().like(BaseData::getName, pageWrap.getModel().getName()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getSku() != null) { 
 | 
            queryWrapper.lambda().like(BaseData::getSku, pageWrap.getModel().getSku()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getBrand() != null) { 
 | 
            queryWrapper.lambda().like(BaseData::getBrand, pageWrap.getModel().getBrand()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getCategory() != null) { 
 | 
            queryWrapper.lambda().like(BaseData::getCategory, pageWrap.getModel().getCategory()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getUrl() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getUrl, pageWrap.getModel().getUrl()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getImgurl() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getImgurl, pageWrap.getModel().getImgurl()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getBgImg() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getBgImg, pageWrap.getModel().getBgImg()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getBgImg2() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getBgImg2, pageWrap.getModel().getBgImg2()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getBgImg3() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getBgImg3, pageWrap.getModel().getBgImg3()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getPrice() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getPrice, pageWrap.getModel().getPrice()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getSaleprice() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getSaleprice, pageWrap.getModel().getSaleprice()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr1() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr1, pageWrap.getModel().getAttr1()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr2() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr2, pageWrap.getModel().getAttr2()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr3() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr3, pageWrap.getModel().getAttr3()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr4() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr4, pageWrap.getModel().getAttr4()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr5() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr5, pageWrap.getModel().getAttr5()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr6() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr6, pageWrap.getModel().getAttr6()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr7() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr7, pageWrap.getModel().getAttr7()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr8() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr8, pageWrap.getModel().getAttr8()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr9() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr9, pageWrap.getModel().getAttr9()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr10() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr10, pageWrap.getModel().getAttr10()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr11() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr11, pageWrap.getModel().getAttr11()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr12() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr12, pageWrap.getModel().getAttr12()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr13() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr13, pageWrap.getModel().getAttr13()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr14() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr14, pageWrap.getModel().getAttr14()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr15() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr15, pageWrap.getModel().getAttr15()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr16() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr16, pageWrap.getModel().getAttr16()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr17() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr17, pageWrap.getModel().getAttr17()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr18() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr18, pageWrap.getModel().getAttr18()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr19() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr19, pageWrap.getModel().getAttr19()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr20() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr20, pageWrap.getModel().getAttr20()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr21() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr21, pageWrap.getModel().getAttr21()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr22() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr22, pageWrap.getModel().getAttr22()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr23() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr23, pageWrap.getModel().getAttr23()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr24() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr24, pageWrap.getModel().getAttr24()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr25() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr25, pageWrap.getModel().getAttr25()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr26() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr26, pageWrap.getModel().getAttr26()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr27() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr27, pageWrap.getModel().getAttr27()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr28() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr28, pageWrap.getModel().getAttr28()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr29() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr29, pageWrap.getModel().getAttr29()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr30() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr30, pageWrap.getModel().getAttr30()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr31() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr31, pageWrap.getModel().getAttr31()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr32() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr32, pageWrap.getModel().getAttr32()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr33() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr33, pageWrap.getModel().getAttr33()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getAttr34() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getAttr34, pageWrap.getModel().getAttr34()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getStatus() != null) { 
 | 
            queryWrapper.lambda().eq(BaseData::getStatus, pageWrap.getModel().getStatus()); 
 | 
        } 
 | 
        for(PageWrap.SortData sortData: pageWrap.getSorts()) { 
 | 
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { 
 | 
                queryWrapper.orderByDesc(sortData.getProperty()); 
 | 
            } else { 
 | 
                queryWrapper.orderByAsc(sortData.getProperty()); 
 | 
            } 
 | 
        } 
 | 
        IPage<BaseData> result =baseDataMapper.selectPage(page, queryWrapper); 
 | 
        if(result!=null && result.getRecords()!=null){ 
 | 
            for(BaseData data :result.getRecords()){ 
 | 
                //多图,英文逗号隔开 
 | 
                if(StringUtils.isNotBlank(data.getBgImg())){ 
 | 
                    String tImg =  data.getBgImg().replace(",", ",").replace(".avif", ""); 
 | 
                    String[] imgs =tImg.split(","); 
 | 
                    data.setBgImgs(imgs); 
 | 
  
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        return PageData.from(result); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public long count(BaseData baseData) { 
 | 
        QueryWrapper<BaseData> wrapper = new QueryWrapper<>(baseData); 
 | 
        return baseDataMapper.selectCount(wrapper); 
 | 
    } 
 | 
    public static   boolean IS_RUNNING = false; 
 | 
    @Override 
 | 
    @Transactional 
 | 
    public   void dealBaseData() { 
 | 
        if(IS_RUNNING){ 
 | 
            return; 
 | 
        } 
 | 
        log.info("开始处理源数据=================start==================="); 
 | 
        IS_RUNNING = true; 
 | 
  
 | 
        try { 
 | 
            BaseData param = new BaseData(); 
 | 
            param.setStatus(Constants.ZERO); 
 | 
            List<BaseData> allLis=findList(param); 
 | 
            if(allLis==null || allLis.size() ==0){ 
 | 
  
 | 
                log.info("开始处理源数据=================end========无待处理数据==========="); 
 | 
                return ; 
 | 
            } 
 | 
            Brand brand = new Brand(); 
 | 
            brand.setIsdeleted(Constants.ZERO); 
 | 
            brand.setType(Constants.ONE); 
 | 
            //查询全部品牌信息 
 | 
            List<Brand> brandList = brandMapper.selectList(new QueryWrapper<>(brand)); 
 | 
  
 | 
            BaseCategory cate = new BaseCategory(); 
 | 
            cate.setIsdeleted(Constants.ZERO); 
 | 
            //查询全部类别信息 
 | 
            List<BaseCategory> cateList = baseCategoryMapper.selectList(new QueryWrapper<>(cate)); 
 | 
            BaseCateParam p = new BaseCateParam(); 
 | 
            p.setIsdeleted(Constants.ZERO); 
 | 
            //查询全部类别属性信息 
 | 
            List<BaseCateParam> paramList = baseCateParamMapper.selectList(new QueryWrapper<>(p)); 
 | 
            //默認加价系数 
 | 
            BigDecimal rate = systemDictDataBiz.getGoodsPriceRate(); 
 | 
            OssModel ossModel = initOssModel(); 
 | 
            Date date = new Date(); 
 | 
            for(BaseData data : allLis){ 
 | 
                BaseGoods goods = new BaseGoods(); 
 | 
                goods.setBaseDataId(data.getId()); 
 | 
                goods.setIsdeleted(Constants.ZERO); 
 | 
                if(baseGoodsMapper.selectCount(new QueryWrapper<>(goods)) >0){ 
 | 
                    //如果已经存在,逻辑删除旧的商品数据 
 | 
                    UpdateWrapper<BaseGoods> updateModel = new UpdateWrapper<>(); 
 | 
                    updateModel.lambda().set(BaseGoods::getIsdeleted,Constants.ONE); 
 | 
                    updateModel.lambda().set(BaseGoods::getEditDate, new Date()); 
 | 
                    updateModel.lambda().eq(BaseGoods::getBaseDataId, data.getId()); 
 | 
                    baseGoodsMapper.update(null, updateModel); 
 | 
                } 
 | 
                goods.setCreateDate(date); 
 | 
                goods.setName(StringUtils.defaultString(data.getName(),data.getTitle())); 
 | 
                goods.setRemark(data.getTitle()); 
 | 
                goods.setContent(data.getTitle()); 
 | 
                goods.setStatus(Constants.ZERO); 
 | 
                goods.setShortPinyin(PinYinUtil.getFirstSpell(goods.getName())); 
 | 
                goods.setPinyin(PinYinUtil.getFullSpell(goods.getName())); 
 | 
                goods.setZdPrice(data.getPrice()); 
 | 
                //处理品牌数据 
 | 
                Brand bModel = getBrandModelFromList(data.getBrand(),brandList); 
 | 
                if(bModel!= null){ 
 | 
                    goods.setBrandId(bModel.getId()); 
 | 
                } 
 | 
                //处理列表数据 
 | 
                BaseCategory cModel = getCateModelFromList(rate,data.getCategory(),ossModel,data.getCategoryImg(), cateList); 
 | 
                if(cModel!= null){ 
 | 
                    goods.setCategoryId(cModel.getId()); 
 | 
                } 
 | 
                goods.setImgurl(getOssImgurl(ossModel,ossModel.getGoodsFolder(), data.getImgurl())); 
 | 
                goods.setPrice(Constants.formatBigdecimal(data.getSaleprice()).multiply(Constants.formatBigdecimal(cModel.getPriceRate()))); 
 | 
                //插入新商品数据 
 | 
                baseGoodsMapper.insert(goods); 
 | 
                //处理分类属性 
 | 
                dealCateParamAll(cModel.getId(),goods.getId(),data,paramList); 
 | 
                //处理背景图 
 | 
                dealBgImgAll(ossModel,goods.getId(),data); 
 | 
  
 | 
                data.setEditDate(new Date()); 
 | 
                data.setStatus(Constants.ONE); 
 | 
                //更新数据处理状态 
 | 
                baseDataMapper.updateById(data); 
 | 
            } 
 | 
            log.info("开始处理源数据=================success================处理数据共("+allLis.size()+")个==="); 
 | 
        }catch (Exception e){ 
 | 
            e.printStackTrace(); 
 | 
            log.info("开始处理源数据=================error==================="+e.getMessage()); 
 | 
        }finally { 
 | 
            IS_RUNNING = false; 
 | 
            log.info("开始处理源数据=================end==================="); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    private void dealBgImgAll(OssModel ossModel, Integer id, BaseData data) { 
 | 
        int i =0; 
 | 
        //多图,英文逗号隔开 
 | 
        if(StringUtils.isNotBlank(data.getBgImg())){ 
 | 
           String tImg =  data.getBgImg().replace(",", ",").replace(".avif", ""); 
 | 
            String[] imgs =tImg.split(","); 
 | 
            for (int j = 0; j < imgs.length; j++) { 
 | 
                if(StringUtils.isNotBlank(imgs[j])){ 
 | 
                    i += addImg(i,ossModel,id,imgs[j]); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
//        i += addImg(i,ossModel,id,data.getBgImg()); 
 | 
//        i += addImg(i,ossModel,id,data.getBgImg2()); 
 | 
//        addImg(i,ossModel,id,data.getBgImg3()); 
 | 
    } 
 | 
  
 | 
    private int addImg(int i,OssModel ossModel, Integer id,String bgImg) { 
 | 
        if(StringUtils.isNotBlank(bgImg)){ 
 | 
            String img =getOssImgurl(ossModel, ossModel.getGoodsFolder() ,bgImg); 
 | 
            if(StringUtils.isNotBlank(img)){ 
 | 
                Multifile f = new Multifile(); 
 | 
                f.setFileurl(img); 
 | 
                f.setObjType(Constants.ZERO); 
 | 
                f.setName(bgImg.substring(bgImg.lastIndexOf("/")+1)); 
 | 
                f.setType(Constants.ZERO); 
 | 
                f.setObjId(id); 
 | 
                f.setCreateDate(new Date()); 
 | 
                f.setIsdeleted(Constants.ZERO); 
 | 
                f.setSortnum(i); 
 | 
                multifileMapper.insert(f); 
 | 
                return  1; 
 | 
            } 
 | 
        } 
 | 
        return  0; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public OssModel initOssModel() { 
 | 
        OssModel model = new OssModel(); 
 | 
        model.setUrl(systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()); 
 | 
        model.setEndpoint(systemDictDataBiz.queryByCode(Constants.OSS, Constants.ENDPOINT).getCode()); 
 | 
        model.setAccessId(systemDictDataBiz.queryByCode(Constants.OSS, Constants.ACCESS_ID).getCode()); 
 | 
        model.setAccessKey(systemDictDataBiz.queryByCode(Constants.OSS, Constants.ACCESS_KEY).getCode()); 
 | 
        model.setBucket(systemDictDataBiz.queryByCode(Constants.OSS, Constants.BUCKETNAME).getCode()); 
 | 
        model.setCateFolder(systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode()); 
 | 
        model.setGoodsFolder(systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_IMG).getCode()); 
 | 
        return model; 
 | 
    } 
 | 
  
 | 
  
 | 
    private void dealCateParamAll(Integer cateId,Integer goodsId, BaseData data  ,List<BaseCateParam> cateList) { 
 | 
        Method[] fields = data.getClass().getMethods();    // 获取对象的所有属性 
 | 
        for (Method item : fields) { 
 | 
            String name = item.getName(); 
 | 
            if(name.indexOf("getAttr") == 0){ 
 | 
                try { 
 | 
                    String val =(String) item.invoke(data); 
 | 
                    dealCateParam(cateId,goodsId,val.toString(),cateList); 
 | 
                } catch (Exception e) { 
 | 
//                    throw new RuntimeException(e); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
//        dealCateParam(cateId,goodsId,data.getAttr1(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr2(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr3(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr4(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr5(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr6(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr7(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr8(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr9(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr10(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr11(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr12(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr13(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr14(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr15(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr16(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr17(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr18(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr19(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr20(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr21(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr22(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr23(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr24(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr25(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr26(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr27(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr28(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr29(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr30(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr31(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr32(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr33(),cateList); 
 | 
//        dealCateParam(cateId,goodsId,data.getAttr34(),cateList); 
 | 
    } 
 | 
  
 | 
    private void dealCateParam(Integer cateId, Integer goodsId, String attr,List<BaseCateParam> list) { 
 | 
        if(StringUtils.isBlank(attr)){ 
 | 
            return; 
 | 
        } 
 | 
//        商品名称:火星人F30BX 
 | 
        //如果属性不为空,处理属性数据 
 | 
        int index  = attr.indexOf(":"); 
 | 
        if(index <=0){ 
 | 
            return; 
 | 
        } 
 | 
        String attrName = attr.substring(0,index); 
 | 
        if(StringUtils.isBlank(attrName) || StringUtils.equals(attrName, "商品名称") || StringUtils.equals(attrName, "商品编号")){ 
 | 
            return; 
 | 
        } 
 | 
        String val = attr.substring(index+1); 
 | 
        BaseCateParam cate = getCateParamModelFromList(cateId,attrName, list); 
 | 
        BaseGoodsParam p = new BaseGoodsParam(); 
 | 
        p.setName(attrName); 
 | 
        p.setPramaId(cate.getId()); 
 | 
        p.setIsdeleted(Constants.ZERO); 
 | 
        p.setStatus(Constants.ZERO); 
 | 
        p.setVal(val); 
 | 
        p.setCreateDate(new Date()); 
 | 
        p.setGoodsId(goodsId); 
 | 
        baseGoodsParamMapper.insert(p); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据品类编码和参数名称查询参数对象,没有则插入新的 
 | 
     * @param list 
 | 
     * @return 
 | 
     */ 
 | 
  
 | 
    private BaseCateParam getCateParamModelFromList(Integer id,String name, List<BaseCateParam> list) { 
 | 
        if(list!=null && list.size()>0){ 
 | 
            for(BaseCateParam p : list){ 
 | 
                if(Constants.equalsInteger(id,p.getCategoryId()) && StringUtils.equals(name,p.getName())){ 
 | 
                    return  p; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        BaseCateParam model = new BaseCateParam(); 
 | 
        model.setCreateDate(new Date()); 
 | 
        model.setName(name); 
 | 
        model.setIsdeleted(Constants.ZERO); 
 | 
        model.setCategoryId(id); 
 | 
        //插入新的品牌信息 
 | 
        baseCateParamMapper.insert(model); 
 | 
        //加入集合中 
 | 
        list.add(model); 
 | 
        return model; 
 | 
    } 
 | 
    /** 
 | 
     * 根据品牌名称查询品牌对象,没有则插入新的 
 | 
     * @param name 
 | 
     * @param brandList 
 | 
     * @return 
 | 
     */ 
 | 
  
 | 
    private Brand getBrandModelFromList(String name, List<Brand> brandList) { 
 | 
        if(StringUtils.isBlank(name)){ 
 | 
            return null; 
 | 
        } 
 | 
        if(brandList!=null && brandList.size()>0){ 
 | 
            for(Brand brand : brandList){ 
 | 
                if(StringUtils.equals(name,brand.getName())){ 
 | 
                    return  brand; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        Brand model = new Brand(); 
 | 
        model.setType(Constants.ONE); 
 | 
        model.setCreateDate(new Date()); 
 | 
        model.setName(name); 
 | 
        model.setIsdeleted(Constants.ZERO); 
 | 
        model.setImgurl(null); 
 | 
        //插入新的品牌信息 
 | 
        brandMapper.insert(model); 
 | 
        //加入集合中 
 | 
        brandList.add(model); 
 | 
        return model; 
 | 
    } 
 | 
    /** 
 | 
     * 根据名称查询分类对象,没有则插入新的 
 | 
     * @param name 
 | 
     * @param list 
 | 
     * @return 
 | 
     */ 
 | 
  
 | 
    private BaseCategory getCateModelFromList(BigDecimal dRate,String name, OssModel ossModel, String img, List<BaseCategory> list) { 
 | 
        if(StringUtils.isBlank(name)){ 
 | 
            return  null; 
 | 
        } 
 | 
        if(list!=null && list.size()>0){ 
 | 
            for(BaseCategory p : list){ 
 | 
                if(StringUtils.equals(name,p.getName())){ 
 | 
                    return  p; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        BaseCategory model = new BaseCategory(); 
 | 
        model.setCreateDate(new Date()); 
 | 
        model.setName(name); 
 | 
        model.setPriceRate(dRate); 
 | 
        model.setIsdeleted(Constants.ZERO); 
 | 
        model.setPinyin(PinYinUtil.getFullSpell(model.getName())); 
 | 
        model.setShortPinyin(PinYinUtil.getFirstSpell(model.getName())); 
 | 
        model.setImgurl(getOssImgurl(ossModel, ossModel.getCateFolder() ,img)); 
 | 
        //插入新的品牌信息 
 | 
        baseCategoryMapper.insert(model); 
 | 
        //加入集合中 
 | 
        list.add(model); 
 | 
        return model; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public String getOssImgurl(OssModel ossModel, String folder,String img) { 
 | 
        if(StringUtils.isBlank(img)){ 
 | 
            return null; 
 | 
        } 
 | 
        try { 
 | 
            String nowDate = DateUtil.getNowShortDate();// 当前时间(年月日) 
 | 
            String nfix  = img.lastIndexOf(".")>0?img.substring(img.lastIndexOf(".")):null; 
 | 
            nfix = StringUtils.defaultString(nfix,".jpg"); 
 | 
            String fileName = UUID.randomUUID() + nfix; 
 | 
            String tempFileName = nowDate + "/" + fileName; 
 | 
            String key =folder+ tempFileName;// 文件名 
 | 
  
 | 
            ALiYunUtil obs = new ALiYunUtil(ossModel.getEndpoint(), ossModel.getAccessId(), ossModel.getAccessKey()); 
 | 
            if (obs.uploadOnlineObject(img,ossModel.getBucket(), key,null)) { 
 | 
                    return  tempFileName; 
 | 
            } 
 | 
        }catch (Exception e){ 
 | 
  
 | 
        } 
 | 
        return  null; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public     String getOssImgurl(OssModel ossModel, String folder, File f) { 
 | 
        if(f == null || !f.isFile()){ 
 | 
            return null; 
 | 
        } 
 | 
        try { 
 | 
            String img = f.getPath(); 
 | 
            String nowDate = DateUtil.getNowShortDate();// 当前时间(年月日) 
 | 
            String nfix  = img.lastIndexOf(".")>0?img.substring(img.lastIndexOf(".")):null; 
 | 
            nfix = StringUtils.defaultString(nfix,".jpg"); 
 | 
            String fileName = UUID.randomUUID() + nfix; 
 | 
            String tempFileName = nowDate + "/" + fileName; 
 | 
            String key =folder+ tempFileName;// 文件名 
 | 
  
 | 
            ALiYunUtil obs = new ALiYunUtil(ossModel.getEndpoint(), ossModel.getAccessId(), ossModel.getAccessKey()); 
 | 
            if (obs.uploadFile(ossModel.getBucket(), key,f,null)) { 
 | 
                    return  tempFileName; 
 | 
            } 
 | 
        }catch (Exception e){ 
 | 
  
 | 
        } 
 | 
        return  null; 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |