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

Commit 67484de3 authored by zhanggb's avatar zhanggb

+api:正在下单:活动订单数据导出-周焕;

parent 92699679
...@@ -22,11 +22,6 @@ ...@@ -22,11 +22,6 @@
<artifactId>liquidnet-service-goblin-do</artifactId> <artifactId>liquidnet-service-goblin-do</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.5</version>
</dependency>
<dependency> <dependency>
<groupId>com.liquidnet</groupId> <groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-dragon-api</artifactId> <artifactId>liquidnet-service-dragon-api</artifactId>
......
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.GoblinZhengzaiMarketOrderExcelDto;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
public interface IGoblinExportService { public interface IGoblinExportService {
List<GoblinZhengzaiMarketOrderExcelDto> exportZhengzaiMarketOrder(Map<String, Object> paramMap);
//导出商城订单信息 //导出商城订单信息
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);
} }
...@@ -16,4 +16,12 @@ ...@@ -16,4 +16,12 @@
<maven.compiler.target>8</maven.compiler.target> <maven.compiler.target>8</maven.compiler.target>
</properties> </properties>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>${easyexcel.version}</version>
</dependency>
</dependencies>
</project> </project>
\ No newline at end of file
package com.liquidnet.service.goblin.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
* select gso.order_id '订单ID',
* gso.user_mobile as '用户手机号',
* gos.spu_name '商品名称',
* gsm.name '活动名称',
* gsi.store_name '店铺名称',
* gso.order_code '订单编号',
* gso.pay_code '商户单号',
* gso.status '状态',
* if(gso.device_from = 'micropay', 'pos机订单', '线上订单') as 支付来源,
* gos.push_time as '核销时间',
* if(gso.status in (2, 3, 4), '已付款', '已退款') as '订单状态',
* (case gso.pay_type
* when 'wepay' then '微信支付'
* when 'alipay' then '支付宝支付'
* when 'huifu' then '汇付'
* when 'unionpay' then '云闪付'
* when 'pos_crash' then '现金支付'
* else '0元付' end)
* '支付类型',
* gos.num '数量',
* gos.sku_price '商品单价',
* gos.sku_price_actual '实际支付价格',
* gos.price_voucher '优惠金额',
* gso.created_at '订单创建时间'
* from goblin_store_order gso
* inner join goblin_order_sku gos on gos.order_id = gso.order_id
* inner join goblin_store_info gsi on gsi.store_id = gso.store_id
* inner join goblin_self_marketing gsm on gsm.self_market_id = SUBSTRING_INDEX(gso.market_id, 'ZZ', -1)
* where gso.status not in (0, 5)
* and gso.market_id = 'ZZ223161701266386447667'
* # and gsi.store_name = '摩登天空官方周边售卖'
* order by gso.created_at desc;
*/
@Getter
@Setter
public class GoblinZhengzaiMarketOrderExcelDto implements Serializable, Cloneable {
private static final long serialVersionUID = -2804101458736599181L;
@ExcelProperty("商品名称")
private String spuName;
@ExcelProperty("活动名称")
private String marketName;
@ExcelProperty("店铺名称")
private String storeName;
@ExcelProperty("订单编号")
private String orderCode;
@ExcelProperty("商户单号")
private String payCode;
@ExcelProperty("订单状态")
private String orderStatus;
@ExcelProperty("订单创建时间")
private Integer createdAt;
@ExcelProperty("核销时间")
private String pushTime;
@ExcelProperty("支付来源")
private String deviceFrom;
@ExcelProperty("支付类型")
private String payType;
@ExcelProperty("购买数量")
private String nums;
@ExcelProperty("商品单价")
private String skuPrice;
@ExcelProperty("实际支付价格")
private String priceActual;
@ExcelProperty("优惠金额")
private Integer priceVoucher;
}
package com.liquidnet.service.goblin.mapper; package com.liquidnet.service.goblin.mapper;
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;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
...@@ -7,6 +8,7 @@ import org.apache.ibatis.annotations.Param; ...@@ -7,6 +8,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
...@@ -21,4 +23,5 @@ public interface GoblinStoreOrderMapper extends BaseMapper<GoblinStoreOrder> { ...@@ -21,4 +23,5 @@ public interface GoblinStoreOrderMapper extends BaseMapper<GoblinStoreOrder> {
List<MallOrdertDao> exportMallOrder(@Param("beginTime") Date beginTime, @Param("endTime") Date endTime, @Param("states") List<String> List<MallOrdertDao> exportMallOrder(@Param("beginTime") Date beginTime, @Param("endTime") Date endTime, @Param("states") List<String>
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);
} }
...@@ -82,5 +82,41 @@ ...@@ -82,5 +82,41 @@
</where> </where>
group by gos.order_sku_id group by gos.order_sku_id
</select> </select>
<select id="exportZhengzaiMarketOrder" resultType="com.liquidnet.service.goblin.dto.GoblinZhengzaiMarketOrderExcelDto">
select gos.spu_name spuName,
gsm.name marketName,
gsi.store_name storeName,
gso.order_code orderCode,
gso.pay_code payCode,
if(gso.status in (2, 3, 4), '已付款', '已退款') orderStatus,
gso.created_at createdAt,
gos.push_time pushTime,
if(gso.device_from = 'micropay', 'pos机订单', '线上订单') deviceFrom,
(case gso.pay_type
when 'wepay' then '微信支付'
when 'alipay' then '支付宝支付'
when 'huifu' then '汇付'
when 'unionpay' then '云闪付'
when 'pos_crash' then '现金支付'
else '0元付' end) payType,
gos.num nums,
gos.sku_price skuPrice,
gos.sku_price_actual priceActual,
gos.price_voucher priceVoucher
from goblin_store_order gso
inner join goblin_order_sku gos on gos.order_id = gso.order_id
inner join goblin_store_info gsi on gsi.store_id = gso.store_id
inner join goblin_self_marketing gsm on gsm.self_market_id = SUBSTRING_INDEX(gso.market_id, 'ZZ', -1)
<where>
gso.status not in (0, 5) and gso.store_id = #{orderNo,jdbcType=VARCHAR} and gso.market_id = #{orderNo,jdbcType=VARCHAR}
<if test="beginTime != null">
and gso.created_at <![CDATA[>=]]> #{beginTime,jdbcType=TIMESTAMP}
</if>
<if test="endTime != null">
and gso.created_at <![CDATA[<=]]> #{endTime,jdbcType=TIMESTAMP}
</if>
</where>
order by gso.created_at desc
</select>
</mapper> </mapper>
package com.liquidnet.service.platform.controller.goblin; package com.liquidnet.service.platform.controller.goblin;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.liquidnet.commons.lang.constant.LnsRegex;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
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;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.Pattern;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
@Slf4j
@Api(tags = "商城-订单信息导出") @Api(tags = "商城-订单信息导出")
@Controller @Controller
@RequestMapping("/tools/export") @RequestMapping("/tools/export")
...@@ -47,4 +67,55 @@ public class GoblinExportDataController { ...@@ -47,4 +67,55 @@ public class GoblinExportDataController {
return iGoblinExportService.exportMallOrder(response, beginTime, endTime, state, mailType, storeId); return iGoblinExportService.exportMallOrder(response, beginTime, endTime, state, mailType, storeId);
} }
@GetMapping("zzMarketOrder")
@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 = false, dataType = "String", name = "bTime", value = "开始时间[yyyy-MM-dd]"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "eTime", value = "结束时间[yyyy-MM-dd]"),
})
public ResponseDto<String> exportZhengzaiMarketOrder(@RequestParam(required = false, name = "bTime") @Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "开始时间格式有误") String beginTime,
@RequestParam(required = false, name = "eTime") @Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "结束时间格式有误") String endTime,
@RequestParam String marketId, @RequestParam String storeId, HttpServletResponse response) {
String currentUid = CurrentUtil.getCurrentUid();
ServletOutputStream servletOutputStream = null;
try {
log.debug("数据导出:正在下单-销售数据:[uid:{},storeId:{},marketId:{},time:{}~{}]", currentUid, storeId, marketId, beginTime, endTime);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=".concat(DateUtil.Formatter.ddHHmmssTrim.format(LocalDateTime.now()))
.concat(new String(("正在下单-销售数据").getBytes("gb2312"), StandardCharsets.ISO_8859_1)).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", marketId);
LocalDateTime beginDateTime = DateUtil.Formatter.yyyy_MM_dd.parse(beginTime);
LocalDateTime endDateTime = DateUtil.Formatter.yyyy_MM_dd.parse(endTime);
paramMap.put("beginTime", beginDateTime);
paramMap.put("endTime", null == endDateTime ? endDateTime : endDateTime.withHour(23).withMinute(59).withSecond(59));
if (log.isDebugEnabled()) {
log.debug("数据导出:正在下单-销售数据:[uid:{},paramMap:{}]", currentUid, JsonUtils.toJson(paramMap));
}
List<GoblinZhengzaiMarketOrderExcelDto> excelDtos = iGoblinExportService.exportZhengzaiMarketOrder(paramMap);
if (CollectionUtils.isEmpty(excelDtos)) {
return ResponseDto.failure("无数据,请核实");
}
EasyExcel.write(servletOutputStream, GoblinZhengzaiMarketOrderExcelDto.class).sheet("销售数据").doWrite(excelDtos);
} catch (IOException e) {
log.error("数据导出:正在下单-销售数据:异常[UID={},ex.msg={}]", currentUid, e.getLocalizedMessage());
return ResponseDto.failure("导出失败,请联系网站管理员");
} finally {
if (null != servletOutputStream) {
try {
servletOutputStream.close();
} catch (Exception ignored) {
}
}
}
return ResponseDto.success();
}
} }
...@@ -7,6 +7,7 @@ import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; ...@@ -7,6 +7,7 @@ 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.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;
import com.liquidnet.service.goblin.service.IGoblinExportService; import com.liquidnet.service.goblin.service.IGoblinExportService;
...@@ -26,10 +27,14 @@ import java.util.*; ...@@ -26,10 +27,14 @@ import java.util.*;
@Service @Service
@Slf4j @Slf4j
public class GoblinExportServiceImpl implements IGoblinExportService { public class GoblinExportServiceImpl implements IGoblinExportService {
@Autowired @Autowired
GoblinStoreOrderMapper goblinStoreOrderMapper; GoblinStoreOrderMapper goblinStoreOrderMapper;
@Override
public List<GoblinZhengzaiMarketOrderExcelDto> exportZhengzaiMarketOrder(Map<String, Object> paramMap) {
return goblinStoreOrderMapper.exportZhengzaiMarketOrder(paramMap);
}
@Override @Override
public ResponseDto<String> exportMallOrder(HttpServletResponse response, String beginTime, String endTime, String state, Integer mailType, String storeId) { public ResponseDto<String> exportMallOrder(HttpServletResponse response, String beginTime, String endTime, String state, Integer mailType, String storeId) {
if (!timeIsNotNull(beginTime, endTime)) { if (!timeIsNotNull(beginTime, endTime)) {
......
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