记得上下班打卡 | git大法好,push需谨慎

Commit 5457116a authored by 胡佳晨's avatar 胡佳晨

Merge branch 'master' into dev_erp

parents 0a6ade42 2355f74e
package com.liquidnet.service.goblin.service; package com.liquidnet.service.goblin.service;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.GoblinMarketGoodsExcelDto;
import com.liquidnet.service.goblin.dto.GoblinMarketGoodsUnDateExcelDto;
import com.liquidnet.service.goblin.dto.GoblinZhengzaiMarketOrderExcelDto; import com.liquidnet.service.goblin.dto.GoblinZhengzaiMarketOrderExcelDto;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -13,4 +15,10 @@ public interface IGoblinExportService { ...@@ -13,4 +15,10 @@ public interface IGoblinExportService {
//导出商城订单信息 //导出商城订单信息
ResponseDto<String> exportMallOrder(HttpServletResponse response, String beginTime, String endTime, String state, Integer mailType,String storeId); ResponseDto<String> exportMallOrder(HttpServletResponse response, String beginTime, String endTime, String state, Integer mailType,String storeId);
List<GoblinMarketGoodsExcelDto> exportMarketGoods(Map<String, Object> paramMap);
List<GoblinMarketGoodsUnDateExcelDto> exportMarketGoodsUnDate(Map<String, Object> paramMap);
} }
package com.liquidnet.service.goblin.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
*日汇总的数据:
*
* SELECT
* c.name AS '活动名称',
* c.store_name AS '店铺名称',
* DATE_FORMAT(c.created_at,'%Y-%m-%d') as 日期,
* spu_no AS '商品编号' ,
* b.sku_bar_code AS '商品条码' ,
* a.`name` AS '商品名称' ,
* b.`name` AS '款式名称' ,
* gg.cate1_name AS '一级分类' ,
* gg.cate2_name AS '二级分类' ,
* gg.cate3_name AS '三级分类' ,
* b.price AS '款式价格' ,
* sum(CASE WHEN c. STATUS not IN(0 , 5) THEN c.num ELSE 0 END) AS '销售数量' ,
* sum(case when c.status in (6,7) then c.num else 0 end) '退款数量',
* sum(CASE WHEN c. STATUS not IN(0 , 5) THEN c.sku_price_actual ELSE 0 END ) AS '销售金额' ,
* sum(CASE WHEN c. STATUS IN(6 , 7) THEN c.sku_price_actual ELSE 0 END) AS '退款金额' ,
* sum(CASE WHEN c. STATUS IN(2 , 3 , 4) THEN c.price_voucher ELSE 0 END ) AS '优惠金额',
* sum(CASE WHEN c. STATUS IN(2 , 3 , 4) THEN c.num ELSE 0 END ) AS '小计数量' ,
* sum(CASE WHEN c. STATUS IN(2 , 3 , 4) THEN c.sku_price_actual ELSE 0 END) AS '小计金额'
* FROM
* goblin_goods AS a
* INNER JOIN goblin_goods_sku AS b ON a.spu_id = b.spu_id
* LEFT JOIN(
* SELECT
* c.sku_id ,
* d.market_id ,
* c. STATUS ,
* c.num ,
* c.sku_price_actual ,
* c.price_voucher,
* c.created_at,
* gsi.store_name,
* gsm.name
* FROM
* goblin_order_sku AS c
* INNER JOIN goblin_store_order AS d ON d.order_id = c.order_id
* inner join goblin_store_info gsi on gsi.store_id = d.store_id
* inner join goblin_self_marketing gsm on gsm.self_market_id = SUBSTRING_INDEX(d.market_id, 'ZZ', -1)
* ) AS c ON SUBSTRING_INDEX(c.sku_id, 'ZZ', 1) = b.sku_id
* INNER JOIN(
* SELECT
* spu_id ,
* gg. NAME ,
* gsgc1. NAME AS cate1_name ,
* gsgc2. NAME AS cate2_name,
* gsgc3. NAME AS cate3_name
* FROM
* goblin_goods AS gg
* LEFT JOIN goblin_self_goods_category AS gsgc1 ON gsgc1.cate_id = gg.cate_fid
* LEFT JOIN goblin_self_goods_category AS gsgc2 ON gsgc2.cate_id = gg.cate_sid
* LEFT JOIN goblin_self_goods_category AS gsgc3 ON gsgc3.cate_id = gg.cate_tid
* ) AS gg ON a.spu_id = gg.spu_id
* where c.market_id = 'ZZ222981107161997155345' and a.store_id = '1314c10a2b400c355dde0d060ba83afe'
* and c.created_at >='2022-11-18' and c.created_at <'2022-11-21'
* GROUP BY
* 日期,
* b.sku_id;
*
*/
@Getter
@Setter
public class GoblinMarketGoodsExcelDto implements Serializable, Cloneable {
private static final long serialVersionUID = -2804101458736599181L;
@ExcelProperty("活动名称")
private String marketName;
@ExcelProperty("店铺名称")
private String storeName;
@ExcelProperty("日期")
private String date;
@ExcelProperty("商品编号")
private String spuNo;
@ExcelProperty("商品条码")
private String skuBarCode;
@ExcelProperty("商品名称")
private String spuName;
@ExcelProperty("款式名称")
private String skuName;
@ExcelProperty("一级分类")
private String gg1;
@ExcelProperty("二级分类")
private String gg2;
@ExcelProperty("三级分类")
private String gg3;
@ExcelProperty("款式价格")
private BigDecimal skuPrice;
@ExcelProperty("销售数量")
private int saleCount;
@ExcelProperty("退款数量")
private int refundCount;
@ExcelProperty("销售金额")
private BigDecimal salePrice;
@ExcelProperty("退款金额")
private BigDecimal refundPrice;
@ExcelProperty("优惠金额")
private BigDecimal voucherPrice;
@ExcelProperty("小计数量")
private int count;
@ExcelProperty("小计金额")
private BigDecimal price;
}
package com.liquidnet.service.goblin.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 商品明细数据:
* <p>
* SELECT
* c.name AS '活动名称',
* c.store_name AS '店铺名称',
* # DATE_FORMAT(c.created_at,'%Y-%m-%d') as 日期,
* spu_no AS '商品编号' ,
* b.sku_bar_code AS '商品条码' ,
* a.`name` AS '商品名称' ,
* b.`name` AS '款式名称' ,
* gg.cate1_name AS '一级分类' ,
* gg.cate2_name AS '二级分类' ,
* gg.cate3_name AS '三级分类' ,
* b.price AS '款式价格' ,
* sum(CASE WHEN c. STATUS not IN(0 , 5) THEN c.num ELSE 0 END) AS '销售数量' ,
* sum(case when c.status in (6,7) then c.num else 0 end) '退款数量',
* sum(CASE WHEN c. STATUS not IN(0 , 5) THEN c.sku_price_actual ELSE 0 END ) AS '销售金额' ,
* sum(CASE WHEN c. STATUS IN(6 , 7) THEN c.sku_price_actual ELSE 0 END) AS '退款金额' ,
* sum(CASE WHEN c. STATUS IN(2 , 3 , 4) THEN c.price_voucher ELSE 0 END ) AS '优惠金额',
* sum(CASE WHEN c. STATUS IN(2 , 3 , 4) THEN c.num ELSE 0 END ) AS '小计数量' ,
* sum(CASE WHEN c. STATUS IN(2 , 3 , 4) THEN c.sku_price_actual ELSE 0 END) AS '小计金额'
* FROM
* goblin_goods AS a
* INNER JOIN goblin_goods_sku AS b ON a.spu_id = b.spu_id
* LEFT JOIN(
* SELECT
* c.sku_id ,
* d.market_id ,
* c. STATUS ,
* c.num ,
* c.sku_price_actual ,
* c.price_voucher,
* c.created_at,
* gsi.store_name,
* gsm.name
* FROM
* goblin_order_sku AS c
* INNER JOIN goblin_store_order AS d ON d.order_id = c.order_id
* inner join goblin_store_info gsi on gsi.store_id = d.store_id
* inner join goblin_self_marketing gsm on gsm.self_market_id = SUBSTRING_INDEX(d.market_id, 'ZZ', -1)
* ) AS c ON SUBSTRING_INDEX(c.sku_id, 'ZZ', 1) = b.sku_id
* INNER JOIN(
* SELECT
* spu_id ,
* gg. NAME ,
* gsgc1. NAME AS cate1_name ,
* gsgc2. NAME AS cate2_name,
* gsgc3. NAME AS cate3_name
* FROM
* goblin_goods AS gg
* LEFT JOIN goblin_self_goods_category AS gsgc1 ON gsgc1.cate_id = gg.cate_fid
* LEFT JOIN goblin_self_goods_category AS gsgc2 ON gsgc2.cate_id = gg.cate_sid
* LEFT JOIN goblin_self_goods_category AS gsgc3 ON gsgc3.cate_id = gg.cate_tid
* ) AS gg ON a.spu_id = gg.spu_id
* where c.market_id = 'ZZ222981107161997155345' and a.store_id = '1314c10a2b400c355dde0d060ba83afe'
* # where c.market_id = 'ZZ223161701266386447667' and a.store_id = '3a8440d3f0aa49a084ff3cf0310ebae2'
* # and c.created_at >='2022-11-18' and c.created_at <'2022-11-21'
* GROUP BY
* # 日期,
* b.sku_id;
*/
@Getter
@Setter
public class GoblinMarketGoodsUnDateExcelDto implements Serializable, Cloneable {
private static final long serialVersionUID = -2804101458736599181L;
@ExcelProperty("活动名称")
private String marketName;
@ExcelProperty("店铺名称")
private String storeName;
@ExcelProperty("商品编号")
private String spuNo;
@ExcelProperty("商品条码")
private String sku_bar_code;
@ExcelProperty("商品名称")
private String spuName;
@ExcelProperty("款式名称")
private String skuName;
@ExcelProperty("一级分类")
private String gg1;
@ExcelProperty("二级分类")
private String gg2;
@ExcelProperty("三级分类")
private String gg3;
@ExcelProperty("款式价格")
private BigDecimal skuPrice;
@ExcelProperty("销售数量")
private int saleCount;
@ExcelProperty("退款数量")
private int refundCount;
@ExcelProperty("销售金额")
private BigDecimal salePrice;
@ExcelProperty("退款金额")
private BigDecimal refundPrice;
@ExcelProperty("优惠金额")
private BigDecimal voucherPrice;
@ExcelProperty("小计数量")
private int count;
@ExcelProperty("小计金额")
private BigDecimal price;
}
package com.liquidnet.service.goblin.mapper; package com.liquidnet.service.goblin.mapper;
import com.liquidnet.service.goblin.dto.GoblinMarketGoodsExcelDto;
import com.liquidnet.service.goblin.dto.GoblinMarketGoodsUnDateExcelDto;
import com.liquidnet.service.goblin.dto.GoblinZhengzaiMarketOrderExcelDto; import com.liquidnet.service.goblin.dto.GoblinZhengzaiMarketOrderExcelDto;
import com.liquidnet.service.goblin.dto.MallOrdertDao; import com.liquidnet.service.goblin.dto.MallOrdertDao;
import com.liquidnet.service.goblin.entity.GoblinStoreOrder; import com.liquidnet.service.goblin.entity.GoblinStoreOrder;
...@@ -24,4 +26,9 @@ public interface GoblinStoreOrderMapper extends BaseMapper<GoblinStoreOrder> { ...@@ -24,4 +26,9 @@ public interface GoblinStoreOrderMapper extends BaseMapper<GoblinStoreOrder> {
states, @Param("mailType") Integer mailType, @Param("storeId") String storeId); states, @Param("mailType") Integer mailType, @Param("storeId") String storeId);
List<GoblinZhengzaiMarketOrderExcelDto> exportZhengzaiMarketOrder(Map<String, Object> paramMap); List<GoblinZhengzaiMarketOrderExcelDto> exportZhengzaiMarketOrder(Map<String, Object> paramMap);
List<GoblinMarketGoodsExcelDto> exportMarketGoods(Map<String, Object> paramMap);
List<GoblinMarketGoodsUnDateExcelDto> exportMarketGoodsUnDate(Map<String, Object> paramMap);
} }
...@@ -119,4 +119,130 @@ ...@@ -119,4 +119,130 @@
order by gso.created_at desc order by gso.created_at desc
</select> </select>
<select id="exportMarketGoods" resultType="com.liquidnet.service.goblin.dto.GoblinMarketGoodsExcelDto">
SELECT
c.name AS 'marketName',
c.store_name AS 'storeName',
DATE_FORMAT(c.created_at,'%Y-%m-%d') as 'date',
spu_no AS 'spuNo' ,
b.sku_bar_code AS 'skuBarCode' ,
a.`name` AS 'spuName' ,
b.`name` AS 'skuName' ,
gg.cate1_name AS 'gg1' ,
gg.cate2_name AS 'gg2' ,
gg.cate3_name AS 'gg3' ,
b.price AS 'skuPrice' ,
sum(CASE WHEN c. STATUS not IN(0 , 5) THEN c.num ELSE 0 END) AS 'saleCount' ,
sum(case when c.status in (6,7) then c.num else 0 end) 'refundCount',
sum(CASE WHEN c. STATUS not IN(0 , 5) THEN c.sku_price_actual ELSE 0 END ) AS 'salePrice' ,
sum(CASE WHEN c. STATUS IN(6 , 7) THEN c.sku_price_actual ELSE 0 END) AS 'refundPrice' ,
sum(CASE WHEN c. STATUS IN(2 , 3 , 4) THEN c.price_voucher ELSE 0 END ) AS 'voucherPrice',
sum(CASE WHEN c. STATUS IN(2 , 3 , 4) THEN c.num ELSE 0 END ) AS 'count' ,
sum(CASE WHEN c. STATUS IN(2 , 3 , 4) THEN c.sku_price_actual ELSE 0 END) AS 'price'
FROM
goblin_goods AS a
INNER JOIN goblin_goods_sku AS b ON a.spu_id = b.spu_id
LEFT JOIN(
SELECT
c.sku_id ,
d.market_id ,
c. STATUS ,
c.num ,
c.sku_price_actual ,
c.price_voucher,
c.created_at,
gsi.store_name,
gsm.name
FROM
goblin_order_sku AS c
INNER JOIN goblin_store_order AS d ON d.order_id = c.order_id
inner join goblin_store_info gsi on gsi.store_id = d.store_id
inner join goblin_self_marketing gsm on gsm.self_market_id = SUBSTRING_INDEX(d.market_id, 'ZZ', -1)
) AS c ON SUBSTRING_INDEX(c.sku_id, 'ZZ', 1) = b.sku_id
INNER JOIN(
SELECT
spu_id ,
gg. NAME ,
gsgc1. NAME AS cate1_name ,
gsgc2. NAME AS cate2_name,
gsgc3. NAME AS cate3_name
FROM
goblin_goods AS gg
LEFT JOIN goblin_self_goods_category AS gsgc1 ON gsgc1.cate_id = gg.cate_fid
LEFT JOIN goblin_self_goods_category AS gsgc2 ON gsgc2.cate_id = gg.cate_sid
LEFT JOIN goblin_self_goods_category AS gsgc3 ON gsgc3.cate_id = gg.cate_tid
) AS gg ON a.spu_id = gg.spu_id
<where>
c.market_id = #{marketId,jdbcType=VARCHAR}
and a.store_id = #{storeId,jdbcType=VARCHAR}
and c.created_at <![CDATA[>=]]> #{beginTime,jdbcType=TIMESTAMP}
and c.created_at <![CDATA[<]]> #{endTime,jdbcType=TIMESTAMP}
</where>
GROUP BY
date,
b.sku_id;
</select>
<select id="exportMarketGoodsUnDate" resultType="com.liquidnet.service.goblin.dto.GoblinMarketGoodsUnDateExcelDto">
SELECT
c.name AS 'marketName',
c.store_name AS 'storeName',
spu_no AS 'spuNo' ,
b.sku_bar_code AS 'skuBarCode' ,
a.`name` AS 'spuName' ,
b.`name` AS 'skuName' ,
gg.cate1_name AS 'gg1' ,
gg.cate2_name AS 'gg2' ,
gg.cate3_name AS 'gg3' ,
b.price AS 'skuPrice' ,
sum(CASE WHEN c. STATUS not IN(0 , 5) THEN c.num ELSE 0 END) AS 'saleCount' ,
sum(case when c.status in (6,7) then c.num else 0 end) 'refundCount',
sum(CASE WHEN c. STATUS not IN(0 , 5) THEN c.sku_price_actual ELSE 0 END ) AS 'salePrice' ,
sum(CASE WHEN c. STATUS IN(6 , 7) THEN c.sku_price_actual ELSE 0 END) AS 'refundPrice' ,
sum(CASE WHEN c. STATUS IN(2 , 3 , 4) THEN c.price_voucher ELSE 0 END ) AS 'voucherPrice',
sum(CASE WHEN c. STATUS IN(2 , 3 , 4) THEN c.num ELSE 0 END ) AS 'count' ,
sum(CASE WHEN c. STATUS IN(2 , 3 , 4) THEN c.sku_price_actual ELSE 0 END) AS 'price'
FROM
goblin_goods AS a
INNER JOIN goblin_goods_sku AS b ON a.spu_id = b.spu_id
LEFT JOIN(
SELECT
c.sku_id ,
d.market_id ,
c. STATUS ,
c.num ,
c.sku_price_actual ,
c.price_voucher,
c.created_at,
gsi.store_name,
gsm.name
FROM
goblin_order_sku AS c
INNER JOIN goblin_store_order AS d ON d.order_id = c.order_id
inner join goblin_store_info gsi on gsi.store_id = d.store_id
inner join goblin_self_marketing gsm on gsm.self_market_id = SUBSTRING_INDEX(d.market_id, 'ZZ', -1)
) AS c ON SUBSTRING_INDEX(c.sku_id, 'ZZ', 1) = b.sku_id
INNER JOIN(
SELECT
spu_id ,
gg. NAME ,
gsgc1. NAME AS cate1_name ,
gsgc2. NAME AS cate2_name,
gsgc3. NAME AS cate3_name
FROM
goblin_goods AS gg
LEFT JOIN goblin_self_goods_category AS gsgc1 ON gsgc1.cate_id = gg.cate_fid
LEFT JOIN goblin_self_goods_category AS gsgc2 ON gsgc2.cate_id = gg.cate_sid
LEFT JOIN goblin_self_goods_category AS gsgc3 ON gsgc3.cate_id = gg.cate_tid
) AS gg ON a.spu_id = gg.spu_id
<where>
c.market_id = #{marketId,jdbcType=VARCHAR}
and a.store_id = #{storeId,jdbcType=VARCHAR}
and c.created_at <![CDATA[>=]]> #{beginTime,jdbcType=TIMESTAMP}
and c.created_at <![CDATA[<]]> #{endTime,jdbcType=TIMESTAMP}
</where>
GROUP BY
b.sku_id;
</select>
</mapper> </mapper>
...@@ -10,6 +10,8 @@ import com.liquidnet.commons.lang.util.DateUtil; ...@@ -10,6 +10,8 @@ import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.constant.GoblinStatusConst; import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.GoblinMarketGoodsExcelDto;
import com.liquidnet.service.goblin.dto.GoblinMarketGoodsUnDateExcelDto;
import com.liquidnet.service.goblin.dto.GoblinZhengzaiMarketOrderExcelDto; import com.liquidnet.service.goblin.dto.GoblinZhengzaiMarketOrderExcelDto;
import com.liquidnet.service.goblin.service.IGoblinExportService; import com.liquidnet.service.goblin.service.IGoblinExportService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -124,4 +126,119 @@ public class GoblinExportDataController { ...@@ -124,4 +126,119 @@ public class GoblinExportDataController {
} }
} }
} }
/**
* excel正在下单根据日期导出
*
* @return
*/
@GetMapping("/exportMarketGoods")
@ApiOperation(value = "正在下单-商品根据日期")
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "storeId", value = "店铺ID"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "marketId", value = "活动ID"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "bDate", value = "开始时间[yyyy-MM-dd]"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "eDate", value = "结束时间[yyyy-MM-dd]"),
})
public void exportMarketGoods(@RequestParam(required = true, name = "bDate") @Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "开始日期格式有误") String beginDate,
@RequestParam(required = true, name = "eDate") @Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "结束日期格式有误") String endDate,
@RequestParam String marketId, @RequestParam String storeId, HttpServletResponse response) {
String currentUid = CurrentUtil.getCurrentUid();
ServletOutputStream servletOutputStream = null;
try {
log.debug("数据导出:正在下单-商品根据日期导出:[uid:{},storeId:{},marketId:{},date:{}~{}]", currentUid, storeId, marketId, beginDate, endDate);
String fileName = DateUtil.Formatter.yyyyMMddHHmmssTrim.format(LocalDateTime.now())
.concat(new String(("正在下单-商品根据日期导出").getBytes("gb2312"), StandardCharsets.ISO_8859_1));
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=".concat(fileName).concat(ExcelTypeEnum.XLSX.getValue()));
response.setContentType(MediaType.MULTIPART_FORM_DATA_VALUE);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
servletOutputStream = response.getOutputStream();
HashMap<String, Object> paramMap = CollectionUtil.mapStringObject();
paramMap.put("storeId", storeId);
paramMap.put("marketId", GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue() + marketId);
LocalDate beginLocalDate = DateUtil.Formatter.yyyy_MM_dd.parse2LocalDate(beginDate);
LocalDate endLocalDate = DateUtil.Formatter.yyyy_MM_dd.parse2LocalDate(endDate);
paramMap.put("beginTime", null == beginLocalDate ? beginLocalDate : LocalDateTime.of(beginLocalDate, LocalTime.MIN));
paramMap.put("endTime", null == endLocalDate ? endLocalDate : LocalDateTime.of(endLocalDate, LocalTime.MAX));
if (log.isDebugEnabled()) {
log.debug("数据导出:正在下单-商品根据日期导出:[uid:{},paramMap:{}]", currentUid, JsonUtils.toJson(paramMap));
}
List<GoblinMarketGoodsExcelDto> excelDtos = iGoblinExportService.exportMarketGoods(paramMap);
if (CollectionUtils.isEmpty(excelDtos)) {
log.warn("数据导出:正在下单-商品根据日期导出:无数据,请核实:[uid:{},paramMap:{}]", currentUid, JsonUtils.toJson(paramMap));
return;
}
EasyExcel.write(servletOutputStream, GoblinMarketGoodsExcelDto.class).sheet("销售数据").doWrite(excelDtos);
} catch (IOException e) {
log.error("数据导出:正在下单-商品根据日期导出:异常[uid:{},storeId:{},marketId:{},date:{}~{},ex.msg={}]",
currentUid, storeId, marketId, beginDate, endDate, e.getLocalizedMessage());
throw new LiquidnetServiceException("-1", "导出失败,请联系网站管理员");
} finally {
if (null != servletOutputStream) {
try {
servletOutputStream.close();
} catch (Exception ignored) {
}
}
}
}
/**
* excel正在下单根据导出
*/
@GetMapping("/exportMarketGoodsUnDate")
@ApiOperation(value = "正在下单-商品导出")
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "storeId", value = "店铺ID"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "marketId", value = "活动ID"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "bDate", value = "开始时间[yyyy-MM-dd HH:mm:ss]"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "eDate", value = "结束时间[yyyy-MM-dd HH:mm:ss]"),
})
public void exportMarketGoodsUnDate(@RequestParam(required = true, name = "bDate") @Pattern(regexp = LnsRegex.Valid.DATETIME_FULL, message = "开始日期格式有误") String beginDate,
@RequestParam(required = true, name = "eDate") @Pattern(regexp = LnsRegex.Valid.DATETIME_FULL, message = "结束日期格式有误") String endDate,
@RequestParam String marketId, @RequestParam String storeId, HttpServletResponse response) {
String currentUid = CurrentUtil.getCurrentUid();
ServletOutputStream servletOutputStream = null;
try {
log.debug("数据导出:正在下单-商品导出:[uid:{},storeId:{},marketId:{},date:{}~{}]", currentUid, storeId, marketId, beginDate, endDate);
String fileName = DateUtil.Formatter.yyyyMMddHHmmssTrim.format(LocalDateTime.now())
.concat(new String(("正在下单-商品导出").getBytes("gb2312"), StandardCharsets.ISO_8859_1));
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=".concat(fileName).concat(ExcelTypeEnum.XLSX.getValue()));
response.setContentType(MediaType.MULTIPART_FORM_DATA_VALUE);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
servletOutputStream = response.getOutputStream();
HashMap<String, Object> paramMap = CollectionUtil.mapStringObject();
paramMap.put("storeId", storeId);
paramMap.put("marketId", GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue() + marketId);
paramMap.put("beginTime", beginDate);
paramMap.put("endTime", endDate);
if (log.isDebugEnabled()) {
log.debug("数据导出:正在下单-商品导出:[uid:{},paramMap:{}]", currentUid, JsonUtils.toJson(paramMap));
}
List<GoblinMarketGoodsUnDateExcelDto> excelDtos = iGoblinExportService.exportMarketGoodsUnDate(paramMap);
if (CollectionUtils.isEmpty(excelDtos)) {
log.warn("数据导出:正在下单-商品导出:无数据,请核实:[uid:{},paramMap:{}]", currentUid, JsonUtils.toJson(paramMap));
return;
}
EasyExcel.write(servletOutputStream, GoblinMarketGoodsUnDateExcelDto.class).sheet("销售数据").doWrite(excelDtos);
} catch (IOException e) {
log.error("数据导出:正在下单-商品导出:异常[uid:{},storeId:{},marketId:{},date:{}~{},ex.msg={}]",
currentUid, storeId, marketId, beginDate, endDate, e.getLocalizedMessage());
throw new LiquidnetServiceException("-1", "导出失败,请联系网站管理员");
} finally {
if (null != servletOutputStream) {
try {
servletOutputStream.close();
} catch (Exception ignored) {
}
}
}
}
} }
...@@ -7,6 +7,8 @@ import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; ...@@ -7,6 +7,8 @@ import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy; import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.GoblinMarketGoodsExcelDto;
import com.liquidnet.service.goblin.dto.GoblinMarketGoodsUnDateExcelDto;
import com.liquidnet.service.goblin.dto.GoblinZhengzaiMarketOrderExcelDto; import com.liquidnet.service.goblin.dto.GoblinZhengzaiMarketOrderExcelDto;
import com.liquidnet.service.goblin.dto.MallOrdertDao; import com.liquidnet.service.goblin.dto.MallOrdertDao;
import com.liquidnet.service.goblin.mapper.GoblinStoreOrderMapper; import com.liquidnet.service.goblin.mapper.GoblinStoreOrderMapper;
...@@ -30,6 +32,17 @@ public class GoblinExportServiceImpl implements IGoblinExportService { ...@@ -30,6 +32,17 @@ public class GoblinExportServiceImpl implements IGoblinExportService {
@Autowired @Autowired
GoblinStoreOrderMapper goblinStoreOrderMapper; GoblinStoreOrderMapper goblinStoreOrderMapper;
@Override
public List<GoblinMarketGoodsExcelDto> exportMarketGoods(Map<String, Object> paramMap) {
return goblinStoreOrderMapper.exportMarketGoods(paramMap);
}
@Override
public List<GoblinMarketGoodsUnDateExcelDto> exportMarketGoodsUnDate(Map<String, Object> paramMap) {
return goblinStoreOrderMapper.exportMarketGoodsUnDate(paramMap);
}
@Override @Override
public List<GoblinZhengzaiMarketOrderExcelDto> exportZhengzaiMarketOrder(Map<String, Object> paramMap) { public List<GoblinZhengzaiMarketOrderExcelDto> exportZhengzaiMarketOrder(Map<String, Object> paramMap) {
return goblinStoreOrderMapper.exportZhengzaiMarketOrder(paramMap); return goblinStoreOrderMapper.exportZhengzaiMarketOrder(paramMap);
......
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