思迅同步活动问题修复
This commit is contained in:
parent
da259b15e9
commit
ce974276a8
@ -21,19 +21,9 @@ public class WebController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SxDataService sxDataService;
|
private SxDataService sxDataService;
|
||||||
|
|
||||||
@RequestMapping("/test")
|
@RequestMapping("/upload")
|
||||||
public void upload(){
|
public void upload(){
|
||||||
CommentModel commentModel= sxDataService.getCommentModel();
|
System.out.println("upload");
|
||||||
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"));
|
|
||||||
//webClientService.uploudSxData();
|
//webClientService.uploudSxData();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,32 +31,14 @@ public class WebController {
|
|||||||
public void synBrand(){
|
public void synBrand(){
|
||||||
log.info("synBrand");
|
log.info("synBrand");
|
||||||
// sxDataService.getAppSign();
|
// sxDataService.getAppSign();
|
||||||
CommentModel commentModel= sxDataService.getCommentModel();
|
sxDataService.SyncBranchList(new DataBaseInfo(),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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/syncCategory")
|
@RequestMapping("/syncCategory")
|
||||||
public void syncCategory(){
|
public void syncCategory(){
|
||||||
log.info("syncCategory");
|
log.info("syncCategory");
|
||||||
//sxDataService.getAppSign();
|
//sxDataService.getAppSign();
|
||||||
CommentModel commentModel= sxDataService.getCommentModel();
|
sxDataService.SyncCategory(new DataBaseInfo(),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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/syncGoods")
|
@RequestMapping("/syncGoods")
|
||||||
@ -130,19 +102,7 @@ public class WebController {
|
|||||||
|
|
||||||
@RequestMapping("/syncStoreData")
|
@RequestMapping("/syncStoreData")
|
||||||
public void syncStoreData(){
|
public void syncStoreData(){
|
||||||
CommentModel commentModel= sxDataService.getCommentModel();
|
sxDataService.syncStoreData(new DataBaseInfo(),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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -158,7 +118,7 @@ public class WebController {
|
|||||||
commentModel =sxDataService.getCommentModel();
|
commentModel =sxDataService.getCommentModel();
|
||||||
}
|
}
|
||||||
if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){
|
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(),commentModel);
|
||||||
// sxDataService.syncAtive(new DataBaseInfo(),new CommentModel());
|
// sxDataService.syncAtive(new DataBaseInfo(),new CommentModel());
|
||||||
@ -176,7 +136,7 @@ public class WebController {
|
|||||||
commentModel =sxDataService.getCommentModel();
|
commentModel =sxDataService.getCommentModel();
|
||||||
}
|
}
|
||||||
if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){
|
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(),commentModel);
|
||||||
//sxDataService.syncAtiveShops(new DataBaseInfo(),new CommentModel());
|
//sxDataService.syncAtiveShops(new DataBaseInfo(),new CommentModel());
|
||||||
|
|||||||
@ -567,7 +567,7 @@ public class SxDataDao extends BaseDao{
|
|||||||
activeDto.setActivityTypeId(3);
|
activeDto.setActivityTypeId(3);
|
||||||
activeDto.setActiveMaxDesList(activeMaxDesList);
|
activeDto.setActiveMaxDesList(activeMaxDesList);
|
||||||
}
|
}
|
||||||
activeDto.setFlowNo(rs.getString("flow_no"));
|
activeDto.setFlowNo(rs.getString("other3"));
|
||||||
activeDto.setActivityReleasetime(rs.getDate("oper_date"));
|
activeDto.setActivityReleasetime(rs.getDate("oper_date"));
|
||||||
activeDto.setActivityStarttime(rs.getDate("start_date"));
|
activeDto.setActivityStarttime(rs.getDate("start_date"));
|
||||||
activeDto.setActivityEndtime(rs.getDate("end_date"));
|
activeDto.setActivityEndtime(rs.getDate("end_date"));
|
||||||
@ -657,9 +657,10 @@ public class SxDataDao extends BaseDao{
|
|||||||
activeShopInfo.setActivityName("满"+total1+"减"+max1+",满"+total2+"减"+max2);
|
activeShopInfo.setActivityName("满"+total1+"减"+max1+",满"+total2+"减"+max2);
|
||||||
activeShopInfo.setActivityTypeId(3);
|
activeShopInfo.setActivityTypeId(3);
|
||||||
}
|
}
|
||||||
|
activeShopInfo.setActivityItemMinQuantity(rs.getBigDecimal("sale_qty"));
|
||||||
activeShopInfo.setActivityStarttime(rs.getDate("start_date"));
|
activeShopInfo.setActivityStarttime(rs.getDate("start_date"));
|
||||||
activeShopInfo.setActivityEndtime(rs.getDate("end_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){
|
if(DateUtil.compare(activeShopInfo.getActivityEndtime(),DateUtil.date())>0){
|
||||||
activeShopInfo.setActivityState(1);//正常进行中
|
activeShopInfo.setActivityState(1);//正常进行中
|
||||||
}else {
|
}else {
|
||||||
|
|||||||
@ -25,12 +25,13 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.core.io.Resource;
|
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.stereotype.Service;
|
||||||
import org.springframework.util.MultiValueMap;
|
|
||||||
import org.springframework.util.StreamUtils;
|
import org.springframework.util.StreamUtils;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
@ -38,6 +39,7 @@ import java.io.IOException;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
|
import java.time.Duration;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -73,7 +75,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void SyncCategory(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
public void SyncCategory(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
||||||
// dataBaseInfo= getDataBaseInfo(commentModel);
|
dataBaseInfo= getDataBaseInfo(commentModel);
|
||||||
// 记录总数
|
// 记录总数
|
||||||
Integer total = sxDataDao.getTBdItemClsTotal(dataBaseInfo);
|
Integer total = sxDataDao.getTBdItemClsTotal(dataBaseInfo);
|
||||||
if(total==0){
|
if(total==0){
|
||||||
@ -98,7 +100,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(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);
|
log.info("sign:{}",sign);
|
||||||
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_CATEGORY
|
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_CATEGORY
|
||||||
+"?appKey="+commentModel.getAppKey()
|
+"?appKey="+commentModel.getAppKey()
|
||||||
@ -133,11 +135,9 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
syncAllGoods(dataBaseInfo, commentModel);
|
syncAllGoods(dataBaseInfo, commentModel);
|
||||||
break;
|
break;
|
||||||
case "02"://增量 todo test
|
case "02"://增量 todo test
|
||||||
String sycnTime=commentModel.getSyncTime();
|
syncIncrementAddGoods(dataBaseInfo, commentModel);
|
||||||
syncIncrementAddGoods(dataBaseInfo, commentModel);//同步新商品
|
syncIncrementModifyGoods(dataBaseInfo, commentModel);
|
||||||
// syncIncrementModifyGoods(dataBaseInfo, commentModel);
|
syncIncrementStock(dataBaseInfo, commentModel);
|
||||||
syncIncrementStock(dataBaseInfo, commentModel);//同步库存
|
|
||||||
syncFlowPrice(dataBaseInfo, commentModel,sycnTime);//同步调价单
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,7 +150,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void SyncBranchList(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
public void SyncBranchList(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
||||||
// dataBaseInfo= getDataBaseInfo(commentModel);
|
dataBaseInfo= getDataBaseInfo(commentModel);
|
||||||
List<BrandModel> brandModels= sxDataDao.getBdBrandList(dataBaseInfo);
|
List<BrandModel> brandModels= sxDataDao.getBdBrandList(dataBaseInfo);
|
||||||
if(brandModels!=null&&brandModels.size()>0){
|
if(brandModels!=null&&brandModels.size()>0){
|
||||||
String jsonString ="";
|
String jsonString ="";
|
||||||
@ -163,7 +163,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(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);
|
log.info("sign={}",sign);
|
||||||
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_BRAND
|
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_BRAND
|
||||||
+"?appKey="+commentModel.getAppKey()
|
+"?appKey="+commentModel.getAppKey()
|
||||||
@ -184,7 +184,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void SyncVipList(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
public void SyncVipList(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
||||||
// dataBaseInfo= getDataBaseInfo(commentModel);
|
dataBaseInfo= getDataBaseInfo(commentModel);
|
||||||
String where="where mobile is not null and mobile <>'' ";
|
String where="where mobile is not null and mobile <>'' ";
|
||||||
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
||||||
where+="and oper_date > '"+commentModel.getSyncTime()+"'";
|
where+="and oper_date > '"+commentModel.getSyncTime()+"'";
|
||||||
@ -207,11 +207,10 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
memberList=ConverList(sxSyncVipList);
|
memberList=ConverList(sxSyncVipList);
|
||||||
Gson gson=new Gson();
|
Gson gson=new Gson();
|
||||||
String jsonString = gson.toJson(memberList);
|
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
|
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_MEMBER
|
||||||
+"?appKey="+commentModel.getAppKey()
|
+"?appKey="+commentModel.getAppKey()
|
||||||
+"&sign="+sign,memberList);//todo 后期改为文件传输
|
+"&sign="+sign,memberList);//todo 后期改为文件传输
|
||||||
|
|
||||||
if (!HttpUtils.SUCCESSCODE.equals(code)) {
|
if (!HttpUtils.SUCCESSCODE.equals(code)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -239,26 +238,6 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
return parentId;
|
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
|
* @param sxSyncCategories
|
||||||
@ -282,7 +261,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
public List<SxSyncCategory> getRootNode(List<SxSyncCategory> sxSyncCategories){
|
public List<SxSyncCategory> getRootNode(List<SxSyncCategory> sxSyncCategories){
|
||||||
List<SxSyncCategory> rootNodeList=new ArrayList<>();
|
List<SxSyncCategory> rootNodeList=new ArrayList<>();
|
||||||
for (SxSyncCategory node : sxSyncCategories) {
|
for (SxSyncCategory node : sxSyncCategories) {
|
||||||
if (StringUtils.isEmpty(node.getCls_parent())) {
|
if (null==node.getCls_parent()) {
|
||||||
rootNodeList.add(node);
|
rootNodeList.add(node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -310,60 +289,27 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
return root;
|
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 dataBaseInfo
|
||||||
* @param commentModel
|
* @param commentModel
|
||||||
*/
|
*/
|
||||||
private void syncAllGoods(DataBaseInfo dataBaseInfo, CommentModel commentModel){
|
private void syncAllGoods(DataBaseInfo dataBaseInfo, CommentModel commentModel){
|
||||||
//String where="where 1=1";
|
String where="where 1=1";
|
||||||
String where="where shop.status='1'";
|
|
||||||
Integer total =0;
|
Integer total =0;
|
||||||
String parentId=getAndCacheTree(dataBaseInfo,dataBaseInfo.getCategoryName());//加载缓存用的
|
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())) {
|
||||||
//syncGoodsSearchModel.setItemClsno(childrens);
|
//syncGoodsSearchModel.setItemClsno(childrens);
|
||||||
String childrens= commonCache.get(CommonCache.CACHE_CATEGROY+parentId);
|
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())){
|
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
||||||
where+=" and shop.modify_date>'"+commentModel.getSyncTime()+"' ";
|
where+=" and b.modify_date>'"+commentModel.getSyncTime()+"' ";
|
||||||
where+=" or shop.build_date>'"+commentModel.getSyncTime()+"' ";
|
where+=" or b.build_date>'"+commentModel.getSyncTime()+"' ";
|
||||||
}
|
}
|
||||||
if(StringUtils.isNotEmpty(dataBaseInfo.getOperDate())){
|
if(StringUtils.isNotEmpty(dataBaseInfo.getOperDate())){
|
||||||
String stockOperateWhere=" ls.oper_date>'"+dataBaseInfo.getOperDate()+"' ";
|
where+=" and 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()+"' " +
|
|
||||||
" )";
|
|
||||||
}
|
}
|
||||||
dataBaseInfo.setWhere(where);
|
dataBaseInfo.setWhere(where);
|
||||||
// 记录总数
|
// 记录总数
|
||||||
@ -376,7 +322,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
log.info("暂无商品同步");
|
log.info("暂无商品同步");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//where+=" and";
|
where+=" and";
|
||||||
dataBaseInfo.setWhere(where);
|
dataBaseInfo.setWhere(where);
|
||||||
|
|
||||||
// 总页数
|
// 总页数
|
||||||
@ -413,7 +359,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
+"&syncType="+DicEnum.MUAL_1.getCode()
|
+"&syncType="+DicEnum.MUAL_1.getCode()
|
||||||
+"&refreshDateStr="+refreshDate,
|
+"&refreshDateStr="+refreshDate,
|
||||||
JSONUtil.parseArray(folders));
|
JSONUtil.parseArray(folders));
|
||||||
log.info("商品总共有{}条数据,同步完成{}条",total,syncCount);
|
log.info("商品分类总共有{}条数据,同步完成{}条",total,syncCount);
|
||||||
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_GOODS_READ
|
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_GOODS_READ
|
||||||
+"?appKey="+commentModel.getAppKey()
|
+"?appKey="+commentModel.getAppKey()
|
||||||
+"&sign="+commentModel.getAppId()
|
+"&sign="+commentModel.getAppId()
|
||||||
@ -439,7 +385,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
String fileName=fileUtils.getFileName(syncType,page,FileUtils.txtEnd);
|
String fileName=fileUtils.getFileName(syncType,page,FileUtils.txtEnd);
|
||||||
String filePath=file.getAbsolutePath();
|
String filePath=file.getAbsolutePath();
|
||||||
fileUtils.writeFile(filePath,fileName,content);
|
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);
|
commentModel.setSign(sign);
|
||||||
return webClientService.uploudSxData(filePath+FileUtils.pathSeparator+fileName,commentModel,page.toString(),syncType);
|
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);
|
syncAllGoods(dataBaseInfo,commentModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 增量同步 调价单变化
|
|
||||||
*/
|
|
||||||
private void syncFlowPrice(DataBaseInfo dataBaseInfo, CommentModel commentModel,String sycnTime){
|
|
||||||
dataBaseInfo.setPriceOperatiem(sycnTime);
|
|
||||||
commentModel.setSyncTime("");
|
|
||||||
dataBaseInfo.setOperDate("");
|
|
||||||
syncAllGoods(dataBaseInfo,commentModel);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*获取特价商品
|
*获取特价商品
|
||||||
* @param dataBaseInfo
|
* @param dataBaseInfo
|
||||||
@ -634,24 +570,12 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
}
|
}
|
||||||
log.info("文件下载目录: {}", downloadDirectory);
|
log.info("文件下载目录: {}", downloadDirectory);
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
// headers.set("User-Agent", "Apifox/1.0.0 (https://apifox.com)");
|
HttpEntity<String> requestEntity = new HttpEntity<>(headers);
|
||||||
//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);
|
|
||||||
String encryptedData = getPrimaryKey();
|
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(
|
ResponseEntity<Resource> response = restTemplate.exchange(
|
||||||
url,
|
remoteIp+HttpUtils.URL_SYNC_GET_DOWNCLIENTJAR+"?primaryKey="+encryptedData
|
||||||
|
+"&clienVersionName="+versionName,
|
||||||
HttpMethod.GET,
|
HttpMethod.GET,
|
||||||
requestEntity,
|
requestEntity,
|
||||||
Resource.class);
|
Resource.class);
|
||||||
@ -701,12 +625,9 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
log.error("文件下载失败:{}",e.getMessage());
|
log.error("文件下载失败:{}",e.getMessage());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
File file=new File(downloadDirectory+originalFileName);
|
return downloadDirectory+originalFileName;
|
||||||
return file.length()>0?downloadDirectory+originalFileName:null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void checkForUpdates() {
|
public void checkForUpdates() {
|
||||||
log.info("curentPath:{}",JarPathUtil.getRuntimePath());
|
log.info("curentPath:{}",JarPathUtil.getRuntimePath());
|
||||||
@ -752,7 +673,6 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
DataBaseInfo dataBaseInfo=new DataBaseInfo();
|
DataBaseInfo dataBaseInfo=new DataBaseInfo();
|
||||||
if(null!=storeDbConfig){
|
if(null!=storeDbConfig){
|
||||||
dataBaseInfo.setIp(storeDbConfig.getDbIp());
|
dataBaseInfo.setIp(storeDbConfig.getDbIp());
|
||||||
dataBaseInfo.setUserName(storeDbConfig.getDbUsername());
|
|
||||||
dataBaseInfo.setPassword(storeDbConfig.getDbPassword());
|
dataBaseInfo.setPassword(storeDbConfig.getDbPassword());
|
||||||
dataBaseInfo.setDataBaseName(storeDbConfig.getDbName());
|
dataBaseInfo.setDataBaseName(storeDbConfig.getDbName());
|
||||||
dataBaseInfo.setDbPort(storeDbConfig.getDbPort());
|
dataBaseInfo.setDbPort(storeDbConfig.getDbPort());
|
||||||
@ -761,8 +681,6 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
dataBaseInfo.setCategoryName(storeDbConfig.getCategoryName());
|
dataBaseInfo.setCategoryName(storeDbConfig.getCategoryName());
|
||||||
dataBaseInfo.setRefreshTime(storeDbConfig.getRefreshTime());
|
dataBaseInfo.setRefreshTime(storeDbConfig.getRefreshTime());
|
||||||
dataBaseInfo.setIsTowSync(storeDbConfig.getIsTowSync());
|
dataBaseInfo.setIsTowSync(storeDbConfig.getIsTowSync());
|
||||||
dataBaseInfo.setShopGapTime(storeDbConfig.getShopGapTime());
|
|
||||||
dataBaseInfo.setSaleAccount(storeDbConfig.getSaleAccount());
|
|
||||||
return dataBaseInfo;
|
return dataBaseInfo;
|
||||||
}
|
}
|
||||||
return new DataBaseInfo();
|
return new DataBaseInfo();
|
||||||
@ -774,57 +692,28 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
log.info("不做双向同步数据库");
|
log.info("不做双向同步数据库");
|
||||||
return;
|
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
|
JSONObject jsonObject= restTemplate.getForObject(remoteIp+HttpUtils.URL_SYNC_GET_STOR_DATA_RELEASE
|
||||||
+"?appKey="+commentModel.getAppKey()
|
+"?appKey="+commentModel.getAppKey()
|
||||||
+"&sign="+commentModel.getAppId(),JSONObject.class);
|
+"&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")){
|
if(null!=jsonObject.get("result")){
|
||||||
// Map map=(Map)jsonObject.get("result");
|
Map map=(Map)jsonObject.get("result");
|
||||||
String jsonStr= jsonObject.getStr("result");
|
sxDataDao.updateStoreData(dataBaseInfo,map);
|
||||||
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("无线上流水同步");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean syncAtive(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
public void syncAtive(DataBaseInfo dataBaseInfo, CommentModel commentModel) {
|
||||||
String where="where 1=1";
|
String where="where 1=1";
|
||||||
Integer total =0;
|
Integer total =0;
|
||||||
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
||||||
where+=" and b.oper_date>'"+commentModel.getSyncTime()+"' ";
|
where+=" and b.start_date>'"+commentModel.getSyncTime()+"' ";
|
||||||
// where+=" or b.oper_date>'"+commentModel.getSyncTime()+"') ";
|
where+=" or b.oper_date>'"+commentModel.getSyncTime()+"' ";
|
||||||
}
|
}
|
||||||
dataBaseInfo.setWhere(where);
|
dataBaseInfo.setWhere(where);
|
||||||
total = sxDataDao.getNewActiveCount(dataBaseInfo);
|
total = sxDataDao.getActiveCount(dataBaseInfo);
|
||||||
if(total==0){
|
if(total==0){
|
||||||
log.info("暂无活动同步");
|
log.info("暂无活动同步");
|
||||||
return false;
|
return;
|
||||||
}
|
}
|
||||||
// 总页数
|
// 总页数
|
||||||
int pages = CommonUtil.getPagesCount(total, SxDataDao.PAGESIZE);
|
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 tenMinutesAgo = Date.from(Instant.now());//刷新时间
|
||||||
Date refreshDate= DateUtil.date(tenMinutesAgo);
|
Date refreshDate= DateUtil.date(tenMinutesAgo);
|
||||||
for (int i = 1; i <=pages; i++) {
|
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()
|
Gson gson=new GsonBuilder()
|
||||||
.setDateFormat("yyyy-MM-dd HH:mm:ss") // 设置全局 Date 格式
|
.setDateFormat("yyyy-MM-dd HH:mm:ss") // 设置全局 Date 格式
|
||||||
.create();
|
.create();
|
||||||
String jsonString= gson.toJson(activeDtos);
|
String jsonString= gson.toJson(activeDtos);
|
||||||
JSONArray jsonArray = JSONUtil.parseArray(jsonString);
|
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
|
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_ACTIVE
|
||||||
+"?appKey="+commentModel.getAppKey()
|
+"?appKey="+commentModel.getAppKey()
|
||||||
+"&sign="+sign, jsonArray);
|
+"&sign="+sign, jsonArray);
|
||||||
@ -849,7 +738,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
syncCount+=activeDtos.size();
|
syncCount+=activeDtos.size();
|
||||||
}
|
}
|
||||||
log.info("成功同步活动数据:"+syncCount);
|
log.info("成功同步活动数据:"+syncCount);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -857,16 +746,13 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
String where="where 1=1";
|
String where="where 1=1";
|
||||||
Integer total =0;
|
Integer total =0;
|
||||||
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
if(StringUtils.isNotEmpty(commentModel.getSyncTime())){
|
||||||
where+=" and t.oper_date>'"+commentModel.getSyncTime()+"' ";
|
where+=" and start_date>'"+commentModel.getSyncTime()+"' ";
|
||||||
// where+=" or m.oper_date>'"+commentModel.getSyncTime()+"') ";
|
where+=" or oper_date>'"+commentModel.getSyncTime()+"' ";
|
||||||
}
|
}
|
||||||
|
|
||||||
dataBaseInfo.setWhere(where);
|
dataBaseInfo.setWhere(where);
|
||||||
total = sxDataDao.getTotalSpecShop(dataBaseInfo);
|
total = sxDataDao.getAllSpecCount(dataBaseInfo);
|
||||||
if(total==0){
|
if(total==0){
|
||||||
HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_REFRESH
|
|
||||||
+"?appKey="+commentModel.getAppKey()
|
|
||||||
+"&sign="+commentModel.getAppId(), new JSONArray());
|
|
||||||
log.info("暂无活动商品同步");
|
log.info("暂无活动商品同步");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -877,14 +763,14 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
Date tenMinutesAgo = Date.from(Instant.now());//刷新时间
|
Date tenMinutesAgo = Date.from(Instant.now());//刷新时间
|
||||||
Date refreshDate= DateUtil.date(tenMinutesAgo);//todo 要记录刷新时间
|
Date refreshDate= DateUtil.date(tenMinutesAgo);//todo 要记录刷新时间
|
||||||
for (int i = 1; i <=pages; i++) {
|
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()
|
Gson gson=new GsonBuilder()
|
||||||
.setDateFormat("yyyy-MM-dd HH:mm:ss") // 设置全局 Date 格式
|
.setDateFormat("yyyy-MM-dd HH:mm:ss") // 设置全局 Date 格式
|
||||||
.registerTypeAdapter(BigDecimal.class,new BigDecimalTypeAdapter())
|
.registerTypeAdapter(BigDecimal.class,new BigDecimalTypeAdapter())
|
||||||
.create();
|
.create();
|
||||||
String jsonString=gson.toJson(activeDtos);
|
String jsonString=gson.toJson(activeDtos);
|
||||||
JSONArray jsonArray = JSONUtil.parseArray(jsonString);
|
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
|
String code= HttpUtils.postData(restTemplate,remoteIp+HttpUtils.URL_SYNC_ACTIVE_SHOP
|
||||||
+"?appKey="+commentModel.getAppKey()
|
+"?appKey="+commentModel.getAppKey()
|
||||||
+"&sign="+sign, jsonArray);
|
+"&sign="+sign, jsonArray);
|
||||||
@ -910,4 +796,5 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
|
|||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user