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.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Isolation; 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.ArrayList; 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; @Autowired private FileRecordMapper fileRecordMapper; @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 deleteWrapper = new UpdateWrapper<>(baseData); baseDataMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } baseDataMapper.deleteBatchIds(ids); } @Override public void updateById(BaseData baseData) { baseDataMapper.updateById(baseData); } @Override public void updateByIdInBatch(List 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 wrapper = new QueryWrapper<>(baseData); return baseDataMapper.selectOne(wrapper); } @Override public List findList(BaseData baseData) { QueryWrapper wrapper = new QueryWrapper<>(baseData); return baseDataMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { pageWrap.getModel().setIsdeleted(Constants.ZERO); IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper 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 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", "").replace("/n1/jfs/", "/imgzone/jfs/"); String[] imgs =tImg.split(","); data.setBgImgs(imgs); } } } return PageData.from(result); } @Override public long count(BaseData baseData) { QueryWrapper wrapper = new QueryWrapper<>(baseData); return baseDataMapper.selectCount(wrapper); } public static boolean IS_RUNNING = false; @Override @Async @Transactional public synchronized void dealBaseData() { if(IS_RUNNING){ return; } log.info("开始处理源数据=================start==================="); IS_RUNNING = true; try { BaseData param = new BaseData(); param.setStatus(Constants.ZERO); List 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 brandList = brandMapper.selectList(new QueryWrapper<>(brand)); BaseCategory cate = new BaseCategory(); cate.setIsdeleted(Constants.ZERO); //查询全部类别信息 List cateList = baseCategoryMapper.selectList(new QueryWrapper<>(cate)); BaseCateParam p = new BaseCateParam(); p.setIsdeleted(Constants.ZERO); //查询全部类别属性信息 List paramList = baseCateParamMapper.selectList(new QueryWrapper<>(p)); //默認加价系数 BigDecimal rate = systemDictDataBiz.getGoodsPriceRate(); OssModel ossModel = initOssModel(); Date date = new Date(); List baseCateParamList = new ArrayList<>(); List fileList = new ArrayList<>(); List goodsIdList = new ArrayList<>(); List fileRecords = new ArrayList<>(); List baseGoodsParamList = new ArrayList<>(); for(BaseData data : allLis){ BaseGoods goods = new BaseGoods(); goods.setBaseDataId(data.getId()); goods.setIsdeleted(Constants.ZERO); //查询是否存在商品 BaseGoods model = baseGoodsMapper.selectOne(new QueryWrapper<>(goods).last(" limit 1")); goods.setName(StringUtils.defaultString(data.getName(),data.getTitle())); goods.setRemark(data.getTitle()); goods.setContent(data.getTitle()); goods.setStatus(Constants.ZERO); goods.setOrigin(Constants.BasegoodsOrigin.basedata); 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,fileRecords); if(cModel!= null){ goods.setCategoryId(cModel.getId()); } // goods.setImgurl(getOssImgurl(ossModel,ossModel.getGoodsFolder(), data.getImgurl())); goods.setImgurl(getOssImgurlFile(ossModel.getGoodsFolder(), data.getImgurl(), data.getId(),Constants.ZERO,fileRecords)); // goods.setPrice(Constants.formatBigdecimal(data.getSaleprice()).multiply(Constants.formatBigdecimal(cModel.getPriceRate()))); goods.setPrice(Constants.formatBigdecimal(data.getSaleprice())); if(model!=null){ //如果已经存在,更新商品数据 goods.setEditDate(date); goods.setId(model.getId()); baseGoodsMapper.updateById(goods); goodsIdList.add(goods.getId()); }else{ //插入新商品数据 goods.setCreateDate(date); baseGoodsMapper.insert(goods); } //处理分类属性 dealCateParamAll(cModel.getId(),goods.getId(),data,paramList, baseGoodsParamList ); //处理背景图 dealBgImgAll(ossModel,goods.getId(),data,fileList,fileRecords); data.setEditDate(new Date()); data.setStatus(Constants.ONE); //更新数据处理状态 baseDataMapper.updateById(data); } if(goodsIdList.size()>0){ //删除原有附件大图 UpdateWrapper updateModel = new UpdateWrapper<>(); updateModel.lambda().set(Multifile::getIsdeleted,Constants.ONE); updateModel.lambda().set(Multifile::getEditDate, new Date()); updateModel.lambda().in(Multifile::getObjId, goodsIdList); updateModel.lambda().eq(Multifile::getObjType, Constants.ONE); multifileMapper.delete(updateModel); //删除原有商品属性 UpdateWrapper bgModel = new UpdateWrapper<>(); bgModel.lambda().set(BaseGoodsParam::getIsdeleted,Constants.ONE); bgModel.lambda().set(BaseGoodsParam::getEditDate, new Date()); bgModel.lambda().in(BaseGoodsParam::getGoodsId, goodsIdList); baseGoodsParamMapper.delete(bgModel); } if(fileList.size()>0){ multifileMapper.insertBatch(fileList); } if(baseGoodsParamList.size()>0){ baseGoodsParamMapper.insertBatch(baseGoodsParamList); } if(fileRecords.size()>0){ fileRecordMapper.insertBatch(fileRecords); } log.info("开始处理源数据=================success================处理数据共("+allLis.size()+")个==="); }catch (Exception e){ e.printStackTrace(); log.info("开始处理源数据=================error==================="+e.getMessage()); throw e; }finally { IS_RUNNING = false; log.info("开始处理源数据=================end==================="); } } private void dealBgImgAll(OssModel ossModel, Integer id, BaseData data,List fileList,List fileRecords) { 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],fileList,fileRecords); } } } // 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,List fileList,List fileRecords) { if(StringUtils.isNotBlank(bgImg)){ bgImg = bgImg.replace("/n1/jfs/", "/imgzone/jfs/"); // String img =getOssImgurl(ossModel, ossModel.getGoodsFolder() ,bgImg); String img = getOssImgurlFile(ossModel.getGoodsFolder(), bgImg, null,Constants.TWO,fileRecords); if(StringUtils.isNotBlank(img)){ Multifile f = new Multifile(); f.setFileurl(img); f.setObjType(Constants.ONE); 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); fileList.add(f); // 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 cateList,List paramList) { 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,paramList); } catch (Exception e) { // throw new RuntimeException(e); } } } } private void dealCateParam(Integer cateId, Integer goodsId, String attr,List list,List paramList) { 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, "商品编号") || 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); paramList.add(p); // baseGoodsParamMapper.insert(p); } /** * 根据品类编码和参数名称查询参数对象,没有则插入新的 * @param list * @return */ private BaseCateParam getCateParamModelFromList(Integer id,String name, List 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 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 list, List fileRecords) { 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)); model.setImgurl(getOssImgurlFile(ossModel.getCateFolder(), img, null,Constants.ONE,fileRecords)); //插入新的品牌信息 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; } public String getOssImgurlFile(String folder,String img ,String id,Integer objType,List fileRecords) { 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;// 文件名 FileRecord model = new FileRecord(); model.setIsdeleted(Constants.ZERO); model.setCreateDate(new Date()); model.setName(tempFileName); model.setInfo(null); model.setFolder(folder); model.setUrl(img); model.setObjId(id); model.setType(objType); model.setStatus(Constants.ZERO); model.setKeyval(key); fileRecords.add(model); 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; } }