Commit 08915c4c by yinyong

数据中心--ebay费用item_id根据bailun_sku拆分计算金额

parent 921b030f
package com.bailuntec.domain.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@Data
public class DcBaseFinanceEbayItemDto {
private Integer id;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.account_entry_type
*
* @mbg.generated
*/
private String accountEntryType;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.description
*
* @mbg.generated
*/
private String description;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.gmt_date
*
* @mbg.generated
*/
private LocalDateTime gmtDate;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.bj_date
*
* @mbg.generated
*/
private LocalDateTime bjDate;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.gross_amount
*
* @mbg.generated
*/
private BigDecimal grossAmount;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.item_id
*
* @mbg.generated
*/
private String itemId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.title
*
* @mbg.generated
*/
private String title;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.order_line_id
*
* @mbg.generated
*/
private String orderLineId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.transaction_id
*
* @mbg.generated
*/
private String transactionId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.company_id
*
* @mbg.generated
*/
private Integer companyId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.received_top_rated_discount
*
* @mbg.generated
*/
private Boolean receivedTopRatedDiscount;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.account_id
*
* @mbg.generated
*/
private Integer accountId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.currency
*
* @mbg.generated
*/
private String currency;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.exchange_rate
*
* @mbg.generated
*/
private BigDecimal exchangeRate;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.exchange_rate_usd
*
* @mbg.generated
*/
private BigDecimal exchangeRateUsd;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_finance_ebay.report_date
*
* @mbg.generated
*/
private Date reportDate;
private List<DcBaseSkuMappingItemDto> dcBaseSkuMappingList;
}
\ No newline at end of file
package com.bailuntec.domain.dto;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class DcBaseSkuMappingItemDto {
private String bailunSku;
/**
*
* 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.platform
*
* @mbg.generated
*/
private String platform;
/**
*
* 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.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
*
* @mbg.generated
*/
private String account;
/**
*
* 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.count
*
* @mbg.generated
*/
private Integer count;
/**
*
* 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;
private BigDecimal unitPrice;
}
\ No newline at end of file
package com.bailuntec.mapper;
import com.bailuntec.domain.entity.DcBaseFinanceEbayItem;
import com.bailuntec.domain.example.DcBaseFinanceEbayItemExample;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface DcBaseFinanceEbayItemMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
*/
long countByExample(DcBaseFinanceEbayItemExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
*/
int deleteByExample(DcBaseFinanceEbayItemExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
*/
int deleteByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
*/
int insert(DcBaseFinanceEbayItem record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
*/
int insertSelective(DcBaseFinanceEbayItem record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
DcBaseFinanceEbayItem selectOneByExample(DcBaseFinanceEbayItemExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
*/
List<DcBaseFinanceEbayItem> selectByExample(DcBaseFinanceEbayItemExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
*/
DcBaseFinanceEbayItem selectByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
*/
int updateByExampleSelective(@Param("record") DcBaseFinanceEbayItem record, @Param("example") DcBaseFinanceEbayItemExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
*/
int updateByExample(@Param("record") DcBaseFinanceEbayItem record, @Param("example") DcBaseFinanceEbayItemExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
*/
int updateByPrimaryKeySelective(DcBaseFinanceEbayItem record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
*/
int updateByPrimaryKey(DcBaseFinanceEbayItem record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsert(DcBaseFinanceEbayItem record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_finance_ebay_item
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsertSelective(DcBaseFinanceEbayItem record);
}
\ No newline at end of file
package com.bailuntec.mapper; package com.bailuntec.mapper;
import com.bailuntec.domain.dto.DcBaseFinanceEbayItemDto;
import com.bailuntec.domain.entity.DcBaseFinanceEbay; import com.bailuntec.domain.entity.DcBaseFinanceEbay;
import com.bailuntec.domain.entity.JobPointLog;
import com.bailuntec.domain.example.DcBaseFinanceEbayExample; import com.bailuntec.domain.example.DcBaseFinanceEbayExample;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -123,4 +125,7 @@ public interface DcBaseFinanceEbayMapper { ...@@ -123,4 +125,7 @@ public interface DcBaseFinanceEbayMapper {
* @project https://github.com/itfsw/mybatis-generator-plugin * @project https://github.com/itfsw/mybatis-generator-plugin
*/ */
int upsertSelective(DcBaseFinanceEbay record); int upsertSelective(DcBaseFinanceEbay record);
List<DcBaseFinanceEbayItemDto> selectEbayList(JobPointLog jobPointLog);
} }
\ No newline at end of file
...@@ -997,4 +997,41 @@ ...@@ -997,4 +997,41 @@
</if> </if>
limit 1 limit 1
</select> </select>
<resultMap id="BaseResultMap1" type="com.bailuntec.domain.dto.DcBaseFinanceEbayItemDto">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<result column="id" jdbcType="INTEGER" property="id" />
<result column="account_entry_type" jdbcType="VARCHAR" property="accountEntryType" />
<result column="description" jdbcType="VARCHAR" property="description" />
<result column="gmt_date" jdbcType="TIMESTAMP" property="gmtDate" />
<result column="bj_date" jdbcType="TIMESTAMP" property="bjDate" />
<result column="gross_amount" jdbcType="DECIMAL" property="grossAmount" />
<result column="item_id" jdbcType="VARCHAR" property="itemId" />
<result column="title" jdbcType="VARCHAR" property="title" />
<result column="order_line_id" jdbcType="VARCHAR" property="orderLineId" />
<result column="transaction_id" jdbcType="VARCHAR" property="transactionId" />
<result column="company_id" jdbcType="INTEGER" property="companyId" />
<result column="received_top_rated_discount" jdbcType="BIT" property="receivedTopRatedDiscount" />
<result column="account_id" jdbcType="INTEGER" property="accountId" />
<result column="currency" jdbcType="VARCHAR" property="currency" />
<result column="exchange_rate" jdbcType="DECIMAL" property="exchangeRate" />
<result column="exchange_rate_usd" jdbcType="DECIMAL" property="exchangeRateUsd" />
<result column="report_date" jdbcType="DATE" property="reportDate" />
<collection property="dcBaseSkuMappingList" column="item_id" ofType="com.bailuntec.domain.dto.DcBaseSkuMappingItemDto" select="selectSkuMapping">
</collection>
</resultMap>
<select id="selectSkuMapping" resultType="com.bailuntec.domain.dto.DcBaseSkuMappingItemDto">
select dc0.*, dc1.unit_price from dc_base_sku_mapping dc0 left join dc_base_sku dc1 on dc0.bailun_sku = dc1.bailun_sku where dc0.item_id = #{itemId} and dc0.has_deleted = 0
</select>
<select id="selectEbayList" resultMap="BaseResultMap1">
select * from dc_base_finance_ebay
where bj_date &gt;= #{startTime} and bj_date &lt; #{endTime}
order by id asc
limit ${pageIndex * pageSize} , #{pageSize}
</select>
</mapper> </mapper>
\ No newline at end of file
FROM maven:3.6.0-alpine
RUN apk add ca-certificates && \
apk add tzdata && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone
# make source folder
RUN mkdir -p /usr/app
WORKDIR /usr/app
# install maven dependency packages (keep in image)
COPY data-parent /usr/app/data-parent
COPY data-common /usr/app/data-common
COPY data-base /usr/app/data-base
COPY data-mid /usr/app/data-mid
COPY data-show /usr/app/data-show
RUN cd /usr/app/data-parent && mvn -T 1C install -pl ../data-mid/mid-calculate-item -am
#指定容器启动程序及参数 <ENTRYPOINT> "<CMD>"
EXPOSE 8080
ENTRYPOINT ["java","-Xms30m","-Xmx80m","-jar","/usr/app/data-mid/mid-calculate-item/target/mid-calculate-item-1.0-SNAPSHOT.jar"]
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>data-mid</artifactId>
<groupId>com.bailuntec</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>mid-calculate-item</artifactId>
<dependencies>
<dependency>
<groupId>com.bailuntec</groupId>
<artifactId>data-common</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.bailuntec.Application</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<!--默认是true-->
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
</project>
package com.bailuntec;
import com.alibaba.druid.pool.DruidDataSource;
import com.bailuntec.job.CalculateAmazonItemJob;
import com.bailuntec.job.CalculateEbayItemJob;
import com.bailuntec.utils.PropertiesUtil;
import com.dangdang.ddframe.job.config.JobCoreConfiguration;
import com.dangdang.ddframe.job.config.simple.SimpleJobConfiguration;
import com.dangdang.ddframe.job.event.JobEventConfiguration;
import com.dangdang.ddframe.job.event.rdb.JobEventRdbConfiguration;
import com.dangdang.ddframe.job.lite.api.JobScheduler;
import com.dangdang.ddframe.job.lite.config.LiteJobConfiguration;
import com.dangdang.ddframe.job.reg.base.CoordinatorRegistryCenter;
import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperConfiguration;
import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperRegistryCenter;
import lombok.extern.slf4j.Slf4j;
import javax.sql.DataSource;
@Slf4j
public class Application {
private static PropertiesUtil propertiesUtil = PropertiesUtil.getInstance("job");
private static final String EVENT_RDB_STORAGE_DRIVER = propertiesUtil.getPropertyAsString("EVENT_RDB_STORAGE_DRIVER");
private static final String EVENT_RDB_STORAGE_URL = propertiesUtil.getPropertyAsString("EVENT_RDB_STORAGE_URL");
private static final String EVENT_RDB_STORAGE_USERNAME = propertiesUtil.getPropertyAsString("EVENT_RDB_STORAGE_USERNAME");
private static final String EVENT_RDB_STORAGE_PASSWORD = propertiesUtil.getPropertyAsString("EVENT_RDB_STORAGE_PASSWORD");
public static void main(String[] args) {
new JobScheduler(createRegistryCenter(), createJobConfiguration()).init();
new JobScheduler(createRegistryCenter(), createJobConfiguration1()).init();
}
private static CoordinatorRegistryCenter createRegistryCenter() {
CoordinatorRegistryCenter regCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration(propertiesUtil.getPropertyAsString("ZOOKEEPER_SERVER"), propertiesUtil.getPropertyAsString("NAME_SPACE")));
regCenter.init();
return regCenter;
}
private static LiteJobConfiguration createJobConfiguration() {
JobCoreConfiguration simpleCoreConfig = JobCoreConfiguration.newBuilder(propertiesUtil.getPropertyAsString("JOB_NAME"), propertiesUtil.getPropertyAsString("JOB_CRON"), propertiesUtil.getPropertyAsInt("SHARDING_TOTAL_COUNT")).build();
SimpleJobConfiguration simpleJobConfig = new SimpleJobConfiguration(simpleCoreConfig, CalculateEbayItemJob.class.getCanonicalName());
LiteJobConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfig).build();
return simpleJobRootConfig;
}
private static LiteJobConfiguration createJobConfiguration1() {
JobCoreConfiguration simpleCoreConfig = JobCoreConfiguration.newBuilder(propertiesUtil.getPropertyAsString("JOB_AMAZON_NAME"), propertiesUtil.getPropertyAsString("JOB_AMAZON_CRON"), propertiesUtil.getPropertyAsInt("SHARDING_TOTAL_COUNT")).build();
SimpleJobConfiguration simpleJobConfig = new SimpleJobConfiguration(simpleCoreConfig, CalculateAmazonItemJob.class.getCanonicalName());
LiteJobConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfig).build();
return simpleJobRootConfig;
}
private static JobEventConfiguration createJobEventConfiguration() {
JobEventConfiguration jobEventRdbConfig = new JobEventRdbConfiguration(setUpEventTraceDataSource());
return jobEventRdbConfig;
}
private static DataSource setUpEventTraceDataSource() {
DruidDataSource result = new DruidDataSource();
result.setDriverClassName(EVENT_RDB_STORAGE_DRIVER);
result.setUrl(EVENT_RDB_STORAGE_URL);
result.setUsername(EVENT_RDB_STORAGE_USERNAME);
result.setPassword(EVENT_RDB_STORAGE_PASSWORD);
return result;
}
}
package com.bailuntec.job;
import com.bailuntec.domain.entity.*;
import com.bailuntec.domain.example.DcBaseFinanceAmazonExample;
import com.bailuntec.mapper.DcBaseFinanceAmazonMapper;
import com.bailuntec.support.PointJob;
import com.bailuntec.utils.SessionUtil;
import com.dangdang.ddframe.job.api.ShardingContext;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
@Slf4j
public class CalculateAmazonItemJob extends PointJob {
@Override
public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) {
long countAmazon;
try{
DcBaseFinanceAmazonMapper dcBaseFinanceAmazonMapper = SessionUtil.getSession().getMapper(DcBaseFinanceAmazonMapper.class);
List<DcBaseFinanceAmazon> countAmazons = dcBaseFinanceAmazonMapper.selectByExample(DcBaseFinanceAmazonExample.newAndCreateCriteria().andReportDateBetween(jobPointLog.getStartTime().toLocalDate(), jobPointLog.getEndTime().toLocalDate()).example());
}catch (Exception e){
e.printStackTrace();
throw new RuntimeException("MYBATIS操作DB失败", e);
}finally {
SessionUtil.closeSession();
}
}
}
package com.bailuntec.job;
import com.bailuntec.domain.dto.DcBaseFinanceEbayItemDto;
import com.bailuntec.domain.dto.DcBaseSkuMappingItemDto;
import com.bailuntec.domain.entity.*;
import com.bailuntec.domain.example.DcBaseFinanceEbayExample;
import com.bailuntec.mapper.DcBaseFinanceEbayItemMapper;
import com.bailuntec.mapper.DcBaseFinanceEbayMapper;
import com.bailuntec.support.PointJob;
import com.bailuntec.utils.SessionUtil;
import com.dangdang.ddframe.job.api.ShardingContext;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.List;
@Slf4j
public class CalculateEbayItemJob extends PointJob {
@Override
public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) {
long countEbayFee;
try{
DcBaseFinanceEbayMapper dcBaseFinanceEbayMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayMapper.class);
countEbayFee = dcBaseFinanceEbayMapper.countByExample(DcBaseFinanceEbayExample.newAndCreateCriteria().andBjDateGreaterThanOrEqualTo(jobPointLog.getStartTime()).andBjDateLessThan(jobPointLog.getEndTime()).example());
}catch (Exception e){
e.printStackTrace();
throw new RuntimeException("MYBATIS操作DB失败", e);
}finally {
SessionUtil.closeSession();
}
long totalPage = getEbayPage(countEbayFee, jobPointLog);
do{
List<DcBaseFinanceEbayItemDto> dcBaseFinanceEbayItemDtoList;
try{
DcBaseFinanceEbayMapper dcBaseFinanceEbayMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayMapper.class);
dcBaseFinanceEbayItemDtoList = dcBaseFinanceEbayMapper.selectEbayList(jobPointLog);
for(DcBaseFinanceEbayItemDto dcBaseFinanceEbayItemDto : dcBaseFinanceEbayItemDtoList) {
if(dcBaseFinanceEbayItemDto.getDcBaseSkuMappingList() != null && dcBaseFinanceEbayItemDto.getDcBaseSkuMappingList().size() > 0) {
BigDecimal totalUnitPrice = getTotalUnitPrice(dcBaseFinanceEbayItemDto.getDcBaseSkuMappingList());
for(DcBaseSkuMappingItemDto dcBaseSkuMappingItemDto : dcBaseFinanceEbayItemDto.getDcBaseSkuMappingList()) {
DcBaseFinanceEbayItem dcBaseFinanceEbayItem = new DcBaseFinanceEbayItem();
BeanUtils.copyProperties(dcBaseFinanceEbayItem, dcBaseSkuMappingItemDto);
BigDecimal unitPrice = dcBaseSkuMappingItemDto.getUnitPrice() == null ? BigDecimal.ZERO : dcBaseSkuMappingItemDto.getUnitPrice();
BigDecimal unitPriceRadio = unitPrice.multiply(BigDecimal.valueOf(dcBaseSkuMappingItemDto.getCount())).divide(totalUnitPrice, 3, RoundingMode.HALF_EVEN);
dcBaseFinanceEbayItem.setSkuRatio(unitPriceRadio);
dcBaseFinanceEbayItem.setSkuAmount(dcBaseFinanceEbayItemDto.getGrossAmount().multiply(unitPriceRadio));
dcBaseFinanceEbayItem.setAccountId(dcBaseFinanceEbayItemDto.getAccountId());
dcBaseFinanceEbayItem.setGrossAmount(dcBaseFinanceEbayItemDto.getGrossAmount());
dcBaseFinanceEbayItem.setAccountEntryType(dcBaseFinanceEbayItemDto.getAccountEntryType());
dcBaseFinanceEbayItem.setBjDate(dcBaseFinanceEbayItemDto.getBjDate());
dcBaseFinanceEbayItem.setGmtDate(dcBaseFinanceEbayItemDto.getGmtDate());
dcBaseFinanceEbayItem.setItemId(dcBaseFinanceEbayItemDto.getItemId());
dcBaseFinanceEbayItem.setEbayId(dcBaseFinanceEbayItemDto.getId());
dcBaseFinanceEbayItem.setCurrency(dcBaseFinanceEbayItemDto.getCurrency());
dcBaseFinanceEbayItem.setExchangeRate(dcBaseFinanceEbayItemDto.getExchangeRate());
dcBaseFinanceEbayItem.setExchangeRateUsd(dcBaseFinanceEbayItemDto.getExchangeRateUsd());
dcBaseFinanceEbayItem.setSkuCount(dcBaseSkuMappingItemDto.getCount());
if(dcBaseFinanceEbayItem.getBailunSku() == null) {
dcBaseFinanceEbayItem.setBailunSku("无");
}
DcBaseFinanceEbayItemMapper dcBaseFinanceEbayItemMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayItemMapper.class);
dcBaseFinanceEbayItemMapper.insertSelective(dcBaseFinanceEbayItem);
}
}else{
DcBaseFinanceEbayItem dcBaseFinanceEbayItem = new DcBaseFinanceEbayItem();
dcBaseFinanceEbayItem.setSkuAmount(BigDecimal.ZERO);
dcBaseFinanceEbayItem.setAccountId(dcBaseFinanceEbayItemDto.getAccountId());
dcBaseFinanceEbayItem.setGrossAmount(dcBaseFinanceEbayItemDto.getGrossAmount());
dcBaseFinanceEbayItem.setAccountEntryType(dcBaseFinanceEbayItemDto.getAccountEntryType());
dcBaseFinanceEbayItem.setBjDate(dcBaseFinanceEbayItemDto.getBjDate());
dcBaseFinanceEbayItem.setGmtDate(dcBaseFinanceEbayItemDto.getGmtDate());
dcBaseFinanceEbayItem.setItemId(dcBaseFinanceEbayItemDto.getItemId());
dcBaseFinanceEbayItem.setEbayId(dcBaseFinanceEbayItemDto.getId());
dcBaseFinanceEbayItem.setExchangeRate(dcBaseFinanceEbayItemDto.getExchangeRate());
dcBaseFinanceEbayItem.setExchangeRateUsd(dcBaseFinanceEbayItemDto.getExchangeRateUsd());
DcBaseFinanceEbayItemMapper dcBaseFinanceEbayItemMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayItemMapper.class);
dcBaseFinanceEbayItemMapper.insertSelective(dcBaseFinanceEbayItem);
}
}
}catch (Exception e){
e.printStackTrace();
throw new RuntimeException("MYBATIS操作DB失败", e);
}finally {
SessionUtil.closeSession();
}
jobPointLog.setPageIndex(jobPointLog.getPageIndex()+1);
}while (jobPointLog.getPageSize() <= totalPage);
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()));
}
public long getEbayPage(long countEbayFee, JobPointLog jobPointLog) {
if (countEbayFee % jobPointLog.getPageSize() == 0) {
return countEbayFee / jobPointLog.getPageSize();
}
return countEbayFee / jobPointLog.getPageSize() + 1;
}
BigDecimal getTotalUnitPrice(List<DcBaseSkuMappingItemDto> dcBaseSkuMappingList) {
BigDecimal totalUnitPrice = BigDecimal.ZERO;
for(DcBaseSkuMappingItemDto dcBaseSkuMappingItemDto : dcBaseSkuMappingList) {
BigDecimal unitPrice = dcBaseSkuMappingItemDto.getUnitPrice() == null ? BigDecimal.ZERO : dcBaseSkuMappingItemDto.getUnitPrice();
totalUnitPrice = totalUnitPrice.add(unitPrice.multiply(BigDecimal.valueOf(dcBaseSkuMappingItemDto.getCount())));
}
return totalUnitPrice;
}
}
#EVENT_RDB_STORAGE_DRIVER=com.mysql.jdbc.Driver
#EVENT_RDB_STORAGE_URL=jdbc:mysql://192.168.6.140:3306/bailun_datacenter?serverTimezone=GMT%2B8&characterEncoding=utf-8
#EVENT_RDB_STORAGE_USERNAME=root
#EVENT_RDB_STORAGE_PASSWORD=123456
#ZOOKEEPER_SERVER=127.0.0.1:2181
EVENT_RDB_STORAGE_DRIVER=com.mysql.jdbc.Driver
EVENT_RDB_STORAGE_URL=jdbc:mysql://10.0.8.15:3306/bailun_datacenter?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
EVENT_RDB_STORAGE_USERNAME=root
EVENT_RDB_STORAGE_PASSWORD=#7kfnymAM$Y9-Ntf
ZOOKEEPER_SERVER=172.31.255.120:2181
NAME_SPACE=data-center
JOB_NAME=mid-calculate-ebay-item
JOB_CRON=0 0 7 * * ? *
JOB_AMAZON_NAME=mid-calculate-amazon-item
JOB_AMAZON_CRON=0 0 7 * * ? *
SHARDING_TOTAL_COUNT=1
\ No newline at end of file
package com.bailuntec;
import com.bailuntec.domain.entity.JobPointLog;
import com.bailuntec.job.CalculateEbayItemJob;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
public class ApplicationTest
{
@Test
public void shouldAnswerWithTrue()
{
CalculateEbayItemJob calculateEbayItemJob = new CalculateEbayItemJob();
JobPointLog jobPointLog = new JobPointLog();
jobPointLog.setPageIndex(0);
jobPointLog.setPageSize(100);
jobPointLog.setStartTime(LocalDateTime.of(2020,02, 01, 00, 00, 00));
jobPointLog.setEndTime(LocalDateTime.of(2020, 03, 15, 00, 00, 00));
calculateEbayItemJob.executeJob(null, jobPointLog);
}
}
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
<module>mid-auto-turnover-prepare</module> <module>mid-auto-turnover-prepare</module>
<module>mid-calculate-cost-first</module> <module>mid-calculate-cost-first</module>
<module>mid-duration-stock</module> <module>mid-duration-stock</module>
<module>mid-calculate-item</module>
</modules> </modules>
<parent> <parent>
......
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