思迅同步代码优化
This commit is contained in:
parent
3c680bdf13
commit
f0cc3b4c08
@ -284,11 +284,11 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
private void syncAllGoods(DataBaseInfo dataBaseInfo, CommentModel commentModel){
|
private void syncAllGoods(DataBaseInfo dataBaseInfo, CommentModel commentModel){
|
||||||
String where="where 1=1";
|
String where="where 1=1";
|
||||||
Integer total =0;
|
Integer total =0;
|
||||||
|
String parentId=getAndCacheTree(dataBaseInfo,dataBaseInfo.getCategoryName());//加载缓存用的
|
||||||
if(DicEnum.SYNCTYPE_02.getCode().equals(dataBaseInfo.getSyncType())){
|
if(DicEnum.SYNCTYPE_02.getCode().equals(dataBaseInfo.getSyncType())){
|
||||||
if (StringUtils.isNotEmpty(dataBaseInfo.getCategoryName())) {
|
if (StringUtils.isNotEmpty(dataBaseInfo.getCategoryName())) {
|
||||||
String parentId=getAndCacheTree(dataBaseInfo,dataBaseInfo.getCategoryName());
|
|
||||||
String childrens= commonCache.get(CommonCache.CACHE_CATEGROY+parentId);
|
|
||||||
//syncGoodsSearchModel.setItemClsno(childrens);
|
//syncGoodsSearchModel.setItemClsno(childrens);
|
||||||
|
String childrens= commonCache.get(CommonCache.CACHE_CATEGROY+parentId);
|
||||||
where += " and b.item_clsno in ('" + childrens + "')";
|
where += " and b.item_clsno in ('" + childrens + "')";
|
||||||
}
|
}
|
||||||
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
||||||
@ -336,7 +336,6 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
folders.add(String.valueOf(i));
|
folders.add(String.valueOf(i));
|
||||||
syncCount+=sxSyncGoods.size();
|
syncCount+=sxSyncGoods.size();
|
||||||
}
|
}
|
||||||
// folders.add(String.valueOf(2));
|
|
||||||
//folders.add(String.valueOf(4));
|
//folders.add(String.valueOf(4));
|
||||||
//folders.add(String.valueOf(5));
|
//folders.add(String.valueOf(5));
|
||||||
log.info("商品分类总共有{}条数据,同步完成{}条",total,syncCount);
|
log.info("商品分类总共有{}条数据,同步完成{}条",total,syncCount);
|
||||||
|
|||||||
@ -149,4 +149,6 @@ public interface ShopBaseProductCategoryService extends IBaseService<ShopBasePro
|
|||||||
*/
|
*/
|
||||||
Map getCategoryListByStoreId(String storeId);
|
Map getCategoryListByStoreId(String storeId);
|
||||||
|
|
||||||
|
void clearCategoryCache(String storeId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1252,10 +1252,18 @@ public class ShopBaseProductCategoryServiceImpl extends BaseServiceImpl<ShopBase
|
|||||||
map=new HashMap();
|
map=new HashMap();
|
||||||
for (Map category_row : category_tmp_rows) {
|
for (Map category_row : category_tmp_rows) {
|
||||||
map.put(category_row.get("category_name"),category_row.get("category_id"));
|
map.put(category_row.get("category_name"),category_row.get("category_id"));
|
||||||
|
map.put(category_row.get("category_id"),category_row.get("type_id"));
|
||||||
}
|
}
|
||||||
if (CollUtil.isNotEmpty(map)) redisService.set(cache_key, map, 60 * 60);
|
if (CollUtil.isNotEmpty(map)) redisService.set(cache_key, map, 60 * 60);
|
||||||
|
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clearCategoryCache(String storeId) {
|
||||||
|
String cache_key = String.format("storeCategory:%s", storeId);
|
||||||
|
// 设置cache
|
||||||
|
redisService.del(cache_key);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -178,6 +178,9 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMappe
|
|||||||
int count=0;
|
int count=0;
|
||||||
for (int i = 0; i < shopNumberSeqList.size(); i++) {
|
for (int i = 0; i < shopNumberSeqList.size(); i++) {
|
||||||
shopNumberSeqMapper.myUpdateSeq(shopNumberSeqList.get(i));
|
shopNumberSeqMapper.myUpdateSeq(shopNumberSeqList.get(i));
|
||||||
|
Long number = shopNumberSeqList.get(i).getNumber();
|
||||||
|
shopNumberSeqList.get(i).setNumber(number);
|
||||||
|
this.edit(shopNumberSeqList.get(i));
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
log.info("更新成功{}条数据",count);
|
log.info("更新成功{}条数据",count);
|
||||||
|
|||||||
@ -107,12 +107,12 @@ public class SyncThirdDataController {
|
|||||||
@RequestParam String appKey,
|
@RequestParam String appKey,
|
||||||
@RequestParam String sign,
|
@RequestParam String sign,
|
||||||
@RequestParam String syncType) {
|
@RequestParam String syncType) {
|
||||||
new Thread(new Runnable() {
|
// new Thread(new Runnable() {
|
||||||
@Override
|
// @Override
|
||||||
public void run() {
|
// public void run() {
|
||||||
syncThirdDataService.SyncReadSxFileData(appKey,sign,syncType,folders);
|
syncThirdDataService.SyncReadSxFileData(appKey,sign,syncType,folders);
|
||||||
}
|
// }
|
||||||
}).start();
|
// }).start();
|
||||||
return new ThirdApiRes().success("服务器已处理文件");
|
return new ThirdApiRes().success("服务器已处理文件");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -574,10 +574,11 @@ public abstract class SyncBaseThirdSxAbstract{
|
|||||||
shopProductIndex.setCoupon_type_id(0);// product_assist_data // 辅助属性值列(DOT)
|
shopProductIndex.setCoupon_type_id(0);// product_assist_data // 辅助属性值列(DOT)
|
||||||
shopProductIndex.setProduct_transport_id(String.valueOf(StateCode.DELIVERY_TYPE_SAME_CITY));
|
shopProductIndex.setProduct_transport_id(String.valueOf(StateCode.DELIVERY_TYPE_SAME_CITY));
|
||||||
|
|
||||||
ShopBaseProductCategory category_row = productCategoryService.get(categoryId);
|
if(categoryId!=0){
|
||||||
if (ObjectUtil.isNotEmpty(category_row)) {
|
Integer typeId = (Integer) categoryMap.get(categoryId);
|
||||||
Integer type_id = category_row.getType_id();
|
if (ObjectUtil.isNotEmpty(typeId)) {
|
||||||
shopProductIndex.setType_id(type_id);
|
shopProductIndex.setType_id(typeId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// shop_product_data
|
// shop_product_data
|
||||||
@ -668,7 +669,7 @@ public abstract class SyncBaseThirdSxAbstract{
|
|||||||
QueryWrapper<ShopProductBase> baseWrapper=new QueryWrapper<>();
|
QueryWrapper<ShopProductBase> baseWrapper=new QueryWrapper<>();
|
||||||
baseWrapper.select("MAX(product_id) as product_id");
|
baseWrapper.select("MAX(product_id) as product_id");
|
||||||
ShopProductBase shopProductBase= shopProductBaseServiceImpl.getOne(baseWrapper);
|
ShopProductBase shopProductBase= shopProductBaseServiceImpl.getOne(baseWrapper);
|
||||||
Long productId= shopProductBase.getProduct_id()+1;
|
Long productId= shopProductBase.getProduct_id();
|
||||||
//QueryWrapper<ShopNumberSeq> baseSeWrapper=new QueryWrapper();
|
//QueryWrapper<ShopNumberSeq> baseSeWrapper=new QueryWrapper();
|
||||||
//baseSeWrapper.eq("prefix", "product_id");
|
//baseSeWrapper.eq("prefix", "product_id");
|
||||||
ShopNumberSeq shopNumberSeqBase= new ShopNumberSeq();
|
ShopNumberSeq shopNumberSeqBase= new ShopNumberSeq();
|
||||||
@ -679,7 +680,7 @@ public abstract class SyncBaseThirdSxAbstract{
|
|||||||
QueryWrapper<ShopProductItem> itemQuery=new QueryWrapper<>();
|
QueryWrapper<ShopProductItem> itemQuery=new QueryWrapper<>();
|
||||||
itemQuery.select("MAX(item_id) as item_id");
|
itemQuery.select("MAX(item_id) as item_id");
|
||||||
ShopProductItem shopProductItem= shopProductItemServiceImpl.getOne(itemQuery);
|
ShopProductItem shopProductItem= shopProductItemServiceImpl.getOne(itemQuery);
|
||||||
Long itemtId= shopProductItem.getItem_id()+1;
|
Long itemtId= shopProductItem.getItem_id();
|
||||||
// QueryWrapper<ShopNumberSeq> itemWrapper=new QueryWrapper();
|
// QueryWrapper<ShopNumberSeq> itemWrapper=new QueryWrapper();
|
||||||
//itemWrapper.eq("prefix", "item_id");
|
//itemWrapper.eq("prefix", "item_id");
|
||||||
ShopNumberSeq shopNumberSeqItem= new ShopNumberSeq();
|
ShopNumberSeq shopNumberSeqItem= new ShopNumberSeq();
|
||||||
|
|||||||
@ -43,6 +43,7 @@ import com.suisung.mall.common.utils.I18nUtil;
|
|||||||
|
|
||||||
import com.suisung.mall.common.utils.StringUtils;
|
import com.suisung.mall.common.utils.StringUtils;
|
||||||
import com.suisung.mall.core.web.service.RedisService;
|
import com.suisung.mall.core.web.service.RedisService;
|
||||||
|
import com.suisung.mall.shop.base.service.ShopBaseProductCategoryService;
|
||||||
import com.suisung.mall.shop.number.service.ShopNumberSeqService;
|
import com.suisung.mall.shop.number.service.ShopNumberSeqService;
|
||||||
import com.suisung.mall.shop.page.service.OssService;
|
import com.suisung.mall.shop.page.service.OssService;
|
||||||
import com.suisung.mall.shop.sixun.dao.SxDataDao;
|
import com.suisung.mall.shop.sixun.dao.SxDataDao;
|
||||||
@ -72,6 +73,7 @@ import org.springframework.http.HttpHeaders;
|
|||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -122,7 +124,8 @@ public class SyncThirdDataServiceImpl extends SyncBaseThirdSxAbstract implements
|
|||||||
|
|
||||||
private final static String CLIENTFILEPATH="sxclient/";
|
private final static String CLIENTFILEPATH="sxclient/";
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ShopBaseProductCategoryService shopBaseProductCategoryService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量保存商品的分类
|
* 批量保存商品的分类
|
||||||
@ -452,6 +455,7 @@ public class SyncThirdDataServiceImpl extends SyncBaseThirdSxAbstract implements
|
|||||||
* @param folders
|
* @param folders
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@Async
|
||||||
public void SyncReadSxFileData(String appKey, String sign, String syncType, List<String> folders) {
|
public void SyncReadSxFileData(String appKey, String sign, String syncType, List<String> folders) {
|
||||||
SyncApp syncApp = syncAppService.getOne(new LambdaQueryWrapper<SyncApp>()
|
SyncApp syncApp = syncAppService.getOne(new LambdaQueryWrapper<SyncApp>()
|
||||||
.select(SyncApp::getApp_key, SyncApp::getApp_secret,SyncApp::getStore_id)
|
.select(SyncApp::getApp_key, SyncApp::getApp_secret,SyncApp::getStore_id)
|
||||||
@ -473,6 +477,7 @@ public class SyncThirdDataServiceImpl extends SyncBaseThirdSxAbstract implements
|
|||||||
});
|
});
|
||||||
syncPrimaryKey();
|
syncPrimaryKey();
|
||||||
shopNumberSeqService.clearKey();
|
shopNumberSeqService.clearKey();
|
||||||
|
shopBaseProductCategoryService.clearCategoryCache(storeId);
|
||||||
ExecutorService executor = Executors.newFixedThreadPool(6);
|
ExecutorService executor = Executors.newFixedThreadPool(6);
|
||||||
List<Future<?>> futures = new ArrayList<>();
|
List<Future<?>> futures = new ArrayList<>();
|
||||||
// 提交任务
|
// 提交任务
|
||||||
@ -488,7 +493,7 @@ public class SyncThirdDataServiceImpl extends SyncBaseThirdSxAbstract implements
|
|||||||
while (true){
|
while (true){
|
||||||
count++;
|
count++;
|
||||||
String taskName=newFolders.get(taskId);
|
String taskName=newFolders.get(taskId);
|
||||||
String fileName="good_"+taskId+".txt";
|
String fileName="good_"+(taskId+1)+".txt";
|
||||||
JSONArray jsonArray=new ThreadFileUtils().processFolder(taskName,newFolders.get(taskId));
|
JSONArray jsonArray=new ThreadFileUtils().processFolder(taskName,newFolders.get(taskId));
|
||||||
try {
|
try {
|
||||||
baseSaveOrUpdateGoodsBatch(jsonArray,storeId);
|
baseSaveOrUpdateGoodsBatch(jsonArray,storeId);
|
||||||
@ -497,6 +502,7 @@ public class SyncThirdDataServiceImpl extends SyncBaseThirdSxAbstract implements
|
|||||||
return "成功" + taskId;
|
return "成功" + taskId;
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
if(count<2){
|
if(count<2){
|
||||||
|
//Thread.sleep(100);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
fails.getAndIncrement();
|
fails.getAndIncrement();
|
||||||
@ -519,6 +525,7 @@ public class SyncThirdDataServiceImpl extends SyncBaseThirdSxAbstract implements
|
|||||||
//记录到数据库
|
//记录到数据库
|
||||||
syncPrimaryKey();
|
syncPrimaryKey();
|
||||||
shopNumberSeqService.clearKey();
|
shopNumberSeqService.clearKey();
|
||||||
|
shopBaseProductCategoryService.clearCategoryCache(storeId);
|
||||||
List<SyncFileLog> syncFileLogs=new ArrayList<>();
|
List<SyncFileLog> syncFileLogs=new ArrayList<>();
|
||||||
for (int i = 0; i < failFolders.size(); i++) {
|
for (int i = 0; i < failFolders.size(); i++) {
|
||||||
String path=failFolders.get(i);
|
String path=failFolders.get(i);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user