Commit d9cf5d96 by yinyong

ebay代码调整

parent ea568715
package com.bailuntec.domain.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class DcBaseEbaySkuMappingDto {
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_ebay_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_ebay_sku_mapping.sku_code
*
* @mbg.generated
*/
private String skuCode;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_ebay_sku_mapping.platform_code
*
* @mbg.generated
*/
private String platformCode;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_ebay_sku_mapping.has_publish
*
* @mbg.generated
*/
private Integer hasPublish;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_ebay_sku_mapping.gmt_create
*
* @mbg.generated
*/
private LocalDateTime gmtCreate;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_ebay_sku_mapping.gmt_modify
*
* @mbg.generated
*/
private LocalDateTime gmtModify;
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_ebay_sku_mapping
*
* @mbg.generated
*/
private BigDecimal unitPrice;
}
\ No newline at end of file
...@@ -156,5 +156,5 @@ public class DcBaseFinanceEbayItemDto { ...@@ -156,5 +156,5 @@ public class DcBaseFinanceEbayItemDto {
*/ */
private Date reportDate; private Date reportDate;
private List<DcBaseSkuMappingItemDto> dcBaseSkuMappingList; private List<DcBaseEbaySkuMappingDto> dcBaseSkuMappingList;
} }
\ No newline at end of file
...@@ -1020,12 +1020,12 @@ ...@@ -1020,12 +1020,12 @@
<result column="exchange_rate" jdbcType="DECIMAL" property="exchangeRate" /> <result column="exchange_rate" jdbcType="DECIMAL" property="exchangeRate" />
<result column="exchange_rate_usd" jdbcType="DECIMAL" property="exchangeRateUsd" /> <result column="exchange_rate_usd" jdbcType="DECIMAL" property="exchangeRateUsd" />
<result column="report_date" jdbcType="DATE" property="reportDate" /> <result column="report_date" jdbcType="DATE" property="reportDate" />
<collection property="dcBaseSkuMappingList" column="item_id" ofType="com.bailuntec.domain.dto.DcBaseSkuMappingItemDto" select="selectSkuMapping"> <collection property="dcBaseSkuMappingList" column="item_id" ofType="com.bailuntec.domain.dto.DcBaseEbaySkuMappingDto" select="selectSkuMapping">
</collection> </collection>
</resultMap> </resultMap>
<select id="selectSkuMapping" resultType="com.bailuntec.domain.dto.DcBaseSkuMappingItemDto"> <select id="selectSkuMapping" resultType="com.bailuntec.domain.dto.DcBaseEbaySkuMappingDto">
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 dc0.*, dc1.unit_price from dc_base_ebay_sku_mapping dc0 left join dc_base_sku dc1 on dc0.sku_code = dc1.bailun_sku where dc0.item_id = #{itemId}
</select> </select>
<resultMap id="BaseResultMap2" type="com.bailuntec.domain.dto.DcBaseFinanceEbayItemDto"> <resultMap id="BaseResultMap2" type="com.bailuntec.domain.dto.DcBaseFinanceEbayItemDto">
...@@ -1053,48 +1053,39 @@ ...@@ -1053,48 +1053,39 @@
</resultMap> </resultMap>
<!--calculate start--> <!--calculate start-->
<select id="selectEbayList" resultMap="BaseResultMap2"> <select id="selectEbayList" resultMap="BaseResultMap1">
select * from dc_base_finance_ebay select * from dc_base_finance_ebay
where bj_date &gt;= #{startTime} and bj_date &lt; #{endTime} where bj_date &gt;= #{startTime} and bj_date &lt; #{endTime}
order by id asc order by id asc
limit ${pageIndex * pageSize} , #{pageSize} limit ${pageIndex * pageSize} , #{pageSize}
</select> </select>
<select id="selectEbayList1" resultMap="BaseResultMap2">
select * from dc_base_finance_ebay
where bj_date &gt;= #{startTime} and bj_date &lt; #{endTime}
and id &gt;= #{type}
order by id asc
limit ${pageIndex * pageSize} , #{pageSize}
</select>
<select id="selectSkuPrice" resultType="java.math.BigDecimal"> <select id="selectSkuPrice" resultType="java.math.BigDecimal">
select unit_price from dc_base_sku where bailun_sku = #{skuCode} select unit_price from dc_base_sku where bailun_sku = #{skuCode}
</select> </select>
<!--calculate end--> <!--calculate end-->
<!-- ebayitem start -->
<select id="countByGroup" resultType="java.lang.Long"> <select id="countByGroup" resultType="java.lang.Long">
select count(1) from (select item_id from dc_base_finance_ebay select count(1) from (select item_id from dc_base_finance_ebay
where bj_date &gt;= #{startTime} and bj_date &lt; #{endTime} group by item_id) b where bj_date &gt;= #{startTime} and bj_date &lt; #{endTime} group by item_id) b
</select> </select>
<select id="selectEbay" resultMap="BaseResultMap2">
select * from dc_base_finance_ebay
<select id="selectEbayItem" resultType="java.lang.String">
select item_id from dc_base_finance_ebay
where bj_date &gt;= #{startTime} and bj_date &lt; #{endTime} where bj_date &gt;= #{startTime} and bj_date &lt; #{endTime}
group by item_id group by item_id
order by id asc order by id asc
limit ${pageIndex * pageSize} , #{pageSize} limit ${pageIndex * pageSize} , #{pageSize}
</select> </select>
<select id="selectEbayItem" resultType="java.lang.String">
select item_id from dc_base_finance_ebay
<select id="selectEbay" resultMap="BaseResultMap2">
select * from dc_base_finance_ebay
where bj_date &gt;= #{startTime} and bj_date &lt; #{endTime} where bj_date &gt;= #{startTime} and bj_date &lt; #{endTime}
group by item_id group by item_id
order by id asc order by id asc
limit ${pageIndex * pageSize} , #{pageSize} limit ${pageIndex * pageSize} , #{pageSize}
</select> </select>
<!-- ebayitem end -->
</mapper> </mapper>
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.bailuntec.job; ...@@ -2,6 +2,7 @@ package com.bailuntec.job;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.bailuntec.domain.constant.EbaySkuMappingRoot; import com.bailuntec.domain.constant.EbaySkuMappingRoot;
import com.bailuntec.domain.dto.DcBaseEbaySkuMappingDto;
import com.bailuntec.domain.dto.DcBaseFinanceEbayItemDto; import com.bailuntec.domain.dto.DcBaseFinanceEbayItemDto;
import com.bailuntec.domain.entity.*; import com.bailuntec.domain.entity.*;
import com.bailuntec.domain.example.DcBaseFinanceEbayExample; import com.bailuntec.domain.example.DcBaseFinanceEbayExample;
...@@ -38,13 +39,7 @@ public class CalculateEbayItemJob extends PointJob { ...@@ -38,13 +39,7 @@ public class CalculateEbayItemJob extends PointJob {
DcBaseFinanceEbayItemMapper dcBaseFinanceEbayItemMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayItemMapper.class); DcBaseFinanceEbayItemMapper dcBaseFinanceEbayItemMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayItemMapper.class);
dcBaseFinanceEbayItemMapper.deleteByExample(DcBaseFinanceEbayItemExample.newAndCreateCriteria().andBjDateGreaterThanOrEqualTo(jobPointLog.getStartTime()).andBjDateLessThan(jobPointLog.getEndTime()).example()); dcBaseFinanceEbayItemMapper.deleteByExample(DcBaseFinanceEbayItemExample.newAndCreateCriteria().andBjDateGreaterThanOrEqualTo(jobPointLog.getStartTime()).andBjDateLessThan(jobPointLog.getEndTime()).example());
DcBaseFinanceEbayMapper dcBaseFinanceEbayMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayMapper.class); DcBaseFinanceEbayMapper dcBaseFinanceEbayMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayMapper.class);
if (StringUtils.isBlank(shardingContext.getJobParameter())) {
countEbayFee = dcBaseFinanceEbayMapper.countByExample(DcBaseFinanceEbayExample.newAndCreateCriteria().andBjDateGreaterThanOrEqualTo(jobPointLog.getStartTime()).andBjDateLessThan(jobPointLog.getEndTime()).example()); countEbayFee = dcBaseFinanceEbayMapper.countByExample(DcBaseFinanceEbayExample.newAndCreateCriteria().andBjDateGreaterThanOrEqualTo(jobPointLog.getStartTime()).andBjDateLessThan(jobPointLog.getEndTime()).example());
}else {
Integer jobParameter = Integer.parseInt(shardingContext.getJobParameter());
countEbayFee = dcBaseFinanceEbayMapper.countByExample(DcBaseFinanceEbayExample.newAndCreateCriteria().andBjDateGreaterThanOrEqualTo(jobPointLog.getStartTime()).andBjDateLessThan(jobPointLog.getEndTime()).andIdGreaterThanOrEqualTo(jobParameter).example());
}
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("MYBATIS操作DB失败", e); throw new RuntimeException("MYBATIS操作DB失败", e);
...@@ -58,18 +53,43 @@ public class CalculateEbayItemJob extends PointJob { ...@@ -58,18 +53,43 @@ public class CalculateEbayItemJob extends PointJob {
List<DcBaseFinanceEbayItemDto> dcBaseFinanceEbayItemDtoList; List<DcBaseFinanceEbayItemDto> dcBaseFinanceEbayItemDtoList;
try{ try{
DcBaseFinanceEbayMapper dcBaseFinanceEbayMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayMapper.class); DcBaseFinanceEbayMapper dcBaseFinanceEbayMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayMapper.class);
if(StringUtils.isBlank(shardingContext.getJobParameter())){
dcBaseFinanceEbayItemDtoList = dcBaseFinanceEbayMapper.selectEbayList(jobPointLog); dcBaseFinanceEbayItemDtoList = dcBaseFinanceEbayMapper.selectEbayList(jobPointLog);
}else{
if(jobPointLog.getType() != 0) {
}
jobPointLog.setType(Integer.parseInt(shardingContext.getJobParameter()));
dcBaseFinanceEbayItemDtoList = dcBaseFinanceEbayMapper.selectEbayList1(jobPointLog);
}
for(DcBaseFinanceEbayItemDto dcBaseFinanceEbayItemDto : dcBaseFinanceEbayItemDtoList) { for(DcBaseFinanceEbayItemDto dcBaseFinanceEbayItemDto : dcBaseFinanceEbayItemDtoList) {
if(dcBaseFinanceEbayItemDto.getDcBaseSkuMappingList() != null && dcBaseFinanceEbayItemDto.getDcBaseSkuMappingList().size() > 0) {
BigDecimal totalUnitPrice = getTotalUnitPrice0(dcBaseFinanceEbayItemDto.getDcBaseSkuMappingList());
for(DcBaseEbaySkuMappingDto dcBaseEbaySkuMappingDto : dcBaseFinanceEbayItemDto.getDcBaseSkuMappingList()) {
DcBaseFinanceEbayItem dcBaseFinanceEbayItem = new DcBaseFinanceEbayItem();
BeanUtils.copyProperties(dcBaseFinanceEbayItem, dcBaseEbaySkuMappingDto);
BigDecimal unitPrice = dcBaseEbaySkuMappingDto.getUnitPrice() == null ? BigDecimal.ZERO : dcBaseEbaySkuMappingDto.getUnitPrice();
BigDecimal unitPriceRadio;
if(totalUnitPrice.compareTo(BigDecimal.ZERO) == 0) {
unitPriceRadio = BigDecimal.ONE.divide(BigDecimal.valueOf(dcBaseFinanceEbayItemDto.getDcBaseSkuMappingList().size()), 3, RoundingMode.HALF_EVEN);
}else {
unitPriceRadio = unitPrice.divide(totalUnitPrice, 3, RoundingMode.HALF_EVEN);
}
dcBaseFinanceEbayItem.setBailunSku(dcBaseEbaySkuMappingDto.getSkuCode());
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(1);
if(dcBaseFinanceEbayItem.getBailunSku() == null) {
dcBaseFinanceEbayItem.setBailunSku("无");
}
DcBaseFinanceEbayItemMapper dcBaseFinanceEbayItemMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayItemMapper.class);
dcBaseFinanceEbayItemMapper.insertSelective(dcBaseFinanceEbayItem);
}
}else{
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
list.add(dcBaseFinanceEbayItemDto.getItemId()); list.add(dcBaseFinanceEbayItemDto.getItemId());
...@@ -147,7 +167,21 @@ public class CalculateEbayItemJob extends PointJob { ...@@ -147,7 +167,21 @@ public class CalculateEbayItemJob extends PointJob {
dcBaseFinanceEbayItemMapper.insertSelective(dcBaseFinanceEbayItem); dcBaseFinanceEbayItemMapper.insertSelective(dcBaseFinanceEbayItem);
} }
} else { } else {
throw new RuntimeException("调用ebay广告费映射失败, 响应200, 请求参数" + dcBaseFinanceEbayItemDto.getItemId()); 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.setCurrency(dcBaseFinanceEbayItemDto.getCurrency());
dcBaseFinanceEbayItem.setExchangeRate(dcBaseFinanceEbayItemDto.getExchangeRate());
dcBaseFinanceEbayItem.setExchangeRateUsd(dcBaseFinanceEbayItemDto.getExchangeRateUsd());
DcBaseFinanceEbayItemMapper dcBaseFinanceEbayItemMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayItemMapper.class);
dcBaseFinanceEbayItemMapper.insertSelective(dcBaseFinanceEbayItem);
}
} }
} }
} }
...@@ -173,6 +207,15 @@ public class CalculateEbayItemJob extends PointJob { ...@@ -173,6 +207,15 @@ public class CalculateEbayItemJob extends PointJob {
return countEbayFee / jobPointLog.getPageSize() + 1; return countEbayFee / jobPointLog.getPageSize() + 1;
} }
BigDecimal getTotalUnitPrice0(List<DcBaseEbaySkuMappingDto> dcBaseSkuMappingList) {
BigDecimal totalUnitPrice = BigDecimal.ZERO;
for(DcBaseEbaySkuMappingDto dcBaseEbaySkuMappingDto : dcBaseSkuMappingList){
BigDecimal unitPrice = dcBaseEbaySkuMappingDto.getUnitPrice() == null ? BigDecimal.ZERO : dcBaseEbaySkuMappingDto.getUnitPrice();
totalUnitPrice = totalUnitPrice.add(unitPrice);
}
return totalUnitPrice;
}
BigDecimal getTotalUnitPrice(List<DcBaseEbaySkuMapping> dcBaseEbaySkuMappingList) { BigDecimal getTotalUnitPrice(List<DcBaseEbaySkuMapping> dcBaseEbaySkuMappingList) {
BigDecimal totalUnitPrice = BigDecimal.ZERO; BigDecimal totalUnitPrice = BigDecimal.ZERO;
DcBaseFinanceEbayMapper dcBaseFinanceEbayMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayMapper.class); DcBaseFinanceEbayMapper dcBaseFinanceEbayMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayMapper.class);
......
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