fix
Helius
2021-08-12 4705f9b4084d9ccddb601569b223f0fb41778a94
zq-erp/src/main/java/com/matrix/system/dataMove/SjfDataMoveServiceImpl.java
@@ -4,12 +4,21 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.matrix.component.redis.RedisClient;
import com.matrix.core.tools.StringUtils;
import com.matrix.system.shopXcx.bean.ShopProduct;
import com.matrix.system.shopXcx.bean.ShopProductAttribute;
import com.matrix.system.shopXcx.bean.ShopProductImg;
import com.matrix.system.shopXcx.bean.ShopSku;
import com.matrix.system.shopXcx.dao.ShopProductAttributeDao;
import com.matrix.system.shopXcx.dao.ShopProductDao;
import com.matrix.system.shopXcx.dao.ShopProductImgDao;
import com.matrix.system.shopXcx.dao.ShopSkuDao;
import org.apache.commons.lang3.StringEscapeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
/**
@@ -24,6 +33,12 @@
    @Autowired
    private ShopProductAttributeDao shopProductAttributeDao;
    @Autowired
    private ShopProductDao shopProductDao;
    @Autowired
    private ShopSkuDao shopSkuDao;
    @Autowired
    private ShopProductImgDao shopProductImgDao;
    @Autowired
    private RedisClient redisClient;
@@ -48,21 +63,23 @@
    @DS("slave")
    public List<ShopProductAttribute> oldProductAttr() {
        List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from cere_product_classify where classify_pid=0");
        List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from eb_store_category where is_show=1 and pid=0");
        List<ShopProductAttribute> list = new ArrayList<>();
        for (Map<String, Object> map : maps) {
            Object classifyId = map.get("classify_id");
            Object classifyId = map.get("id");
            List<Map<String, Object>> subMaps = jdbcTemplate.queryForList("select * from cere_product_classify where classify_pid=" + classifyId.toString());
            List<Map<String, Object>> subMaps = jdbcTemplate.queryForList("select * from eb_store_category where pid=" + classifyId.toString());
            List<ShopProductAttribute> child = new ArrayList<>();
            for (Map<String, Object> subMap : subMaps) {
                ShopProductAttribute subAttr = new ShopProductAttribute();
                subAttr.setAttrId((int) Long.parseLong(subMap.get("classify_id").toString()));
                subAttr.setParentId(Integer.parseInt(subMap.get("classify_pid").toString()));
                String subName = subMap.get("classify_name").toString();
                subAttr.setAttrId((int) Long.parseLong(subMap.get("id").toString()));
                subAttr.setParentId(Integer.parseInt(subMap.get("pid").toString()));
                String subName = subMap.get("cate_name").toString();
                subAttr.setAttrName(subName);
                subAttr.setAttrCode(StringUtils.toHanyuPinyin(subName));
                subAttr.setAttrUrl(map.get("pic").toString());
                subAttr.setCreateBy("善吉凡");
                subAttr.setUpdateBy("善吉凡");
@@ -70,15 +87,17 @@
                subAttr.setUpdateTime(new Date());
                subAttr.setShopId(shopId);
                subAttr.setCompanyId(companyId);
                list.add(subAttr);
                child.add(subAttr);
            }
            ShopProductAttribute attr = new ShopProductAttribute();
            attr.setAttrId((int) Long.parseLong(map.get("classify_id").toString()));
            attr.setParentId(Integer.parseInt(map.get("classify_pid").toString()));
            String name = map.get("classify_name").toString();
            attr.setAttrId((int) Long.parseLong(map.get("id").toString()));
            attr.setParentId(198);
            attr.setAttrUrl(map.get("pic").toString());
            String name = map.get("cate_name").toString();
            attr.setAttrName(name);
            attr.setAttrCode(StringUtils.toHanyuPinyin(name));
            attr.setChild(child);
            attr.setCreateBy("善吉凡");
            attr.setUpdateBy("善吉凡");
@@ -87,7 +106,6 @@
            attr.setShopId(shopId);
            attr.setCompanyId(companyId);
            list.add(attr);
        }
        return list;
    }
@@ -98,10 +116,121 @@
            Integer oldId = shopProductAttribute.getAttrId();
            shopProductAttribute.setAttrId(null);
            shopProductAttributeDao.insert(shopProductAttribute);
            for (ShopProductAttribute productAttribute : shopProductAttribute.getChild()) {
                Integer oldChildId = productAttribute.getAttrId();
                productAttribute.setAttrId(null);
                productAttribute.setParentId(shopProductAttribute.getAttrId());
                shopProductAttributeDao.insert(productAttribute);
                map.put(oldChildId, productAttribute.getAttrId());
            }
            map.put(oldId, shopProductAttribute.getAttrId());
        }
        redisClient.saveMapValue("attrIds", map);
    }
    @DS("slave")
    public List<ShopProduct> oldProduct() {
        List<Map<String, Object>> products = jdbcTemplate.queryForList("select * from eb_store_product where is_show=1 and is_del=0");
        List<ShopProduct> result = new ArrayList<>();
        for (Map<String, Object> product : products) {
            ShopProduct shopProduct = new ShopProduct();
            shopProduct.setCategoryId(Integer.parseInt(product.get("cate_id").toString()));
            shopProduct.setTitle(product.get("store_name").toString());
            shopProduct.setBriefIntroduction(product.get("store_info").toString());
            shopProduct.setImgMobile(product.get("image").toString());
            shopProduct.setPrice(Double.parseDouble(product.get("price").toString()));
            shopProduct.setMarkedPrice(Double.parseDouble(product.get("ot_price").toString()));
            shopProduct.setRsVolume(Integer.parseInt(product.get("sales").toString()));
            shopProduct.setDsVolume(Integer.parseInt(product.get("ficti").toString()));
            String imagesStr = product.get("slider_image").toString();
            List<String> images = JSONObject.parseArray(imagesStr, String.class);
            int i = 1;
            List<ShopProductImg> imgs = new ArrayList<>();
            for (String image : images) {
                ShopProductImg shopProductImg = new ShopProductImg();
                shopProductImg.setImgPath(image);
                shopProductImg.setSort(i);
                shopProductImg.setCreateBy("善吉凡");
                shopProductImg.setUpdateBy("善吉凡");
                shopProductImg.setCreateTime(new Date());
                shopProductImg.setUpdateTime(new Date());
                i++;
                imgs.add(shopProductImg);
            }
            shopProduct.setProductImgs(imgs);
            // 商品属性 即sku
            Map<String, Object> attrValue = jdbcTemplate.queryForMap("select * from eb_store_product_attr_value where product_id=" + product.get("id"));
            ShopSku shopSku = new ShopSku();
            shopSku.setName(product.get("store_name").toString());
            shopSku.setStock(Integer.parseInt(attrValue.get("stock").toString()));
            shopSku.setImgPath(attrValue.get("image").toString());
            shopSku.setPrice(new BigDecimal(attrValue.get("price").toString()));
            shopSku.setCreateBy("善吉凡");
            shopSku.setUpdateBy("善吉凡");
            shopSku.setCreateTime(new Date());
            shopSku.setUpdateTime(new Date());
            shopSku.setScore(0);
            shopSku.setSort(0);
            shopSku.setSealCount(Integer.parseInt(product.get("ficti").toString()));
            List<ShopSku> skus = new ArrayList<>();
            skus.add(shopSku);
            shopProduct.setSkus(skus);
            Map<String, Object> desc = jdbcTemplate.queryForMap("select * from eb_store_product_description where product_id=" + product.get("id"));
            shopProduct.setMobileDetails(desc.get("description").toString());
            shopProduct.setDelFlag(2);
            shopProduct.setShopIds(shopId.toString());
            shopProduct.setCompanyId(companyId);
            shopProduct.setAbleSales(1);
            shopProduct.setAbleScorePay(2);
            shopProduct.setStatus(1);
            shopProduct.setCreateBy("善吉凡");
            shopProduct.setUpdateBy("善吉凡");
            shopProduct.setCreateTime(new Date());
            shopProduct.setUpdateTime(new Date());
            result.add(shopProduct);
        }
        return result;
    }
    @Transactional
    public void newShopProduct(List<ShopProduct> list) {
        String sysUsersIds = redisClient.getCachedValue("attrIds");
        Map attrIds = JSONObject.parseObject(sysUsersIds, Map.class);
        for (ShopProduct shopProduct : list) {
            Object o = attrIds.get(shopProduct.getCategoryId().toString());
            shopProduct.setCategoryId(Integer.parseInt(o.toString()));
            shopProduct.setAttrValues("");
            shopProduct.setScoreCategoryId(202L);
            shopProduct.setId(null);
            String s = StringEscapeUtils.unescapeHtml4(shopProduct.getMobileDetails());
            shopProduct.setMobileDetails(s);
            shopProductDao.insert(shopProduct);
            for (ShopProductImg productImg : shopProduct.getProductImgs()) {
                productImg.setPId(shopProduct.getId());
                shopProductImgDao.insert(productImg);
            }
            for (ShopSku skus : shopProduct.getSkus()) {
                skus.setPId(shopProduct.getId());
                shopSkuDao.insert(skus);
            }
        }
    }
}