思迅同步活动问题修复
This commit is contained in:
parent
da259b15e9
commit
ce974276a8
@ -21,19 +21,9 @@ public class WebController {
|
||||
@Autowired
|
||||
private SxDataService sxDataService;
|
||||
|
||||
@RequestMapping("/test")
|
||||
@RequestMapping("/upload")
|
||||
public void upload(){
|
||||
CommentModel commentModel= sxDataService.getCommentModel();
|
||||
DataBaseInfo dataBaseInfo=sxDataService.getDataBaseInfo(commentModel);
|
||||
if(dataBaseInfo==null){
|
||||
log.error("syncGoods dataBaseInfo is null");
|
||||
return;
|
||||
}
|
||||
if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){
|
||||
commentModel.setSyncTime(DateUtil.formatDateTime(dataBaseInfo.getRefreshTime()));
|
||||
}
|
||||
// sxDataService.getCategoryChildren(new DataBaseInfo(),"0101");
|
||||
System.out.println(sxDataService.getCategoryChildren(dataBaseInfo,"01"));
|
||||
System.out.println("upload");
|
||||
//webClientService.uploudSxData();
|
||||
}
|
||||
|
||||
@ -41,32 +31,14 @@ public class WebController {
|
||||
public void synBrand(){
|
||||
log.info("synBrand");
|
||||
// sxDataService.getAppSign();
|
||||
CommentModel commentModel= sxDataService.getCommentModel();
|
||||
DataBaseInfo dataBaseInfo=sxDataService.getDataBaseInfo(commentModel);
|
||||
if(dataBaseInfo==null){
|
||||
log.error("syncGoods dataBaseInfo is null");
|
||||
return;
|
||||
}
|
||||
if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){
|
||||
commentModel.setSyncTime(DateUtil.formatDateTime(dataBaseInfo.getRefreshTime()));
|
||||
}
|
||||
sxDataService.SyncBranchList(dataBaseInfo,sxDataService.getCommentModel());
|
||||
sxDataService.SyncBranchList(new DataBaseInfo(),sxDataService.getCommentModel());
|
||||
}
|
||||
|
||||
@RequestMapping("/syncCategory")
|
||||
public void syncCategory(){
|
||||
log.info("syncCategory");
|
||||
//sxDataService.getAppSign();
|
||||
CommentModel commentModel= sxDataService.getCommentModel();
|
||||
DataBaseInfo dataBaseInfo=sxDataService.getDataBaseInfo(commentModel);
|
||||
if(dataBaseInfo==null){
|
||||
log.error("syncGoods dataBaseInfo is null");
|
||||
return;
|
||||
}
|
||||
if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){
|
||||
commentModel.setSyncTime(DateUtil.formatDateTime(dataBaseInfo.getRefreshTime()));
|
||||
}
|
||||
sxDataService.SyncCategory(dataBaseInfo,sxDataService.getCommentModel());
|
||||
sxDataService.SyncCategory(new DataBaseInfo(),sxDataService.getCommentModel());
|
||||
}
|
||||
|
||||
@RequestMapping("/syncGoods")
|
||||
@ -130,19 +102,7 @@ public class WebController {
|
||||
|
||||
@RequestMapping("/syncStoreData")
|
||||
public void syncStoreData(){
|
||||
CommentModel commentModel= sxDataService.getCommentModel();
|
||||
DataBaseInfo dataBaseInfo=sxDataService.getDataBaseInfo(commentModel);
|
||||
if(dataBaseInfo==null){
|
||||
log.error("syncGoods dataBaseInfo is null");
|
||||
return;
|
||||
}
|
||||
if(StringUtils.isEmpty(commentModel.getSyncTime())){
|
||||
commentModel =sxDataService.getCommentModel();
|
||||
}
|
||||
if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){
|
||||
commentModel.setSyncTime(DateUtil.formatDateTime(dataBaseInfo.getRefreshTime()));
|
||||
}
|
||||
sxDataService.syncStoreData(dataBaseInfo,commentModel);
|
||||
sxDataService.syncStoreData(new DataBaseInfo(),sxDataService.getCommentModel());
|
||||
}
|
||||
|
||||
|
||||
@ -158,7 +118,7 @@ public class WebController {
|
||||
commentModel =sxDataService.getCommentModel();
|
||||
}
|
||||
if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){
|
||||
commentModel.setSyncTime(DateUtil.formatDate(dataBaseInfo.getRefreshTime()));
|
||||
commentModel.setSyncTime(DateUtil.formatDateTime(dataBaseInfo.getRefreshTime()));
|
||||
}
|
||||
sxDataService.syncAtive(new DataBaseInfo(),commentModel);
|
||||
// sxDataService.syncAtive(new DataBaseInfo(),new CommentModel());
|
||||
@ -176,7 +136,7 @@ public class WebController {
|
||||
commentModel =sxDataService.getCommentModel();
|
||||
}
|
||||
if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){
|
||||
commentModel.setSyncTime(DateUtil.formatDate(dataBaseInfo.getRefreshTime()));
|
||||
commentModel.setSyncTime(DateUtil.formatDateTime(dataBaseInfo.getRefreshTime()));
|
||||
}
|
||||
sxDataService.syncAtiveShops(new DataBaseInfo(),commentModel);
|
||||
//sxDataService.syncAtiveShops(new DataBaseInfo(),new CommentModel());
|
||||
|
||||
@ -567,7 +567,7 @@ public class SxDataDao extends BaseDao{
|
||||
activeDto.setActivityTypeId(3);
|
||||
activeDto.setActiveMaxDesList(activeMaxDesList);
|
||||
}
|
||||
activeDto.setFlowNo(rs.getString("flow_no"));
|
||||
activeDto.setFlowNo(rs.getString("other3"));
|
||||
activeDto.setActivityReleasetime(rs.getDate("oper_date"));
|
||||
activeDto.setActivityStarttime(rs.getDate("start_date"));
|
||||
activeDto.setActivityEndtime(rs.getDate("end_date"));
|
||||
@ -657,9 +657,10 @@ public class SxDataDao extends BaseDao{
|
||||
activeShopInfo.setActivityName("满"+total1+"减"+max1+",满"+total2+"减"+max2);
|
||||
activeShopInfo.setActivityTypeId(3);
|
||||
}
|
||||
activeShopInfo.setActivityItemMinQuantity(rs.getBigDecimal("sale_qty"));
|
||||
activeShopInfo.setActivityStarttime(rs.getDate("start_date"));
|
||||
activeShopInfo.setActivityEndtime(rs.getDate("end_date"));
|
||||
activeShopInfo.setFlowNo(rs.getString("flow_no"));
|
||||
activeShopInfo.setFlowNo(rs.getString("other3"));
|
||||
if(DateUtil.compare(activeShopInfo.getActivityEndtime(),DateUtil.date())>0){
|
||||
activeShopInfo.setActivityState(1);//正常进行中
|
||||
}else {
|
||||
|
||||
@ -25,12 +25,13 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.util.StreamUtils;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
@ -38,6 +39,7 @@ import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@ -73,7 +75,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
*/
|
||||
@Override
|
||||
public void SyncCategory(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
||||
// dataBaseInfo= getDataBaseInfo(commentModel);
|
||||
dataBaseInfo= getDataBaseInfo(commentModel);
|
||||
// 记录总数
|
||||
Integer total = sxDataDao.getTBdItemClsTotal(dataBaseInfo);
|
||||
if(total==0){
|
||||
@ -98,7 +100,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
String sign=CommonUtil.generateOpenSign(jsonString,commentModel.getAppKey(),commentModel.getAppId());
|
||||
String sign=CommonUtil.generateOpenSign(jsonString,commentModel.getAppId(),commentModel.getAppKey());
|
||||
log.info("sign:{}",sign);
|
||||
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_CATEGORY
|
||||
+"?appKey="+commentModel.getAppKey()
|
||||
@ -133,11 +135,9 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
syncAllGoods(dataBaseInfo, commentModel);
|
||||
break;
|
||||
case "02"://增量 todo test
|
||||
String sycnTime=commentModel.getSyncTime();
|
||||
syncIncrementAddGoods(dataBaseInfo, commentModel);//同步新商品
|
||||
// syncIncrementModifyGoods(dataBaseInfo, commentModel);
|
||||
syncIncrementStock(dataBaseInfo, commentModel);//同步库存
|
||||
syncFlowPrice(dataBaseInfo, commentModel,sycnTime);//同步调价单
|
||||
syncIncrementAddGoods(dataBaseInfo, commentModel);
|
||||
syncIncrementModifyGoods(dataBaseInfo, commentModel);
|
||||
syncIncrementStock(dataBaseInfo, commentModel);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -150,7 +150,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
*/
|
||||
@Override
|
||||
public void SyncBranchList(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
||||
// dataBaseInfo= getDataBaseInfo(commentModel);
|
||||
dataBaseInfo= getDataBaseInfo(commentModel);
|
||||
List<BrandModel> brandModels= sxDataDao.getBdBrandList(dataBaseInfo);
|
||||
if(brandModels!=null&&brandModels.size()>0){
|
||||
String jsonString ="";
|
||||
@ -163,7 +163,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
String sign=CommonUtil.generateOpenSign(jsonString,commentModel.getAppKey(),commentModel.getAppId());
|
||||
String sign=CommonUtil.generateOpenSign(jsonArray.toString(),commentModel.getAppId(),commentModel.getAppKey());
|
||||
log.info("sign={}",sign);
|
||||
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_BRAND
|
||||
+"?appKey="+commentModel.getAppKey()
|
||||
@ -184,7 +184,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
*/
|
||||
@Override
|
||||
public void SyncVipList(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
||||
// dataBaseInfo= getDataBaseInfo(commentModel);
|
||||
dataBaseInfo= getDataBaseInfo(commentModel);
|
||||
String where="where mobile is not null and mobile <>'' ";
|
||||
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
||||
where+="and oper_date > '"+commentModel.getSyncTime()+"'";
|
||||
@ -207,11 +207,10 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
memberList=ConverList(sxSyncVipList);
|
||||
Gson gson=new Gson();
|
||||
String jsonString = gson.toJson(memberList);
|
||||
String sign=CommonUtil.generateOpenSign(jsonString,commentModel.getAppKey(),commentModel.getAppId());
|
||||
String sign=CommonUtil.generateOpenSign(jsonString,commentModel.getAppId(),commentModel.getAppKey());
|
||||
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_MEMBER
|
||||
+"?appKey="+commentModel.getAppKey()
|
||||
+"&sign="+sign,memberList);//todo 后期改为文件传输
|
||||
|
||||
if (!HttpUtils.SUCCESSCODE.equals(code)) {
|
||||
continue;
|
||||
}
|
||||
@ -239,26 +238,6 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
return parentId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取父节点下的子节点
|
||||
* @param dataBaseInfo
|
||||
* @param parentId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String getCategoryChildren(DataBaseInfo dataBaseInfo,String parentId){
|
||||
List<SxSyncCategory> sxSyncCategories=new SxDataDao().findTBdItemClsList(dataBaseInfo);
|
||||
String childrens=commonCache.get(CommonCache.CACHE_CATEGROY+parentId);
|
||||
if(StringUtils.isEmpty(childrens)){
|
||||
log.info(JSONUtil.toJsonStr(buildTree(sxSyncCategories,parentId)));
|
||||
childrens=commonCache.get(CommonCache.CACHE_CATEGROY+parentId);
|
||||
if(StringUtils.isEmpty(childrens)){
|
||||
return parentId;
|
||||
}
|
||||
}
|
||||
return childrens;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建树节点
|
||||
* @param sxSyncCategories
|
||||
@ -282,7 +261,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
public List<SxSyncCategory> getRootNode(List<SxSyncCategory> sxSyncCategories){
|
||||
List<SxSyncCategory> rootNodeList=new ArrayList<>();
|
||||
for (SxSyncCategory node : sxSyncCategories) {
|
||||
if (StringUtils.isEmpty(node.getCls_parent())) {
|
||||
if (null==node.getCls_parent()) {
|
||||
rootNodeList.add(node);
|
||||
}
|
||||
}
|
||||
@ -310,60 +289,27 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
return root;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否有新增商品,有新增商品才同步分类
|
||||
* @param dataBaseInfo
|
||||
* @param refreshTime
|
||||
* @return
|
||||
*/
|
||||
public boolean isNewShop(DataBaseInfo dataBaseInfo, String refreshTime){
|
||||
String where="where b.status='1' ";
|
||||
where+=" and ( b.modify_date>'"+refreshTime+"' ";
|
||||
where+=" or b.build_date>'"+refreshTime+"') ";
|
||||
dataBaseInfo.setWhere(where);
|
||||
int total = sxDataDao.getTBditemInfoTotal(dataBaseInfo);
|
||||
log.info("判断库存数量,库存数量:{}",total);
|
||||
return total>0;
|
||||
}
|
||||
|
||||
/**
|
||||
*同步所有商品
|
||||
* @param dataBaseInfo
|
||||
* @param commentModel
|
||||
*/
|
||||
private void syncAllGoods(DataBaseInfo dataBaseInfo, CommentModel commentModel){
|
||||
//String where="where 1=1";
|
||||
String where="where shop.status='1'";
|
||||
String where="where 1=1";
|
||||
Integer total =0;
|
||||
String parentId=getAndCacheTree(dataBaseInfo,dataBaseInfo.getCategoryName());//加载缓存用的
|
||||
if(DicEnum.SYNCTYPE_02.getCode().equals(dataBaseInfo.getSyncType())){
|
||||
if (StringUtils.isNotEmpty(dataBaseInfo.getCategoryName())) {
|
||||
//syncGoodsSearchModel.setItemClsno(childrens);
|
||||
String childrens= commonCache.get(CommonCache.CACHE_CATEGROY+parentId);
|
||||
where += " and shop.item_clsno in ('" + childrens + "')";
|
||||
where += " and b.item_clsno in ('" + childrens + "')";
|
||||
}
|
||||
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
||||
where+=" and shop.modify_date>'"+commentModel.getSyncTime()+"' ";
|
||||
where+=" or shop.build_date>'"+commentModel.getSyncTime()+"' ";
|
||||
where+=" and b.modify_date>'"+commentModel.getSyncTime()+"' ";
|
||||
where+=" or b.build_date>'"+commentModel.getSyncTime()+"' ";
|
||||
}
|
||||
if(StringUtils.isNotEmpty(dataBaseInfo.getOperDate())){
|
||||
String stockOperateWhere=" ls.oper_date>'"+dataBaseInfo.getOperDate()+"' ";
|
||||
dataBaseInfo.setStockOperateWhere(stockOperateWhere);
|
||||
}
|
||||
if(StringUtils.isNotEmpty(dataBaseInfo.getPriceOperatiem())){
|
||||
where+=" and EXISTS ( " +
|
||||
" select " +
|
||||
" shop.item_no " +
|
||||
" from " +
|
||||
" t_pc_price_flow_detail tpfd " +
|
||||
" left join t_pc_price_flow_master tppfm " +
|
||||
" on " +
|
||||
" tpfd.sheet_no = tppfm.sheet_no " +
|
||||
" where " +
|
||||
" tppfm.valid_flag = '1' " +//有效
|
||||
" and shop.item_no=tpfd.item_no " +
|
||||
" and tppfm.oper_date >'"+dataBaseInfo.getPriceOperatiem()+"' " +
|
||||
" )";
|
||||
where+=" and ls.oper_date>'"+dataBaseInfo.getOperDate()+"' ";
|
||||
}
|
||||
dataBaseInfo.setWhere(where);
|
||||
// 记录总数
|
||||
@ -376,7 +322,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
log.info("暂无商品同步");
|
||||
return;
|
||||
}
|
||||
//where+=" and";
|
||||
where+=" and";
|
||||
dataBaseInfo.setWhere(where);
|
||||
|
||||
// 总页数
|
||||
@ -413,7 +359,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
+"&syncType="+DicEnum.MUAL_1.getCode()
|
||||
+"&refreshDateStr="+refreshDate,
|
||||
JSONUtil.parseArray(folders));
|
||||
log.info("商品总共有{}条数据,同步完成{}条",total,syncCount);
|
||||
log.info("商品分类总共有{}条数据,同步完成{}条",total,syncCount);
|
||||
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_GOODS_READ
|
||||
+"?appKey="+commentModel.getAppKey()
|
||||
+"&sign="+commentModel.getAppId()
|
||||
@ -439,7 +385,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
String fileName=fileUtils.getFileName(syncType,page,FileUtils.txtEnd);
|
||||
String filePath=file.getAbsolutePath();
|
||||
fileUtils.writeFile(filePath,fileName,content);
|
||||
String sign=CommonUtil.generateOpenSign(content,commentModel.getAppKey(),commentModel.getAppId());
|
||||
String sign=CommonUtil.generateOpenSign(content,commentModel.getAppId(),commentModel.getAppKey());
|
||||
commentModel.setSign(sign);
|
||||
return webClientService.uploudSxData(filePath+FileUtils.pathSeparator+fileName,commentModel,page.toString(),syncType);
|
||||
}
|
||||
@ -483,16 +429,6 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
syncAllGoods(dataBaseInfo,commentModel);
|
||||
}
|
||||
|
||||
/**
|
||||
* 增量同步 调价单变化
|
||||
*/
|
||||
private void syncFlowPrice(DataBaseInfo dataBaseInfo, CommentModel commentModel,String sycnTime){
|
||||
dataBaseInfo.setPriceOperatiem(sycnTime);
|
||||
commentModel.setSyncTime("");
|
||||
dataBaseInfo.setOperDate("");
|
||||
syncAllGoods(dataBaseInfo,commentModel);
|
||||
}
|
||||
|
||||
/**
|
||||
*获取特价商品
|
||||
* @param dataBaseInfo
|
||||
@ -634,24 +570,12 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
}
|
||||
log.info("文件下载目录: {}", downloadDirectory);
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
// headers.set("User-Agent", "Apifox/1.0.0 (https://apifox.com)");
|
||||
//headers.setAccept(Collections.singletonList(MediaType.ALL)); // 对应 */*
|
||||
// headers.set("Accept-Encoding", "gzip, deflate, br");
|
||||
// 可以添加其他Apifox可能发送的头部
|
||||
// headers.set("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8");
|
||||
headers.set("Connection", "keep-alive");
|
||||
|
||||
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(headers);
|
||||
HttpEntity<String> requestEntity = new HttpEntity<>(headers);
|
||||
String encryptedData = getPrimaryKey();
|
||||
String url = UriComponentsBuilder.fromHttpUrl(remoteIp + HttpUtils.URL_SYNC_GET_DOWNCLIENTJAR)
|
||||
.queryParam("primaryKey", encryptedData)
|
||||
.queryParam("clienVersionName", versionName)
|
||||
.toUriString();
|
||||
log.info("url:{}",url);
|
||||
// RestTemplate myRestTemplate = createUnsafeRestTemplate();
|
||||
|
||||
ResponseEntity<Resource> response = restTemplate.exchange(
|
||||
url,
|
||||
remoteIp+HttpUtils.URL_SYNC_GET_DOWNCLIENTJAR+"?primaryKey="+encryptedData
|
||||
+"&clienVersionName="+versionName,
|
||||
HttpMethod.GET,
|
||||
requestEntity,
|
||||
Resource.class);
|
||||
@ -701,12 +625,9 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
log.error("文件下载失败:{}",e.getMessage());
|
||||
return null;
|
||||
}
|
||||
File file=new File(downloadDirectory+originalFileName);
|
||||
return file.length()>0?downloadDirectory+originalFileName:null;
|
||||
return downloadDirectory+originalFileName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void checkForUpdates() {
|
||||
log.info("curentPath:{}",JarPathUtil.getRuntimePath());
|
||||
@ -752,7 +673,6 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
DataBaseInfo dataBaseInfo=new DataBaseInfo();
|
||||
if(null!=storeDbConfig){
|
||||
dataBaseInfo.setIp(storeDbConfig.getDbIp());
|
||||
dataBaseInfo.setUserName(storeDbConfig.getDbUsername());
|
||||
dataBaseInfo.setPassword(storeDbConfig.getDbPassword());
|
||||
dataBaseInfo.setDataBaseName(storeDbConfig.getDbName());
|
||||
dataBaseInfo.setDbPort(storeDbConfig.getDbPort());
|
||||
@ -761,8 +681,6 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
dataBaseInfo.setCategoryName(storeDbConfig.getCategoryName());
|
||||
dataBaseInfo.setRefreshTime(storeDbConfig.getRefreshTime());
|
||||
dataBaseInfo.setIsTowSync(storeDbConfig.getIsTowSync());
|
||||
dataBaseInfo.setShopGapTime(storeDbConfig.getShopGapTime());
|
||||
dataBaseInfo.setSaleAccount(storeDbConfig.getSaleAccount());
|
||||
return dataBaseInfo;
|
||||
}
|
||||
return new DataBaseInfo();
|
||||
@ -774,57 +692,28 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
log.info("不做双向同步数据库");
|
||||
return;
|
||||
}
|
||||
String saleAccount= sxDataDao.getTRmCashier(dataBaseInfo,dataBaseInfo.getSaleAccount());
|
||||
if(StringUtils.isEmpty(saleAccount)){
|
||||
log.error("需要配置商城收银人员");
|
||||
return;
|
||||
}
|
||||
JSONObject jsonObject= restTemplate.getForObject(remoteIp+HttpUtils.URL_SYNC_GET_STOR_DATA_RELEASE
|
||||
+"?appKey="+commentModel.getAppKey()
|
||||
+"&sign="+commentModel.getAppId(),JSONObject.class);
|
||||
// String jsonStr="[{\"consumeId\":\"1986611923814223873\",\"orderId\":\"DD_20251107_1\",\"productNumber\":\"31011\",\"unitPrice\":10.90,\"quantity\":1.500,\"saleAmount\":16.35,\"status\":0,\"storeId\":78,\"createTime\":\"2025-11-07 01:49:26\",\"updateTime\":\"2025-11-07 01:49:26\"},{\"consumeId\":\"1986611923814223872\",\"orderId\":\"DD_20251107_2\",\"productNumber\":\"6909409023853\",\"unitPrice\":1.00,\"quantity\":1.000,\"saleAmount\":1.00,\"status\":0,\"storeId\":78,\"createTime\":\"2025-11-07 01:49:26\",\"updateTime\":\"2025-11-07 01:49:26\"},{\"consumeId\":\"1986611923814223874\",\"orderId\":\"DD_20251107_1\",\"productNumber\":\"6909409023853\",\"unitPrice\":1.00,\"quantity\":2.000,\"saleAmount\":2.00,\"status\":0,\"storeId\":78,\"createTime\":\"2025-11-07 01:49:26\",\"updateTime\":\"2025-11-07 01:49:26\"}]";
|
||||
|
||||
if(null!=jsonObject.get("result")){
|
||||
// Map map=(Map)jsonObject.get("result");
|
||||
String jsonStr= jsonObject.getStr("result");
|
||||
List<ProductQuantityConsumptionDto> productQuantityConsumptionDtoList =
|
||||
JSONUtil.toList(jsonStr,ProductQuantityConsumptionDto.class);
|
||||
if(!productQuantityConsumptionDtoList.isEmpty()){
|
||||
Map map = productQuantityConsumptionDtoList.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
ProductQuantityConsumptionDto::getProductNumber,
|
||||
Collectors.reducing(
|
||||
BigDecimal.ZERO,
|
||||
ProductQuantityConsumptionDto::getQuantity,
|
||||
BigDecimal::add
|
||||
)
|
||||
));
|
||||
Map<String,ProductQuantityConsumptionDto> productQuantityConsumptionDtoMap=new HashMap<>();
|
||||
|
||||
productQuantityConsumptionDtoList.forEach(productQuantityConsumptionDto -> {
|
||||
productQuantityConsumptionDtoMap.put(productQuantityConsumptionDto.getOrderId()+"-"+productQuantityConsumptionDto.getProductNumber(),productQuantityConsumptionDto);
|
||||
});
|
||||
|
||||
sxDataDao.updateStoreData(dataBaseInfo,map,productQuantityConsumptionDtoMap,productQuantityConsumptionDtoList,commentModel);
|
||||
}else {
|
||||
log.info("无线上流水同步");
|
||||
}
|
||||
Map map=(Map)jsonObject.get("result");
|
||||
sxDataDao.updateStoreData(dataBaseInfo,map);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean syncAtive(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
||||
public void syncAtive(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
||||
String where="where 1=1";
|
||||
Integer total =0;
|
||||
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
||||
where+=" and b.oper_date>'"+commentModel.getSyncTime()+"' ";
|
||||
// where+=" or b.oper_date>'"+commentModel.getSyncTime()+"') ";
|
||||
where+=" and b.start_date>'"+commentModel.getSyncTime()+"' ";
|
||||
where+=" or b.oper_date>'"+commentModel.getSyncTime()+"' ";
|
||||
}
|
||||
dataBaseInfo.setWhere(where);
|
||||
total = sxDataDao.getNewActiveCount(dataBaseInfo);
|
||||
total = sxDataDao.getActiveCount(dataBaseInfo);
|
||||
if(total==0){
|
||||
log.info("暂无活动同步");
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
// 总页数
|
||||
int pages = CommonUtil.getPagesCount(total, SxDataDao.PAGESIZE);
|
||||
@ -833,13 +722,13 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
Date tenMinutesAgo = Date.from(Instant.now());//刷新时间
|
||||
Date refreshDate= DateUtil.date(tenMinutesAgo);
|
||||
for (int i = 1; i <=pages; i++) {
|
||||
List<ActiveDto> activeDtos= sxDataDao.getNewActiveList(dataBaseInfo,i,SxDataDao.PAGESIZE);
|
||||
List<ActiveDto> activeDtos= sxDataDao.getActiveList(dataBaseInfo,i,SxDataDao.PAGESIZE);
|
||||
Gson gson=new GsonBuilder()
|
||||
.setDateFormat("yyyy-MM-dd HH:mm:ss") // 设置全局 Date 格式
|
||||
.create();
|
||||
String jsonString= gson.toJson(activeDtos);
|
||||
JSONArray jsonArray = JSONUtil.parseArray(jsonString);
|
||||
String sign=CommonUtil.generateOpenSign(jsonString,commentModel.getAppKey(),commentModel.getAppId());
|
||||
String sign=CommonUtil.generateOpenSign(jsonString,commentModel.getAppId(),commentModel.getAppKey());
|
||||
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_ACTIVE
|
||||
+"?appKey="+commentModel.getAppKey()
|
||||
+"&sign="+sign, jsonArray);
|
||||
@ -849,7 +738,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
syncCount+=activeDtos.size();
|
||||
}
|
||||
log.info("成功同步活动数据:"+syncCount);
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -857,16 +746,13 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
String where="where 1=1";
|
||||
Integer total =0;
|
||||
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
||||
where+=" and t.oper_date>'"+commentModel.getSyncTime()+"' ";
|
||||
// where+=" or m.oper_date>'"+commentModel.getSyncTime()+"') ";
|
||||
where+=" and start_date>'"+commentModel.getSyncTime()+"' ";
|
||||
where+=" or oper_date>'"+commentModel.getSyncTime()+"' ";
|
||||
}
|
||||
|
||||
dataBaseInfo.setWhere(where);
|
||||
total = sxDataDao.getTotalSpecShop(dataBaseInfo);
|
||||
total = sxDataDao.getAllSpecCount(dataBaseInfo);
|
||||
if(total==0){
|
||||
HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_REFRESH
|
||||
+"?appKey="+commentModel.getAppKey()
|
||||
+"&sign="+commentModel.getAppId(), new JSONArray());
|
||||
log.info("暂无活动商品同步");
|
||||
return;
|
||||
}
|
||||
@ -877,14 +763,14 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
Date tenMinutesAgo = Date.from(Instant.now());//刷新时间
|
||||
Date refreshDate= DateUtil.date(tenMinutesAgo);//todo 要记录刷新时间
|
||||
for (int i = 1; i <=pages; i++) {
|
||||
List<ActiveShopInfo> activeDtos= sxDataDao.getSpecShops(dataBaseInfo,i,SxDataDao.PAGESIZE);
|
||||
List<ActiveShopInfo> activeDtos= sxDataDao.getAllSpecPriceList(dataBaseInfo,i,SxDataDao.PAGESIZE);
|
||||
Gson gson=new GsonBuilder()
|
||||
.setDateFormat("yyyy-MM-dd HH:mm:ss") // 设置全局 Date 格式
|
||||
.registerTypeAdapter(BigDecimal.class,new BigDecimalTypeAdapter())
|
||||
.create();
|
||||
String jsonString=gson.toJson(activeDtos);
|
||||
JSONArray jsonArray = JSONUtil.parseArray(jsonString);
|
||||
String sign=CommonUtil.generateOpenSign(jsonString,commentModel.getAppKey(),commentModel.getAppId());
|
||||
String sign=CommonUtil.generateOpenSign(jsonString,commentModel.getAppId(),commentModel.getAppKey());
|
||||
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_ACTIVE_SHOP
|
||||
+"?appKey="+commentModel.getAppKey()
|
||||
+"&sign="+sign, jsonArray);
|
||||
@ -910,4 +796,5 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user