Commit bd3526b1 by wutong

新增Ebay UK分析报表

parent 91d5806a
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bailuntec</groupId>
<artifactId>ebay-uk-report</artifactId>
<version>1.0.2</version>
<packaging>jar</packaging>
<name>ebay-uk-report</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<mysql-connector.version>5.1.47</mysql-connector.version>
<mybatis.version>1.3.2</mybatis.version>
<mybatis-generator.version>1.3.7</mybatis-generator.version>
<fastjson.version>1.2.51</fastjson.version>
<druid.version>1.1.9</druid.version>
<pageHelper.version>1.2.9</pageHelper.version>
<commons-collections4.vserion>4.2</commons-collections4.vserion>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mybatis generator -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>${mybatis-generator.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>${commons-collections4.vserion}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
package com.bailuntec.ebay_uk_report;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@MapperScan(basePackages = "com.bailuntec.ebay_uk_report.mapper")
@EnableScheduling
public class EbayUkReportApplication {
public static void main(String[] args) {
SpringApplication.run(EbayUkReportApplication.class, args);
}
}
package com.bailuntec.ebay_uk_report.controller;
import com.bailuntec.ebay_uk_report.service.EbayUkReportService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class EbayUkReportController {
@Autowired
private EbayUkReportService ebayUkReportService;
private static Logger logger = LoggerFactory.getLogger(EbayUkReportController.class);
@GetMapping("/test")
public String test(){
return "OK";
}
}
package com.bailuntec.ebay_uk_report.entity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class DcEbayReportUk {
private Integer id;
private Date day;
private Date updateTime;
private String ukSellerAccount;
private Integer ukTotalOrders;
private Integer surfaceMailOrders;
private Integer standardMailOrders;
private Integer privateLineOrders;
private BigDecimal privateLinePercent;
private Integer overseaSurfaceMailOrders;
private Integer overseaStandardMailOrders;
private Integer overseaOrders;
private BigDecimal overseaPercent;
private Integer marginOverseaOrders;
private Integer allMarginOrders;
}
\ No newline at end of file
package com.bailuntec.ebay_uk_report.mapper;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.Date;
@Repository
public interface DcEbayReportUkMapper {
Integer insertReport(@Param("twoDaysAgo") Date twoDaysAgo, @Param("lastDay") Date lastDay, @Param("today") Date today);
}
\ No newline at end of file
package com.bailuntec.ebay_uk_report.service;
import com.bailuntec.ebay_uk_report.mapper.DcEbayReportUkMapper;
import com.bailuntec.ebay_uk_report.util.DateTimeUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
public class EbayUkReportService {
@Autowired
private DcEbayReportUkMapper dcEbayReportUkMapper;
private static Logger logger = LoggerFactory.getLogger(EbayUkReportService.class);
@Scheduled(cron = "0 0 0 * * *") // 每天凌晨0点运行一次
public void generateReport() {
Date today = DateTimeUtil.getCurrentDay();
Date lastDay = DateTimeUtil.getCurrentLastDay();
Date twoDaysAgo = DateTimeUtil.addDays(lastDay, -1);
dcEbayReportUkMapper.insertReport(twoDaysAgo, lastDay, today);
}
}
package com.bailuntec.ebay_uk_report.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateTimeUtil {
public static final String DATE_FORMAT = "yyyy-MM-dd";
public static final String DATE_FORMAT1 = "yyyy-MM-dd HH:mm";
public static final String DATE_FORMAT2 = "yyyy-MM-dd HH:mm:ss";
/**
* 日期字符串转换为Date对象
* @param dateStr
* @param pattern
* @return
* @throws ParseException
*/
public static Date stringToDate(String dateStr, String pattern){
if(isNotEmpty(dateStr)){
try {
return new SimpleDateFormat(pattern).parse(dateStr.trim());
} catch (ParseException e) {
e.printStackTrace();
}
}
return null;
}
/**
* Date对象转换为日期字符串
* @param date
* @param pattern
* @return
*/
public static String dateToString(Date date, String pattern){
return new SimpleDateFormat(pattern).format(date);
}
/**
* 日期字符串是否为空
* @param dateStr
* @return
*/
public static boolean isNotEmpty(String dateStr){
return dateStr != null && !"".equals(dateStr.trim());
}
/**
* 获取距离某日期特定月数的月份的第一天
* @param monthNumber 要加减的月数
* @return
*/
public static Date getMonthFirstDay(Date date, int monthNumber){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, monthNumber);
calendar.set(Calendar.DAY_OF_MONTH, 1);
return calendar.getTime();
}
/**
* 获取距离特定日期天数的日期
* @param date
* @param days 要加减的天数
* @return 加减后的日期
*/
public static Date addDays(Date date, int days){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, days);
return calendar.getTime();
}
/**
* 获取当前月第一天
* @return
*/
public static Date getCurrentMonthFirstDay(){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 1);
return stringToDate(dateToString(calendar.getTime(), DATE_FORMAT), DATE_FORMAT);
}
/**
* 获取当前月最大日期
* @return
*/
public static Date getCurrentMonthMaxDay(){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DATE));
return stringToDate(dateToString(calendar.getTime(), DATE_FORMAT), DATE_FORMAT);
}
/**
* 获取今天的日期
* @return
*/
public static Date getCurrentDay(){
Calendar calendar = Calendar.getInstance();
return stringToDate(dateToString(calendar.getTime(), DATE_FORMAT), DATE_FORMAT);
}
/**
* 获取今天的昨天日期
* @return
*/
public static Date getCurrentLastDay(){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, -1);
return stringToDate(dateToString(calendar.getTime(), DATE_FORMAT), DATE_FORMAT);
}
public static void main(String[] args) {
System.out.println(dateToString(getCurrentLastDay(), DATE_FORMAT));
}
}
package com.bailuntec.ebay_uk_report.util;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
import javax.net.ssl.SSLContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
/**
* 网络请求工具类
*/
public class HttpUtil {
public static RestTemplate restTemplate = new RestTemplate();
/**
* 设置跨域请求头
* @param response
* @param request
*/
public static void setCors(HttpServletResponse response, HttpServletRequest request) {
String origin = request.getHeader("Origin");
response.setHeader("Access-Control-Allow-Origin", origin);
response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE");
response.setHeader("Access-Control-Allow-Credentials", "true");
}
/**
* 发起http get请求
* @param url
* @return
* @throws Exception
*/
public static String httpGet(String url) throws Exception{
return restTemplate.getForObject(url, String.class);
}
/**
* 发起http post请求
* @param url
* @param paramsJson
* @return
* @throws Exception
*/
public static String httpPost(String url, String paramsJson) throws Exception{
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
HttpEntity<String> requestEntity = new HttpEntity<>(paramsJson, headers);
return restTemplate.postForObject(url, requestEntity, String.class);
}
/**
* 获取https请求的RestTemplete
* @return
* @throws KeyStoreException
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public static RestTemplate getHttpsRestTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true;
SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();
SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext);
CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
requestFactory.setHttpClient(httpClient);
return new RestTemplate(requestFactory);
}
/**
* 发送https get请求
* @param url
* @return
* @throws Exception
*/
public static String httpsGet(String url) throws Exception{
RestTemplate restTemplate = getHttpsRestTemplate();
return restTemplate.getForObject(url, String.class);
}
}
\ No newline at end of file
package com.bailuntec.ebay_uk_report.util;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import org.springframework.util.ResourceUtils;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class MybatisGeneratorUtil {
public static void main(String[] args) throws Exception {
generator();
}
private static void generator() throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = ResourceUtils.getFile("classpath:generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
System.out.println("代码生成完毕>>>>>>>>>>>>");
}
}
server:
port: 8033
servlet:
context-path: /ebayUkReport
spring:
datasource:
name: mysql_datacenter
type: com.alibaba.druid.pool.DruidDataSource
#druid相关配置
druid:
#监控统计拦截的filters
filters: stat
driver-class-name: com.mysql.jdbc.Driver
#基本属性
url: jdbc:mysql://gz-cdb-kp7s5i79.sql.tencentcdb.com:61691/bailun_datacenter?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true
username: root
password: "#7kfnymAM$Y9-Ntf"
#配置初始化大小/最小/最大
initial-size: 1
min-idle: 1
max-active: 20
#获取连接等待超时时间
max-wait: 60000
#间隔多久进行一次检测,检测需要关闭的空闲连接
time-between-eviction-runs-millis: 60000
#一个连接在池中最小生存的时间
min-evictable-idle-time-millis: 300000
validation-query: SELECT 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
#打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.bailuntec.profitstatistics.entity
configuration:
map-underscore-to-camel-case: true
logging:
file: log/ebayUkReport.log
url:
# 新财务系统
cwSystem: http://cw.bailuntec.com
# 获取公司主体
getCompanyMainBody: ${url.cwSystem}/API/API/GetCompanyMainBody
# 获取银行账号余额
getBankAccountBalance: ${url.cwSystem}/api/api/GetBankAccountSummary
# 获取平台提现在途资金信息
getWithdrawOnWaySummary: ${url.cwSystem}/api/api/GetWithdrawOnWaySummary
# 获取公司主体借款余额
getBorrowBalance: ${url.cwSystem}/api/api/GetBorrows
# 获取汇率
getExchangeRate: http://www.bailuntec.com/api/ExchangeRate/GetRmbExchangeRates
# getExchangeRate: http://www.bailuntec.com/api/ExchangeRate/GetExchangeRate
# 获取销售平台和站点信息
getPlatformAndSite: http://pams.bailuntec.com/Api/GetPlatformSites
# 获取供应商往来数据:应付账款和预付账款
getSupplierTransaction: http://purchase.bailuntec.com/api/GetList_SupplierTransactionStatictis
# 获取与 其他应付款 和 其他应收款 相关的费用系统费用单
getOtherCost: http://api.fee.bailuntec.com/purchase/other/cost/api/balanceSheetCost
# 获取与 固定资产 相关的费用系统采购单
getOtherBuy: http://api.fee.bailuntec.com/purchase/other/buy/api/balanceSheetBuy
# 获取待付款的付款单 变成 已付款状态的记录
getNoPayCost: http://api.fee.bailuntec.com/purchase/other/cost/api/noPayCost
# 获取物流供应商往来数据
getLogisticsSupplierTransaction: http://purchase.bailuntec.com/api/GetList_SupplierTransactionExpress
# 获取半成品原料SKU信息
getSemiSku: http://mjpms.bailuntec.com/api/MaterialData
# 获取半成品供应商报价流水
getSemiSupOfferLog: http://mjgys.bailuntec.com/api/SupofferLog
# 获取半成品库存流水
getSemiStockLog: http://mjzz.bailuntec.com/api/StockLog
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 数据库驱动位置-->
<!--<classPathEntry location="/"/>-->
<context id="DB2Tables" targetRuntime="MyBatis3">
<!-- 注释 -->
<commentGenerator >
<property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
<property name="suppressDate" value="true" /> <!-- 是否生成注释带时间戳-->
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://gz-cdb-kp7s5i79.sql.tencentcdb.com:61691/bailun_datacenter"
userId="root"
password="#7kfnymAM$Y9-Ntf">
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--生成实体类存放位置-->
<javaModelGenerator targetPackage="com.bailuntec.ebay_uk_report.entity" targetProject="src/main/java">
<property name="enableSubPackages" value="false" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!--生成Dao类存放位置-->
<!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
type="MIXEDMAPPER",注解和XML混用,生成Java Model 和基于注解的Mapper对象,动态SQL用XML
type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口 -->
<javaClientGenerator type="MIXEDMAPPER" targetPackage="com.bailuntec.ebay_uk_report.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<table tableName="dc_balance_sheet" domainObjectName="DcBalanceSheet" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bailuntec.ebay_uk_report.mapper.DcEbayReportUkMapper">
<insert id="insertReport">
insert into dc_ebay_report_uk(day,uk_seller_account,uk_total_orders,surface_mail_orders,standard_mail_orders,private_line_orders,private_line_percent,
oversea_surface_mail_orders,oversea_standard_mail_orders,oversea_orders,oversea_percent,margin_oversea_orders,all_margin_orders)
select #{lastDay},
a.sellAccount,
ifnull(b.surfaceMailOrders,0)+ifnull(c.standardMailOrders,0)+ifnull(d.overseaSurfaceMailOrders,0)+ifnull(e.overseaStandardMailOrders,0),
ifnull(b.surfaceMailOrders,0),
ifnull(c.standardMailOrders,0),
ifnull(b.surfaceMailOrders,0)+ifnull(c.standardMailOrders,0),
case when ifnull(b.surfaceMailOrders,0)+ifnull(c.standardMailOrders,0)+ifnull(d.overseaSurfaceMailOrders,0)+ifnull(e.overseaStandardMailOrders,0) = 0 then 0
else (ifnull(b.surfaceMailOrders,0)+ifnull(c.standardMailOrders,0))/(ifnull(b.surfaceMailOrders,0)+ifnull(c.standardMailOrders,0)+ifnull(d.overseaSurfaceMailOrders,0)+ifnull(e.overseaStandardMailOrders,0)) end,
ifnull(d.overseaSurfaceMailOrders,0),
ifnull(e.overseaStandardMailOrders,0),
ifnull(d.overseaSurfaceMailOrders,0)+ifnull(e.overseaStandardMailOrders,0),
case when ifnull(b.surfaceMailOrders,0)+ifnull(c.standardMailOrders,0)+ifnull(d.overseaSurfaceMailOrders,0)+ifnull(e.overseaStandardMailOrders,0) = 0 then 0
else (ifnull(d.overseaSurfaceMailOrders,0)+ifnull(e.overseaStandardMailOrders,0))/(ifnull(b.surfaceMailOrders,0)+ifnull(c.standardMailOrders,0)+ifnull(d.overseaSurfaceMailOrders,0)+ifnull(e.overseaStandardMailOrders,0)) end,
case when round((ifnull(b.surfaceMailOrders,0)+ifnull(c.standardMailOrders,0)+ifnull(d.overseaSurfaceMailOrders,0)+ifnull(e.overseaStandardMailOrders,0))/2,0)-ifnull(d.overseaSurfaceMailOrders,0)-ifnull(e.overseaStandardMailOrders,0) <![CDATA[<=]]> 0 then 0
else (round((ifnull(b.surfaceMailOrders,0)+ifnull(c.standardMailOrders,0)+ifnull(d.overseaSurfaceMailOrders,0)+ifnull(e.overseaStandardMailOrders,0))/2,0)-ifnull(d.overseaSurfaceMailOrders,0)-ifnull(e.overseaStandardMailOrders,0)) * 1.5 end,
case when round((ifnull(b.surfaceMailOrders,0)+ifnull(c.standardMailOrders,0)+ifnull(d.overseaSurfaceMailOrders,0)+ifnull(e.overseaStandardMailOrders,0))/2,0)-ifnull(d.overseaSurfaceMailOrders,0)-ifnull(e.overseaStandardMailOrders,0) <![CDATA[<=]]> 0 then ifnull(a.allMarginOrders,0)
else (round((ifnull(b.surfaceMailOrders,0)+ifnull(c.standardMailOrders,0)+ifnull(d.overseaSurfaceMailOrders,0)+ifnull(e.overseaStandardMailOrders,0))/2,0)-ifnull(d.overseaSurfaceMailOrders,0)-ifnull(e.overseaStandardMailOrders,0)) * 1.5 + ifnull(a.allMarginOrders,0) end
from (select g.config_value sellAccount,ifnull(k.all_margin_orders,0) allMarginOrders from dc_ebay_report_uk_config g
left join dc_ebay_report_uk k on g.config_value = k.uk_seller_account and k.day=#{twoDaysAgo} where g.type = 1) a
left join (
select count(1) surfaceMailOrders,t1.seller_account from
(select distinct o.seller_account,o.origin_order_id,o.logistics_warehouse_code,o.logistics_method_code,p.logistics_order_id
from dc_base_oms_order o
inner join dc_base_oms_pick p on o.bailun_order_id=p.bailun_order_id
inner join dc_ebay_report_uk_config c1 on c1.type=1 and o.seller_account=c1.config_value
inner join dc_ebay_report_uk_config c2 on c2.type=2 and p.logistics_order_id = c2.config_value
where o.platform_type='Ebay' and o.website='UK' and o.bailun_payment_status!='Canceled'
and o.paid_time<![CDATA[>=]]>#{lastDay} and o.paid_time<![CDATA[<]]>#{today}) t1
group by t1.seller_account
) b on a.sellAccount = b.seller_account
left join (
select count(1) standardMailOrders,t2.seller_account from
(select distinct o.seller_account,o.origin_order_id,o.logistics_warehouse_code,o.logistics_method_code,p.logistics_order_id
from dc_base_oms_order o
inner join dc_base_oms_pick p on o.bailun_order_id=p.bailun_order_id
inner join dc_ebay_report_uk_config c1 on c1.type=1 and o.seller_account=c1.config_value
inner join dc_ebay_report_uk_config c2 on c2.type=3 and p.logistics_order_id = c2.config_value
where o.platform_type='Ebay' and o.website='UK' and o.bailun_payment_status!='Canceled'
and o.paid_time<![CDATA[>=]]>#{lastDay} and o.paid_time<![CDATA[<]]>#{today}) t2
group by t2.seller_account
) c on a.sellAccount = c.seller_account
left join (
select count(1) overseaSurfaceMailOrders,t3.seller_account from
(select distinct o.seller_account,o.origin_order_id,o.logistics_warehouse_code,o.logistics_method_code,p.logistics_order_id
from dc_base_oms_order o
inner join dc_base_oms_pick p on o.bailun_order_id=p.bailun_order_id
inner join dc_ebay_report_uk_config c1 on c1.type=1 and o.seller_account=c1.config_value
inner join dc_ebay_report_uk_config c2 on c2.type=4 and p.logistics_order_id = c2.config_value
where o.platform_type='Ebay' and o.website='UK' and o.bailun_payment_status!='Canceled'
and o.paid_time<![CDATA[>=]]>#{lastDay} and o.paid_time<![CDATA[<]]>#{today}) t3
group by t3.seller_account
) d on a.sellAccount = d.seller_account
left join (
select count(1) overseaStandardMailOrders,t4.seller_account from
(select distinct o.seller_account,o.origin_order_id,o.logistics_warehouse_code,o.logistics_method_code,p.logistics_order_id
from dc_base_oms_order o
inner join dc_base_oms_pick p on o.bailun_order_id=p.bailun_order_id
inner join dc_ebay_report_uk_config c1 on c1.type=1 and o.seller_account=c1.config_value
inner join dc_ebay_report_uk_config c2 on c2.type=5 and p.logistics_order_id = c2.config_value
where o.platform_type='Ebay' and o.website='UK' and o.bailun_payment_status!='Canceled'
and o.paid_time<![CDATA[>=]]>#{lastDay} and o.paid_time<![CDATA[<]]>#{today}) t4
group by t4.seller_account
) e on a.sellAccount = e.seller_account
</insert>
</mapper>
\ No newline at end of file
package com.bailuntec.ebay_uk_report.service;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class EbayUkReportServiceTest {
@Autowired
private EbayUkReportService ebayUkReportService;
@Test
public void generateReport(){
ebayUkReportService.generateReport();
}
}
\ 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