| | |
| | | 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.lang.reflect.Field; |
| | | import java.lang.reflect.Method; |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.UUID; |
| | |
| | | * @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; |
| | |
| | | } |
| | | public static boolean IS_RUNNING = false; |
| | | @Override |
| | | @Transactional |
| | | public void dealBaseData() { |
| | | if(IS_RUNNING){ |
| | | return; |
| | | } |
| | | log.info("å¼å§å¤çæºæ°æ®=================start==================="); |
| | | IS_RUNNING = true; |
| | | |
| | | try { |
| | |
| | | param.setStatus(Constants.ZERO); |
| | | List<BaseData> allLis=findList(param); |
| | | if(allLis==null || allLis.size() ==0){ |
| | | |
| | | log.info("å¼å§å¤çæºæ°æ®=================end========æ å¾
å¤çæ°æ®==========="); |
| | | return ; |
| | | } |
| | | Brand brand = new Brand(); |
| | |
| | | p.setIsdeleted(Constants.ZERO); |
| | | //æ¥è¯¢å
¨é¨ç±»å«å±æ§ä¿¡æ¯ |
| | | List<BaseCateParam> paramList = baseCateParamMapper.selectList(new QueryWrapper<>(p)); |
| | | |
| | | BigDecimal rate = getPriceRate(); |
| | | OssModel ossModel = initOssModel(); |
| | | Date date = new Date(); |
| | | for(BaseData data : allLis){ |
| | |
| | | goods.setStatus(Constants.ZERO); |
| | | goods.setShortPinyin(PinYinUtil.getFirstSpell(goods.getName())); |
| | | goods.setPinyin(PinYinUtil.getFullSpell(goods.getName())); |
| | | goods.setPrice(data.getSaleprice()); |
| | | goods.setZdPrice(data.getPrice()); |
| | | //å¤çåçæ°æ® |
| | | Brand bModel = getBrandModelFromList(data.getBrand(),brandList); |
| | |
| | | goods.setBrandId(bModel.getId()); |
| | | } |
| | | //å¤çåè¡¨æ°æ® |
| | | BaseCategory cModel = getCateModelFromList(data.getBrand(),ossModel,data.getCategoryImg(), cateList); |
| | | 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, 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 BigDecimal getPriceRate() { |
| | | try { |
| | | |
| | | BigDecimal rate = new BigDecimal(Double.parseDouble(systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.GOODS_PRICE_RATE).getCode())); |
| | | return rate; |
| | | }catch (Exception e){ |
| | | return new BigDecimal(1.2); |
| | | } |
| | | |
| | | } |
| | | |
| | | private void dealBgImgAll(OssModel ossModel, Integer id, BaseData data) { |
| | | int i =0; |
| | | 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,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; |
| | | } |
| | | |
| | | private OssModel initOssModel() { |
| | |
| | | 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.setAccessKey(systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_IMG).getCode()); |
| | | |
| | | model.setGoodsFolder(systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_IMG).getCode()); |
| | | return model; |
| | | } |
| | | |
| | |
| | | String val =(String) item.invoke(data); |
| | | dealCateParam(cateId,goodsId,val.toString(),cateList); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | // throw new RuntimeException(e); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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(); |
| | |
| | | */ |
| | | |
| | | 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 |
| | | */ |
| | | |
| | | private BaseCategory getCateModelFromList(String name,OssModel ossModel, String img,List<BaseCategory> list) { |
| | | 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())){ |
| | |
| | | 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,img)); |
| | | //æå
¥æ°çåçä¿¡æ¯ |
| | | baseCategoryMapper.insert(model); |