Commit 4d0fe987 by yinyong

数据中心--同步百伦sku对应平台站点sku

parent 509dd515
package com.bailuntec.domain.pojo;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class SkuMappingInfo {
@JSONField(name = "id")
private Integer unicodeId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.platform_id
*
* @mbg.generated
*/
private Integer platformId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.platform
*
* @mbg.generated
*/
private String platform;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.site_id
*
* @mbg.generated
*/
private Integer siteId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.site
*
* @mbg.generated
*/
private String site;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.account_id
*
* @mbg.generated
*/
private Integer accountId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.login_account
*
* @mbg.generated
*/
private String loginAccount;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.account
*
* @mbg.generated
*/
private String account;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.sale_name
*
* @mbg.generated
*/
private String saleName;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.product_id
*
* @mbg.generated
*/
private Integer productId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.sku_id
*
* @mbg.generated
*/
private Integer skuId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.bailun_sku
*
* @mbg.generated
*/
@JSONField(name = "setNo")
private String bailunSku;
private Integer count;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.title
*
* @mbg.generated
*/
private String title;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.item_id
*
* @mbg.generated
*/
private String itemId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.platform_sku
*
* @mbg.generated
*/
@JSONField(name = "newSku")
private String platformSku;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.creation_time
*
* @mbg.generated
*/
private LocalDateTime creationTime;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.last_modification_time
*
* @mbg.generated
*/
private LocalDateTime lastModificationTime;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.create_user_name
*
* @mbg.generated
*/
private String createUserName;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.has_deleted
*
* @mbg.generated
*/
@JSONField(name = "isDeleted")
private Boolean hasDeleted;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_sku_mapping.company_id
*
* @mbg.generated
*/
@JSONField(name = "creatorOrganizeId")
private Integer companyId;
}
package com.bailuntec.domain.pojo;
import lombok.Data;
import java.util.List;
@Data
public class SkuMappingResponse {
private Integer pageIndex;
private Integer total;
private Integer totalPage;
private Integer rows;
private Long costtime;
private List<SkuMappingInfo> data;
}
package com.bailuntec.job;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bailuntec.domain.constant.CommonConstant;
import com.bailuntec.domain.entity.DcBaseSku;
import com.bailuntec.domain.entity.DcBaseSkuMapping;
import com.bailuntec.domain.entity.DcBaseSkuWarehouse;
import com.bailuntec.domain.entity.JobPointLog;
import com.bailuntec.domain.example.DcBaseSkuExample;
import com.bailuntec.domain.example.DcBaseSkuWarehouseExample;
import com.bailuntec.domain.pojo.*;
import com.bailuntec.domain.request.SkuCondition;
import com.bailuntec.domain.request.SkumsRequest;
import com.bailuntec.mapper.DcBaseSkuMapper;
import com.bailuntec.mapper.DcBaseSkuMappingMapper;
import com.bailuntec.mapper.DcBaseSkuWarehouseMapper;
import com.bailuntec.mapper.JobPointLogMapper;
import com.bailuntec.support.PointJob;
import com.bailuntec.utils.OkHttpUtil;
import com.bailuntec.utils.PropertiesUtil;
import com.bailuntec.utils.SessionUtil;
import com.dangdang.ddframe.job.api.ShardingContext;
import lombok.extern.slf4j.Slf4j;
import okhttp3.*;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.LinkedHashMap;
import java.util.List;
@Slf4j
public class SkuMappingSyncJob extends PointJob {
private PropertiesUtil propertiesUtil = PropertiesUtil.getInstance("const");
private OkHttpClient client = OkHttpUtil.getInstance();
@Override
public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) {
LinkedHashMap<String, String> map = new LinkedHashMap<>(4);
map.put("PageNumber", jobPointLog.getPageSize().toString());
map.put("StartTime", DateTimeFormatter.ofPattern(CommonConstant.TIME_FORMAT).format(jobPointLog.getStartTime()));
map.put("EndTime", DateTimeFormatter.ofPattern(CommonConstant.TIME_FORMAT).format(jobPointLog.getEndTime()));
do {
map.put("PageIndex", jobPointLog.getPageIndex().equals(0) ? "1" : jobPointLog.getPageIndex().toString());
Response response = null;
String resultStr = null;
try {
Request request = new Request.Builder()
.get()
.url(OkHttpUtil.attachHttpGetParams(propertiesUtil.getPropertyAsString("SKU_MAPPING_URL"), map))
.addHeader("Content-Type", "application/json")
.build();
response = client.newCall(request).execute();
resultStr = response.body().string();
} catch (IOException e) {
throw new RuntimeException(map + "请求sku映射同步百伦接口失败" + response, e);
} finally {
if (response != null) {
response.close();
}
}
if (StringUtils.isNotBlank(resultStr)) {
SkuMappingResponse skuMappingResponse = JSONObject.parseObject(resultStr, SkuMappingResponse.class);
if (skuMappingResponse.getData()!= null && skuMappingResponse.getData().size() > 0) {
List<SkuMappingInfo> skuMappingInfoList = skuMappingResponse.getData();
DcBaseSkuMapping dcBaseSkuMapping = new DcBaseSkuMapping();
for(SkuMappingInfo skuMappingInfo : skuMappingInfoList) {
try {
BeanUtils.copyProperties(dcBaseSkuMapping, skuMappingInfo);
} catch (Exception e) {
throw new RuntimeException("BeanUtils.copyProperties失败");
}
DcBaseSkuMappingMapper dcBaseSkuMappingMapper = SessionUtil.getSession().getMapper(DcBaseSkuMappingMapper.class);
dcBaseSkuMappingMapper.upsertSelective(dcBaseSkuMapping);
}
if (jobPointLog.getPageIndex().equals(0) && skuMappingResponse.getTotalPage() != null) {
jobPointLog.setPageIndex(skuMappingResponse.getTotalPage() + 1);
}
} else {
throw new RuntimeException("调用SKUMS系统接口返回错误");
}
} else {
throw new RuntimeException("调用SKUMS系统接口返回null");
}
jobPointLog.setPageIndex(jobPointLog.getPageIndex() - 1);
} while (jobPointLog.getPageIndex() > 0);
jobPointLog.setPageIndex(0);
jobPointLog.setStartTime(jobPointLog.getEndTime());
jobPointLog.setEndTime(jobPointLog.getStartTime().plusDays(jobPointLog.getIntervalTime().longValue()).isAfter(LocalDateTime.now()) ? LocalDateTime.now() : jobPointLog.getStartTime().plusDays(jobPointLog.getIntervalTime().longValue()));
}
}
# \u751F\u4EA7\u73AF\u5883
SKU_URL=http://10.0.8.13:8000/api/sku/productsku/gmtproductskus
SKU_SIMPLE_CATEGORY_URL=http://10.0.8.13:8000/api/category/simplecategory/categoriessimplebylevel?level=0
SKU_MAPPING_URL=http://172.31.255.108:6021/skumapping/getpageskumappings
# SKU_MAPPING_URL=http://doc.bailuntec.com:6021/skumapping/getpageskumappings
# \u7EBF\u4E0B\u73AF\u5883
#SKU_URL=http://api.skums.bailuntec.com/api/sku/productsku/gmtproductskus
#SKU_SIMPLE_CATEGORY_URL=http://api.skums.bailuntec.com/api/category/simplecategory/categoriessimplebylevel?level=0
\ No newline at end of file
......@@ -12,4 +12,6 @@ JOB_NAME=base-sync-sku
JOB_CRON=0/10 * * * * ? *
JOB_SIMPLE_CATEGORY_NAME=base-sync-sku-simple-category
JOB_SIMPLE_CATEGORY_CRON=0 0 23 * * ? *
JOB_MAPPING_NAME=base-sync-sku-mapping
JOB_MAPPING_CRON=0/10 * * * * ? *
SHARDING_TOTAL_COUNT=1
\ No newline at end of file
package com.bailuntec.mapper;
import com.bailuntec.domain.entity.DcBaseSkuMapping;
import com.bailuntec.domain.example.DcBaseSkuMappingExample;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface DcBaseSkuMappingMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
*/
long countByExample(DcBaseSkuMappingExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
*/
int deleteByExample(DcBaseSkuMappingExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
*/
int deleteByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
*/
int insert(DcBaseSkuMapping record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
*/
int insertSelective(DcBaseSkuMapping record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
DcBaseSkuMapping selectOneByExample(DcBaseSkuMappingExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
*/
List<DcBaseSkuMapping> selectByExample(DcBaseSkuMappingExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
*/
DcBaseSkuMapping selectByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
*/
int updateByExampleSelective(@Param("record") DcBaseSkuMapping record, @Param("example") DcBaseSkuMappingExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
*/
int updateByExample(@Param("record") DcBaseSkuMapping record, @Param("example") DcBaseSkuMappingExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
*/
int updateByPrimaryKeySelective(DcBaseSkuMapping record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
*/
int updateByPrimaryKey(DcBaseSkuMapping record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsert(DcBaseSkuMapping record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku_mapping
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsertSelective(DcBaseSkuMapping record);
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment