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<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
|
@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<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();
|
List<BaseCateParam> baseCateParamList = new ArrayList<>();
|
List<Multifile> fileList = new ArrayList<>();
|
List<Integer> goodsIdList = new ArrayList<>();
|
List<FileRecord> fileRecords = new ArrayList<>();
|
List<BaseGoodsParam> 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())));
|
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<Multifile> 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.ZERO);
|
multifileMapper.delete(updateModel);
|
//删除原有商品属性
|
UpdateWrapper<BaseGoodsParam> 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<Multifile> fileList,List<FileRecord> 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<Multifile> fileList,List<FileRecord> fileRecords) {
|
if(StringUtils.isNotBlank(bgImg)){
|
// 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.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);
|
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<BaseCateParam> cateList,List<BaseGoodsParam> 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);
|
}
|
}
|
}
|
|
// 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,List<BaseGoodsParam> 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, "商品编号")){
|
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<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, List<FileRecord> 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<FileRecord> 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;
|
}
|
|
|
}
|