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

Commit f9ca0721 authored by Administrator's avatar Administrator 🎨

Merge branch 'pre' into 'master'

Pre

See merge request !218
parents 1c601790 e0f525d7
package com.liquidnet.client.admin.web.controller.zhengzai.tools;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.utils.poi.ExcelUtil;
import com.liquidnet.client.admin.zhengzai.kylin.dto.*;
import com.liquidnet.client.admin.zhengzai.kylin.service.IExportService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
@RequestMapping("tools/export")
public class ExportDataController extends BaseController {
@Autowired
private IExportService exportService;
private String prefix = "zhengzai/financial";
@GetMapping()
public String financial() {
return prefix + "/export";
}
/**
* 导出订单明细
*
* @param exportType
* @param beginTime
* @param endTime
* @param showId
* @return
*/
@PostMapping("/export/orderInfo")
@ResponseBody
public AjaxResult exportOrderInfo(Integer exportType, String beginTime, String endTime, String showId) {
if (null == exportType) {
return error("导出类型有误!");
}
if (exportType == 1) {//按订单时间导出信息
if (!timeIsNotNull(beginTime, endTime)) {
return error("按时间类型导出,开始时间和结束时间不能为空!");
}
List<OrderDetailedExportVo> list = exportService.exportOrderByOrderTime(beginTime, endTime);
if (list.size() > 0) {
ExcelUtil<OrderDetailedExportVo> util = new ExcelUtil(OrderDetailedExportVo.class);
return util.exportExcel(list, exportType + "");
}
} else if (exportType == 2) {//按演出时间导出信息
if (!timeIsNotNull(beginTime, endTime)) {
return error("按时间类型导出,开始时间和结束时间不能为空!");
}
List<OrderDetailedByShowDateExportVo> byShowTimeList = exportService.exportOrderByShowTime(beginTime, endTime);
if (byShowTimeList.size() > 0) {
ExcelUtil<OrderDetailedByShowDateExportVo> util = new ExcelUtil(OrderDetailedByShowDateExportVo.class);
return util.exportExcel(byShowTimeList, exportType + "");
}
} else if (exportType == 3) {//按id导出信息
if (!StringUtils.isNotBlank(showId)) {
return error("演出id不能为空!");
}
List<OrderDetailedByShowIdExportVo> byShowIdList = exportService.exportOrderByShowId(showId);
if (byShowIdList.size() > 0) {
ExcelUtil<OrderDetailedByShowIdExportVo> util = new ExcelUtil(OrderDetailedByShowIdExportVo.class);
return util.exportExcel(byShowIdList, exportType + "");
}
}
return error("查无信息!");
}
private boolean timeIsNotNull(String beginTime, String endTime) {
return StringUtils.isNotBlank(beginTime) && StringUtils.isNotBlank(endTime) ? true : false;
}
/**
* 导出会员订单
*
* @param beginTime
* @param endTime
* @return
*/
@PostMapping("/export/memberOrder")
@ResponseBody
public AjaxResult exportMemberOrder(String beginTime, String endTime) {
if (!timeIsNotNull(beginTime, endTime)) {
return error("开始时间和结束时间不能为空!");
}
List<OrderMemberExportVo> list = exportService.exportMemberOrder(beginTime, endTime);
if (list.size() == 0) {
return error("查无信息");
}
ExcelUtil<OrderMemberExportVo> util = new ExcelUtil(OrderMemberExportVo.class);
return util.exportExcel(list, "会员订单");
}
/**
* 导出商品订单
*
* @param beginTime
* @param endTime
* @return
*/
@PostMapping("/export/commodityOrder")
@ResponseBody
public AjaxResult exportCommodityOrder(String beginTime, String endTime) {
if (!timeIsNotNull(beginTime, endTime)) {
return error("开始时间和结束时间不能为空!");
}
List<OrderCommodityExportVo> list = exportService.exportCommodityOrder(beginTime, endTime);
if (list.size() == 0) {
return error("查无信息");
}
ExcelUtil<OrderCommodityExportVo> util = new ExcelUtil(OrderCommodityExportVo.class);
return util.exportExcel(list, "商品订单");
}
}
...@@ -285,6 +285,9 @@ ...@@ -285,6 +285,9 @@
} else if(26 == targetType) { } else if(26 == targetType) {
Id = dataList[i].id; Id = dataList[i].id;
Title = dataList[i].name; Title = dataList[i].name;
}else if(7 == targetType || 9 == targetType) {
Id = dataList[i].spuId;
Title = dataList[i].spuName;
} else { } else {
Id = dataList[i].id; Id = dataList[i].id;
Title = dataList[i].title; Title = dataList[i].title;
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<th:block th:include="include :: header('财务导出')"/>
<th:block th:include="include :: datetimepicker-css"/>
</head>
<style>
td {
horiz-align: center;
text-align: left;
padding: 10px;
}
</style>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>搜索类型:</label>
<select id="type" name="type">
<option value="0">请选择</option>
<option value="1">商品[订单时间]</option>
<option value="2">演出[订单时间]</option>
<option value="3">演出[演出id]</option>
<option value="4">演出[演出时间]</option>
<option value="5">会员[订单时间]</option>
</select>
</li>
<li>
<label>演出id:</label>
<input id="performanceId" type="text" name="performanceId"/>
</li>
<li>
<div class="form-group">
<label>时间范围:</label>
<input type="text" style="width: 200px;float: left"
class="form-control" id="startTime" placeholder="开始时间选择" name="timeStart"/>
<span class="control-label"
style="float: left;margin-left: 10px;margin-right: 10px"> - </span>
<input type="text" style="width: 200px;float: left"
class="form-control" id="endTime" placeholder="结束时间选择" name="timeEnd"/>
</div>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="searchExport()"><i
class="fa fa-search"></i>导出</a>
</li>
</ul>
</div>
</form>
</div>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: datetimepicker-js"/>
<script th:inline="javascript">
var prefix = ctx + "tools/export";
var url = prefix;
var formData = new FormData();
$("input[name='timeStart']").datetimepicker({
format: "yyyy-mm-dd hh:ii:ss",
autoclose: true
});
$("input[name='timeEnd']").datetimepicker({
format: "yyyy-mm-dd hh:ii:ss",
autoclose: true
});
function searchExport() {
var type = document.getElementById("type").value;
var performanceId = document.getElementById("performanceId").value;
var st = document.getElementById("startTime").value;
var et = document.getElementById("endTime").value;
var exportType = 0;
if (type == 2) {
exportType = 1;
} else if (type == 3) {
exportType = 3;
} else if (type == 4) {
exportType = 2;
}
if (type == 0) {
alert("请选择导出类型");
return
} else if (type == 1) {//商品导出逻辑
if (st == "" || et == "") {
alert("请选择时间范围");
return
} else {
url = url + "/export/commodityOrder";
}
} else if (type == 2) {//演出[订单时间]
if (st == "" || et == "") {
alert("请选择时间范围");
return
} else {
url = url + "/export/orderInfo";
}
} else if (type == 3) {//演出[演出id]
if (performanceId == "") {
alert("演出id不能为空");
return
} else {
url = url + "/export/orderInfo";
}
} else if (type == 4) {//演出[演出时间]
if (st == "" || et == "") {
alert("请选择时间范围");
return
} else {
url = url + "/export/orderInfo";
}
} else if (type == 5) {//会员[订单时间]
if (st == "" || et == "") {
alert("请选择时间范围");
return
} else {
url = url + "/export/memberOrder";
}
}
var options = {
modalName: "财务导出",
exportUrl: url,
}
$.table.init(options);
var param = {
"beginTime": st,
"endTime": et,
"showId": performanceId,
"exportType": exportType
};
$.table.exportExcel("", param)
url = prefix;
}
</script>
</body>
</html>
package com.liquidnet.client.admin.zhengzai.kylin.dto;
import com.liquidnet.client.admin.common.annotation.Excel;
import com.liquidnet.service.kylin.dao.CommodityOrderExportDao;
import lombok.Data;
import java.io.Serializable;
@Data
public class OrderCommodityExportVo implements Serializable, Cloneable {
@Excel(name = "商户订单号", cellType = Excel.ColumnType.STRING)
private String code;
@Excel(name = "微信/支付宝订单号", cellType = Excel.ColumnType.STRING)
private String paymentId;
@Excel(name = "商品名称", cellType = Excel.ColumnType.STRING)
private String name;
@Excel(name = "支付平台", cellType = Excel.ColumnType.STRING)
private String paymentType;
@Excel(name = "实际支付价格", cellType = Excel.ColumnType.STRING)
private String priceActual;
@Excel(name = "创建时间", cellType = Excel.ColumnType.STRING)
private String createdAt;
@Excel(name = "快递费", cellType = Excel.ColumnType.STRING)
private String priceExpress;
@Excel(name = "退款价格", cellType = Excel.ColumnType.STRING)
private String priceRefund;
@Excel(name = "状态", cellType = Excel.ColumnType.STRING)
private String status;
@Excel(name = "退款时间", cellType = Excel.ColumnType.STRING)
private String refundAt;
private static final OrderCommodityExportVo obj = new OrderCommodityExportVo();
public static OrderCommodityExportVo getNew() {
try {
return (OrderCommodityExportVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new OrderCommodityExportVo();
}
public OrderCommodityExportVo copyCommodityOrderExportVo(CommodityOrderExportDao source) {
this.setCode(source.getCode());
this.setPaymentId(source.getPaymentId());
this.setName(source.getName());
this.setPaymentType(source.getPaymentType());
this.setPriceActual(source.getPriceActual());
this.setCreatedAt(source.getCreatedAt());
this.setPriceExpress(source.getPriceExpress());
this.setPriceRefund(source.getPriceRefund());
this.setStatus(source.getStatus());
this.setRefundAt(source.getRefundAt());
return this;
}
}
package com.liquidnet.client.admin.zhengzai.kylin.dto;
import com.liquidnet.client.admin.common.annotation.Excel;
import com.liquidnet.service.kylin.dao.OrderExportDao;
import lombok.Data;
import java.io.Serializable;
@Data
public class OrderDetailedByShowDateExportVo implements Serializable, Cloneable {
@Excel(name = "订单号", cellType = Excel.ColumnType.STRING)
private String orderCode;
@Excel(name = "商户订单号", cellType = Excel.ColumnType.STRING)
private String payCode;
@Excel(name = "微信/支付宝订单号", cellType = Excel.ColumnType.STRING)
private String paymentId;
@Excel(name = "购买名称", cellType = Excel.ColumnType.STRING)
private String performanceTitle;
@Excel(name = "支付平台", cellType = Excel.ColumnType.STRING)
private String paymentType;
@Excel(name = "演出类型", cellType = Excel.ColumnType.STRING)
private String type;
@Excel(name = "票种名称", cellType = Excel.ColumnType.STRING)
private String title1;
@Excel(name = "购票数量", cellType = Excel.ColumnType.STRING)
private String number;
@Excel(name = "场次", cellType = Excel.ColumnType.STRING)
private String title2;
//todo
@Excel(name = "退款时间", cellType = Excel.ColumnType.STRING)
private String updateAt;
@Excel(name = "退款原因", cellType = Excel.ColumnType.STRING)
private String reject;
@Excel(name = "支付金额", cellType = Excel.ColumnType.STRING)
private String priceActual;
@Excel(name = "支付时间", cellType = Excel.ColumnType.STRING)
private String timePay;
private static final OrderDetailedByShowDateExportVo obj = new OrderDetailedByShowDateExportVo();
public static OrderDetailedByShowDateExportVo getNew() {
try {
return (OrderDetailedByShowDateExportVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new OrderDetailedByShowDateExportVo();
}
public OrderDetailedByShowDateExportVo copyOrderExportVo(OrderExportDao source) {
this.setPerformanceTitle(source.getPerformanceTitle());
this.setOrderCode(source.getOrderCode());
this.setPayCode(source.getPayCode());
this.setPaymentId(source.getPaymentId());
this.setPaymentType(source.getPaymentType());
this.setType(source.getType());
this.setTitle1(source.getTitle1());
this.setTitle2(source.getTitle2());
this.setNumber(source.getNumber());
this.setPriceActual(source.getPriceActual());
this.setUpdateAt(source.getRefundAt());
this.setReject(source.getReject());
this.setTimePay(source.getTimePay());
return this;
}
}
package com.liquidnet.client.admin.zhengzai.kylin.dto;
import com.liquidnet.client.admin.common.annotation.Excel;
import com.liquidnet.service.kylin.dao.OrderExportDao;
import lombok.Data;
import java.io.Serializable;
@Data
public class OrderDetailedByShowIdExportVo implements Serializable, Cloneable {
@Excel(name = "订单号", cellType = Excel.ColumnType.STRING)
private String orderCode;
@Excel(name = "商户订单号", cellType = Excel.ColumnType.STRING)
private String payCode;
@Excel(name = "微信/支付宝订单号", cellType = Excel.ColumnType.STRING)
private String paymentId;
@Excel(name = "购买名称", cellType = Excel.ColumnType.STRING)
private String performanceTitle;
@Excel(name = "支付平台", cellType = Excel.ColumnType.STRING)
private String paymentType;
@Excel(name = "数量", cellType = Excel.ColumnType.STRING)
private String number;
@Excel(name = "单价", cellType = Excel.ColumnType.STRING)
private String price;
@Excel(name = "支付金额", cellType = Excel.ColumnType.STRING)
private String priceActual;
@Excel(name = "快递费", cellType = Excel.ColumnType.STRING)
private String priceExpress;
@Excel(name = "退票数量", cellType = Excel.ColumnType.STRING)
private String refundNumber;
@Excel(name = "演出类型", cellType = Excel.ColumnType.STRING)
private String type;
@Excel(name = "票种名称", cellType = Excel.ColumnType.STRING)
private String title1;
@Excel(name = "场次", cellType = Excel.ColumnType.STRING)
private String title2;
@Excel(name = "退款时间", cellType = Excel.ColumnType.STRING)
private String updateAt;
@Excel(name = "退款原因", cellType = Excel.ColumnType.STRING)
private String reject;
@Excel(name = "退款金额", cellType = Excel.ColumnType.STRING)
private String priceRefund;
@Excel(name = "支付时间", cellType = Excel.ColumnType.STRING)
private String timePay;
private static final OrderDetailedByShowIdExportVo obj = new OrderDetailedByShowIdExportVo();
public static OrderDetailedByShowIdExportVo getNew() {
try {
return (OrderDetailedByShowIdExportVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new OrderDetailedByShowIdExportVo();
}
public OrderDetailedByShowIdExportVo copyOrderExportVo(OrderExportDao source) {
this.setPerformanceTitle(source.getPerformanceTitle());
this.setOrderCode(source.getOrderCode());
this.setPayCode(source.getPayCode());
this.setPaymentId(source.getPaymentId());
this.setPaymentType(source.getPaymentType());
this.setType(source.getType());
this.setTitle1(source.getTitle1());
this.setTitle2(source.getTitle2());
this.setPrice(source.getPrice());
this.setPriceExpress(source.getPriceExpress());
this.setNumber(source.getNumber());
this.setRefundNumber(source.getRefundNumber());
this.setPriceActual(source.getPriceActual());
this.setPriceRefund(source.getPriceRefund());
this.setUpdateAt(source.getRefundAt());
this.setReject(source.getReject());
this.setTimePay(source.getTimePay());
return this;
}
}
package com.liquidnet.client.admin.zhengzai.kylin.dto;
import com.liquidnet.client.admin.common.annotation.Excel;
import com.liquidnet.service.kylin.dao.OrderExportDao;
import lombok.Data;
import java.io.Serializable;
@Data
public class OrderDetailedExportVo implements Serializable, Cloneable {
@Excel(name = "订单号", cellType = Excel.ColumnType.STRING)
private String orderCode;
@Excel(name = "商户订单号", cellType = Excel.ColumnType.STRING)
private String code;
@Excel(name = "微信/支付宝订单号", cellType = Excel.ColumnType.STRING)
private String paymentId;
@Excel(name = "购买名称", cellType = Excel.ColumnType.STRING)
private String performanceTitle;
@Excel(name = "订单状态", cellType = Excel.ColumnType.STRING)
private String status;
@Excel(name = "支付平台", cellType = Excel.ColumnType.STRING)
private String paymentType;
@Excel(name = "演出类型", cellType = Excel.ColumnType.STRING)
private String type;
@Excel(name = "票种名称", cellType = Excel.ColumnType.STRING)
private String title1;
@Excel(name = "场次", cellType = Excel.ColumnType.STRING)
private String title2;
@Excel(name = "单价", cellType = Excel.ColumnType.STRING)
private String price;
@Excel(name = "快递费", cellType = Excel.ColumnType.STRING)
private String priceExpress;
@Excel(name = "购票数", cellType = Excel.ColumnType.STRING)
private String number;
@Excel(name = "退票数", cellType = Excel.ColumnType.STRING)
private String refundNumber;
@Excel(name = "实付金额", cellType = Excel.ColumnType.STRING)
private String priceActual;
@Excel(name = "退款金额", cellType = Excel.ColumnType.STRING)
private String priceRefund;
@Excel(name = "退款时间", cellType = Excel.ColumnType.STRING)
private String refundAt;
@Excel(name = "退款原因", cellType = Excel.ColumnType.STRING)
private String reject;
@Excel(name = "支付时间", cellType = Excel.ColumnType.STRING)
private String timePay;
private static final OrderDetailedExportVo obj = new OrderDetailedExportVo();
public static OrderDetailedExportVo getNew() {
try {
return (OrderDetailedExportVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new OrderDetailedExportVo();
}
public OrderDetailedExportVo copyOrderExportVo(OrderExportDao source) {
this.setOrderCode(source.getOrderCode());
this.setCode(source.getCode());
this.setPaymentId(source.getPaymentId());
this.setPerformanceTitle(source.getPerformanceTitle());
this.setStatus(source.getStatus());
this.setPaymentType(source.getPaymentType());
this.setType(source.getType());
this.setTitle1(source.getTitle1());
this.setTitle2(source.getTitle2());
this.setPrice(source.getPrice());
this.setPriceExpress(source.getPriceExpress());
this.setNumber(source.getNumber());
this.setRefundNumber(source.getRefundNumber());
this.setPriceActual(source.getPriceActual());
this.setPriceRefund(source.getPriceRefund());
this.setRefundAt(source.getRefundAt());
this.setReject(source.getReject());
this.setTimePay(source.getTimePay());
return this;
}
}
package com.liquidnet.client.admin.zhengzai.kylin.dto; package com.liquidnet.client.admin.zhengzai.kylin.dto;
import com.liquidnet.client.admin.common.annotation.Excel; import com.liquidnet.client.admin.common.annotation.Excel;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.kylin.dao.OrderExportDao; import com.liquidnet.service.kylin.dao.OrderExportDao;
import lombok.Data; import lombok.Data;
......
package com.liquidnet.client.admin.zhengzai.kylin.dto;
import com.liquidnet.client.admin.common.annotation.Excel;
import com.liquidnet.service.kylin.dao.MemberOrderExportDao;
import lombok.Data;
import java.io.Serializable;
@Data
public class OrderMemberExportVo implements Serializable, Cloneable {
@Excel(name = "商户订单号", cellType = Excel.ColumnType.STRING)
private String payCode;
@Excel(name = "微信/支付宝订单号", cellType = Excel.ColumnType.STRING)
private String paymentId;
@Excel(name = "支付方式", cellType = Excel.ColumnType.STRING)
private String payType;
@Excel(name = "订单状态", cellType = Excel.ColumnType.STRING)
private String state;
@Excel(name = "价格", cellType = Excel.ColumnType.STRING)
private String price;
@Excel(name = "支付时间", cellType = Excel.ColumnType.STRING)
private String paymentAt;
@Excel(name = "创建时间", cellType = Excel.ColumnType.STRING)
private String createdAt;
@Excel(name = "更新时间", cellType = Excel.ColumnType.STRING)
private String updatedAt;
@Excel(name = "退款时间", cellType = Excel.ColumnType.STRING)
private String refundAt;
@Excel(name = "退款金额", cellType = Excel.ColumnType.STRING)
private String refundPrice;
private static final OrderMemberExportVo obj = new OrderMemberExportVo();
public static OrderMemberExportVo getNew() {
try {
return (OrderMemberExportVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new OrderMemberExportVo();
}
public OrderMemberExportVo copyMemberOrderExportVo(MemberOrderExportDao source) {
this.setPayCode(source.getPayNo());
this.setPaymentId(source.getPaymentId());
this.setPayType(source.getPayType());
this.setState(source.getState());
this.setPrice(source.getPrice());
this.setPaymentAt(source.getPaymentAt());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
this.setRefundAt(source.getRefundAt());
this.setRefundPrice(source.getRefundPrice());
return this;
}
}
package com.liquidnet.client.admin.zhengzai.kylin.service; package com.liquidnet.client.admin.zhengzai.kylin.service;
import com.github.pagehelper.PageInfo; import com.liquidnet.client.admin.zhengzai.kylin.dto.*;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderExportVo;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import java.util.List; import java.util.List;
...@@ -11,4 +9,19 @@ public interface IExportService { ...@@ -11,4 +9,19 @@ public interface IExportService {
List<OrderExportVo> exportOrderByPerformanceIdAll(String performancesId); List<OrderExportVo> exportOrderByPerformanceIdAll(String performancesId);
List<OrderExportVo> exportOrderByPerformanceIdPay(String performancesId); List<OrderExportVo> exportOrderByPerformanceIdPay(String performancesId);
//根据订单时间导出信息
List<OrderDetailedExportVo> exportOrderByOrderTime(String beginTime, String endTime);
//根据演出时间导出信息
List<OrderDetailedByShowDateExportVo> exportOrderByShowTime(String beginTime, String endTime);
//根据演出id导出信息
List<OrderDetailedByShowIdExportVo> exportOrderByShowId(String showId);
//导出会员订单信息
List<OrderMemberExportVo> exportMemberOrder(String beginTime, String endTime);
//导出商品订单信息
List<OrderCommodityExportVo> exportCommodityOrder(String beginTime, String endTime);
} }
package com.liquidnet.client.admin.zhengzai.kylin.service.impl; package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.fasterxml.jackson.core.type.TypeReference;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.exception.BusinessException; import com.liquidnet.client.admin.common.exception.BusinessException;
import com.liquidnet.client.admin.common.utils.StringUtils; import com.liquidnet.client.admin.zhengzai.kylin.dto.*;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderExportVo;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import com.liquidnet.client.admin.zhengzai.kylin.service.IExportService; import com.liquidnet.client.admin.zhengzai.kylin.service.IExportService;
import com.liquidnet.client.admin.zhengzai.kylin.service.IImportService; import com.liquidnet.service.kylin.dao.CommodityOrderExportDao;
import com.liquidnet.client.admin.zhengzai.kylin.utils.DataUtils; import com.liquidnet.service.kylin.dao.MemberOrderExportDao;
import com.liquidnet.client.admin.zhengzai.kylin.utils.OrderUtils;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dao.OrderExportDao; import com.liquidnet.service.kylin.dao.OrderExportDao;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo; import com.liquidnet.service.kylin.mapper.KylinPerformancesMapper;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.MultiValueMap;
import java.math.BigDecimal; import java.text.ParseException;
import java.time.LocalDateTime; import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
@Service @Service
...@@ -64,4 +43,86 @@ public class ExportServiceImpl implements IExportService { ...@@ -64,4 +43,86 @@ public class ExportServiceImpl implements IExportService {
} }
return voList; return voList;
} }
@Override
public List<OrderDetailedExportVo> exportOrderByOrderTime(String beginTime, String endTime) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date beginDate = sdf.parse(beginTime);
Date endDate = sdf.parse(endTime);
List<OrderExportDao> list = performancesMapper.exportOrderByOrderTime(beginDate,endDate);
List<OrderDetailedExportVo> voList = new ArrayList();
for (OrderExportDao item :list){
voList.add(OrderDetailedExportVo.getNew().copyOrderExportVo(item));
}
return voList;
} catch (ParseException e) {
e.printStackTrace();
throw new BusinessException("导出异常,请联系网站管理员!");
}
}
@Override
public List<OrderDetailedByShowDateExportVo> exportOrderByShowTime(String beginTime, String endTime) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date beginDate = sdf.parse(beginTime);
Date endDate = sdf.parse(endTime);
List<OrderExportDao> list = performancesMapper.exportOrderByShowTime(beginDate,endDate);
List<OrderDetailedByShowDateExportVo> voList = new ArrayList();
for (OrderExportDao item :list){
voList.add(OrderDetailedByShowDateExportVo.getNew().copyOrderExportVo(item));
}
return voList;
} catch (ParseException e) {
e.printStackTrace();
throw new BusinessException("导出异常,请联系网站管理员!");
}
}
@Override
public List<OrderDetailedByShowIdExportVo> exportOrderByShowId(String showId) {
List<OrderExportDao> list = performancesMapper.exportOrderByShowId(showId);
List<OrderDetailedByShowIdExportVo> voList = new ArrayList();
for (OrderExportDao item :list){
voList.add(OrderDetailedByShowIdExportVo.getNew().copyOrderExportVo(item));
}
return voList;
}
@Override
public List<OrderMemberExportVo> exportMemberOrder(String beginTime, String endTime) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date beginDate = sdf.parse(beginTime);
Date endDate = sdf.parse(endTime);
List<MemberOrderExportDao> list = performancesMapper.exportMemberOrder(beginDate,endDate);
List<OrderMemberExportVo> voList = new ArrayList();
for (MemberOrderExportDao item :list){
voList.add(OrderMemberExportVo.getNew().copyMemberOrderExportVo(item));
}
return voList;
} catch (ParseException e) {
e.printStackTrace();
throw new BusinessException("导出异常,请联系网站管理员!");
}
}
@Override
public List<OrderCommodityExportVo> exportCommodityOrder(String beginTime, String endTime) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date beginDate = sdf.parse(beginTime);
Date endDate = sdf.parse(endTime);
List<CommodityOrderExportDao> list = performancesMapper.exportCommodityOrder(beginDate,endDate);
List<OrderCommodityExportVo> voList = new ArrayList();
for (CommodityOrderExportDao item :list){
voList.add(OrderCommodityExportVo.getNew().copyCommodityOrderExportVo(item));
}
return voList;
} catch (ParseException e) {
e.printStackTrace();
throw new BusinessException("导出Excel失败,请联系网站管理员!");
}
}
} }
package com.liquidnet.service.kylin.dao;
import lombok.Data;
@Data
public class CommodityOrderExportDao {
//商户订单号
private String code;
//微信/支付宝订单号
private String paymentId;
//商品名称
private String name;
//支付平台()
private String paymentType;
//实付金额
private String priceActual;
//创建时间
private String createdAt;
//快递费
private String priceExpress;
//退款金额
private String priceRefund;
//订单状态
private String status;
//退款时间
private String refundAt;
}
package com.liquidnet.service.kylin.dao;
import lombok.Data;
@Data
public class MemberOrderExportDao {
//商户订单号
private String payNo;
//微信/支付宝订单号
private String paymentId;
//支付方式
private String payType;
//订单状态
private String state;
//价格
private String price;
//支付时间
private String paymentAt;
//创建时间
private String createdAt;
//更新时间
private String updatedAt;
//退款时间
private String refundAt;
//退款价格
private String refundPrice;
}
...@@ -4,7 +4,47 @@ import lombok.Data; ...@@ -4,7 +4,47 @@ import lombok.Data;
@Data @Data
public class OrderExportDao { public class OrderExportDao {
//演出名称/购买名称
private String performanceTitle; private String performanceTitle;
//手机号
private String userMobile; private String userMobile;
//名称
private String userName; private String userName;
//订单号
private String orderCode;
//商户订单号
private String code;
//商户订单号
private String payCode;
//微信/支付宝订单号
private String paymentId;
//订单状态(1.以支付 3.退款中 4.以退款 6.部分退款)
private String status;
//支付平台()
private String paymentType;
//演出类型
private String type;
//票种名称
private String title1;
//场次
private String title2;
//单价
private String price;
//快递费
private String priceExpress;
//购票数
private String number;
//退票数
private String refundNumber;
//实付金额
private String priceActual;
//退款金额
private String priceRefund;
//退款时间
private String refundAt;
//退款原因
private String reject;
//支付时间
private String timePay;
} }
package com.liquidnet.service.kylin.mapper; package com.liquidnet.service.kylin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.kylin.dao.*; import com.liquidnet.service.kylin.dao.*;
import com.liquidnet.service.kylin.entity.KylinPerformances; import com.liquidnet.service.kylin.entity.KylinPerformances;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -70,4 +71,14 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> { ...@@ -70,4 +71,14 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
List<KylinPerformancesDao> selectTicketIdByPerId(@Param("performancesId") String performancesId); List<KylinPerformancesDao> selectTicketIdByPerId(@Param("performancesId") String performancesId);
//订单时间查订单信息
List<OrderExportDao> exportOrderByOrderTime(@Param("beginTime") Date beginTime, @Param("endTime") Date endTime);
//演出时间查订单信息
List<OrderExportDao> exportOrderByShowTime(@Param("beginTime") Date beginTime, @Param("endTime") Date endTime);
//演出id查订单信息
List<OrderExportDao> exportOrderByShowId(@Param("showId") String showId);
//会员订单信息
List<MemberOrderExportDao> exportMemberOrder(@Param("beginTime") Date beginTime, @Param("endTime") Date endTime);
//商品订单信息
List<CommodityOrderExportDao> exportCommodityOrder(@Param("beginTime") Date beginTime, @Param("endTime") Date endTime);
} }
...@@ -53,8 +53,58 @@ ...@@ -53,8 +53,58 @@
<result column="performance_title" property="performanceTitle"/> <result column="performance_title" property="performanceTitle"/>
<result column="user_mobile" property="userMobile"/> <result column="user_mobile" property="userMobile"/>
<result column="user_name" property="userName"/> <result column="user_name" property="userName"/>
<result column="order_code" property="orderCode"/>
<result column="code" property="code"/>
<result column="pay_code" property="payCode"/>
<result column="payment_id" property="paymentId"/>
<result column="status" property="status"/>
<result column="payment_type" property="paymentType"/>
<result column="type" property="type"/>
<result column="title1" property="title1"/>
<result column="title2" property="title2"/>
<result column="price" property="price"/>
<result column="price_express" property="priceExpress"/>
<result column="number" property="number"/>
<result column="refund_number" property="refundNumber"/>
<result column="price_actual" property="priceActual"/>
<result column="price_refund" property="priceRefund"/>
<result column="refund_at" property="refundAt"/>
<result column="reject" property="reject"/>
<result column="time_pay" property="timePay"/>
</resultMap>
<resultMap id="memberOrderExportDaoResult" type="com.liquidnet.service.kylin.dao.MemberOrderExportDao">
<result column="pay_no" property="payNo"/>
<result column="payment_id" property="paymentId"/>
<result column="pay_type" property="payType"/>
<result column="state" property="state"/>
<result column="price" property="price"/>
<result column="payment_at" property="paymentAt"/>
<result column="created_at" property="createdAt"/>
<result column="updated_at" property="updatedAt"/>
<result column="refund_at" property="refundAt"/>
<result column="refund_price" property="refundPrice"/>
</resultMap> </resultMap>
<resultMap id="commodityOrderExportDaoResult" type="com.liquidnet.service.kylin.dao.CommodityOrderExportDao">
<result column="code" property="code"/>
<result column="payment_id" property="paymentId"/>
<result column="name" property="name"/>
<result column="payment_type" property="paymentType"/>
<result column="price_actual" property="priceActual"/>
<result column="created_at" property="createdAt"/>
<result column="price_express" property="priceExpress"/>
<result column="price_refund" property="priceRefund"/>
<result column="status" property="status"/>
<result column="refund_at" property="refundAt"/>
</resultMap>
<!-- <resultMap id="OrderExportDaoResult" type="com.liquidnet.service.kylin.dao.OrderExportDao">-->
<!-- <result column="performance_title" property="performanceTitle"/>-->
<!-- <result column="user_mobile" property="userMobile"/>-->
<!-- <result column="user_name" property="userName"/>-->
<!-- </resultMap>-->
<resultMap id="PerformanceSimpleAllDaoResult" type="com.liquidnet.service.kylin.dao.PerformanceSimpleAllDao"> <resultMap id="PerformanceSimpleAllDaoResult" type="com.liquidnet.service.kylin.dao.PerformanceSimpleAllDao">
<result column="performances_id" property="performancesId"/> <result column="performances_id" property="performancesId"/>
<result column="title" property="title"/> <result column="title" property="title"/>
...@@ -692,5 +742,319 @@ GROUP BY user_mobile; ...@@ -692,5 +742,319 @@ GROUP BY user_mobile;
kp.time_start ASC kp.time_start ASC
</select> </select>
<!-- 订单信息-->
<select id="exportOrderByOrderTime" resultMap="OrderExportDaoResult">
select temtable.order_code as order_code,
temtable.code as code,
temtable.payment_id as payment_id,
temtable.performance_title as performance_title,
case
when (temtable.status = 1) THEN '已支付'
when (temtable.status = 3) THEN '退款中'
when (temtable.status = 4) THEN '已退款'
when (temtable.status = 6) THEN '部分退款'
END as status,
(CASE
WHEN temtable.payment_type = 'WAPALIPAY' THEN '支付宝'
WHEN temtable.payment_type = 'APPALIPAY' THEN '支付宝'
WHEN temtable.payment_type = 'JSWEPAY' THEN '微信'
WHEN temtable.payment_type = 'APPLETWEPAY' THEN '微信'
WHEN temtable.payment_type = 'APPWEPAY' THEN '微信'
WHEN temtable.payment_type = 'WAPWEPAY' THEN '微信'
WHEN temtable.payment_type = 'APPUNIONPAY' THEN '银联云闪付'
WHEN temtable.payment_type = 'WAPUNIONPAY' THEN '银联云闪付'
WHEN temtable.payment_type = 'APPLETDOUYINPAY' THEN '抖音支付'
ELSE '其他' END) as payment_type,
case
when (temtable.type = '1') then '音乐节'
when (temtable.type = '2') then '演唱会'
when (temtable.type = '3') then '小型演出'
when (temtable.type = '4') then '展览'
when (temtable.type = '6') then '舞台剧'
when (temtable.type = '101') then '音乐节'
when (temtable.type = '102') then '小型演出(livehouse演出)'
when (temtable.type = '103') then '巡演'
end type,
temtable.title1 as title1,
temtable.title2 as title2,
temtable.price as price,
temtable.price_express as price_express,
temtable.number as number,
temtable.refund_number as refund_number,
temtable.price_actual as price_actual,
temtable.price_refund as price_refund,
temtable.refund_at as refund_at,
temtable.reject as reject,
temtable.time_pay as time_pay
from
(select kot.order_code,
do.code,
kot.payment_id,
kot.performance_title,
ks.status,
kot.payment_type,
kp.type,
kt.title as 'title1',
ktt.title as 'title2',
kot.price,
kot.price_express,
kot.number,
kot.refund_number,
kot.price_actual,
kot.price_refund,
dor.refund_at,
kor.reject,
kot.time_pay
from kylin_order_tickets kot
inner join kylin_order_ticket_status ks on kot.order_tickets_id = ks.order_id
left join kylin_order_refunds kor on kor.order_tickets_id = kot.order_tickets_id
inner join kylin_order_ticket_relations kr on kot.order_tickets_id = kr.order_id
inner join kylin_tickets kt on kt.tickets_id = kr.ticket_id
inner join kylin_performances kp on kp.performances_id = kr.performance_id
inner join dragon_orders do on do.order_code = kot.order_code
left join dragon_order_refunds dor on dor.order_refund_id = do.code
left join kylin_ticket_times ktt on ktt.ticket_times_id = kr.time_id
where ks.status in (1, 3)
and ks.transfer_status in (0, 1, 2, 5)
and (do.payment_at between #{beginTime} and #{endTime})
group by do.code
union
select kot.order_code,
do.code,
kot.payment_id,
kot.performance_title,
ks.status,
kot.payment_type,
kp.type,
kt.title as 'title1',
ktt.title as 'title2',
kot.price,
kot.price_express,
kot.number,
kot.refund_number,
kot.price_actual,
kot.price_refund,
dor.refund_at,
kor.reject,
kot.time_pay
from kylin_order_tickets kot
inner join kylin_order_ticket_status ks on kot.order_tickets_id = ks.order_id
left join kylin_order_refunds kor on kor.order_tickets_id = kot.order_tickets_id
inner join kylin_order_ticket_relations kr on kot.order_tickets_id = kr.order_id
inner join kylin_tickets kt on kt.tickets_id = kr.ticket_id
inner join kylin_performances kp on kp.performances_id = kr.performance_id
inner join dragon_orders do on do.order_code = kot.order_code
inner join dragon_order_refunds dor on dor.order_refund_id = do.code
left join kylin_ticket_times ktt on ktt.ticket_times_id = kr.time_id
where ks.status in (1, 3, 4, 6)
and ks.transfer_status in (0, 1, 2, 5)
and dor.refund_at between #{beginTime} and #{endTime}
group by do.code) temtable group by temtable.code
</select>
<!-- 演出时间查订单信息-->
<select id="exportOrderByShowTime" resultMap="OrderExportDaoResult">
select kot.order_code as order_code,
kot.pay_code as pay_code,
kot.payment_id as payment_id,
kot.performance_title as performance_title,
(CASE
WHEN kot.payment_type = 'WAPALIPAY' THEN '支付宝'
WHEN kot.payment_type = 'APPALIPAY' THEN '支付宝'
WHEN kot.payment_type = 'JSWEPAY' THEN '微信'
WHEN kot.payment_type = 'APPLETWEPAY' THEN '微信'
WHEN kot.payment_type = 'APPWEPAY' THEN '微信'
WHEN kot.payment_type = 'WAPWEPAY' THEN '微信'
WHEN kot.payment_type = 'APPUNIONPAY' THEN '银联云闪付'
WHEN kot.payment_type = 'WAPUNIONPAY' THEN '银联云闪付'
WHEN kot.payment_type = 'APPLETDOUYINPAY' THEN '抖音支付'
ELSE '其他' END) as payment_type,
case
when (kp.type = '1') then '音乐节'
when (kp.type = '2') then '演唱会'
when (kp.type = '3') then '小型演出'
when (kp.type = '4') then '展览'
when (kp.type = '6') then '舞台剧'
when (kp.type = '101') then '音乐节'
when (kp.type = '102') then '小型演出(livehouse演出)'
when (kp.type = '103') then '巡演'
end as type,
kt.title as title1,
kot.number as number,
ktt.title as title2,
kor.updated_at as refund_at,
kor.reject as reject,
kot.price_actual as price_actual,
kot.time_pay as time_pay
from kylin_order_tickets kot
inner join kylin_order_ticket_status ks
on kot.order_tickets_id = ks.order_id and ks.transfer_status in (0, 1, 2, 5)
left join kylin_order_refunds kor on kor.order_tickets_id = kot.order_tickets_id
inner join kylin_order_ticket_relations kr on kot.order_tickets_id = kr.order_id
inner join kylin_tickets kt on kt.tickets_id = kr.ticket_id
inner join kylin_performances kp on kp.performances_id = kr.performance_id
and (kp.time_start &gt;= #{beginTime}) and (kp.time_start &lt;= #{endTime})
left join kylin_ticket_times ktt on ktt.ticket_times_id = kr.time_id
where ks.status in (1, 3, 4, 6)
group by kot.order_tickets_id
</select>
<!-- 演出id查订单信息-->
<select id="exportOrderByShowId" resultMap="OrderExportDaoResult">
select kot.order_code as order_code,
kot.pay_code as pay_code,
kot.payment_id as payment_id,
kot.performance_title as performance_title,
(CASE
WHEN kot.payment_type = 'WAPALIPAY' THEN '支付宝'
WHEN kot.payment_type = 'APPALIPAY' THEN '支付宝'
WHEN kot.payment_type = 'JSWEPAY' THEN '微信'
WHEN kot.payment_type = 'APPLETWEPAY' THEN '微信'
WHEN kot.payment_type = 'APPWEPAY' THEN '微信'
WHEN kot.payment_type = 'WAPWEPAY' THEN '微信'
WHEN kot.payment_type = 'APPUNIONPAY' THEN '银联云闪付'
WHEN kot.payment_type = 'WAPUNIONPAY' THEN '银联云闪付'
ELSE '其他' END) as payment_type,
kot.number as number,
kot.price as price,
kot.price_actual as price_actual,
kot.price_express as price_express,
kot.refund_number as refund_number,
case
when (kp.type = '1') then '音乐节'
when (kp.type = '2') then '演唱会'
when (kp.type = '3') then '小型演出'
when (kp.type = '4') then '展览'
when (kp.type = '6') then '舞台剧'
when (kp.type = '101') then '音乐节'
when (kp.type = '102') then '小型演出(livehouse演出)'
when (kp.type = '103') then '巡演'
end as type ,
kt.title as title1,
ktt.title as title2,
kor.updated_at as refund_at,
kor.reject as reject,
kot.price_refund as price_refund,
kot.time_pay as time_pay
from kylin_order_tickets kot
inner join kylin_order_ticket_status ks on kot.order_tickets_id = ks.order_id
left join kylin_order_refunds kor on kor.order_tickets_id = kot.order_tickets_id
inner join kylin_order_ticket_relations kr on kot.order_tickets_id = kr.order_id
and kr.performance_id = #{showId}
inner join kylin_tickets kt on kt.tickets_id = kr.ticket_id
inner join kylin_performances kp on kp.performances_id = kr.performance_id
left join kylin_ticket_times ktt on ktt.ticket_times_id = kr.time_id
where ks.status in (1, 3, 4, 6)
and ks.transfer_status in (0, 1, 2, 5)
group by kot.order_tickets_id
</select>
<!-- 会员订单信息-->
<select id="exportMemberOrder" resultMap="memberOrderExportDaoResult">
select amo.pay_no as pay_no,
amo.payment_id as payment_id,
(case amo.pay_type
when 'alipay' then '支付宝'
when 'wepay' then '微信'
when 'unionpay' then '银联'
else '其他'
end) as pay_type,
(case amo.state
when '1' then '已支付'
when '3' then '超时支付'
when '4' then '退款中'
when '5' then '已退款'
else '其他'
end) as state,
amo.price as price,
amo.payment_at as payment_at,
amo.created_at as created_at,
amo.updated_at as updated_at,
amr.refund_at as refund_at,
amr.refund_price as refund_price
from adam_member_order amo
left join adam_member_refund amr on amr.order_no = amo.order_no
where amo.pay_type != 'giftcode'
and amo.state in (1, 3, 4, 5)
and (amo.payment_at between #{beginTime} and #{endTime}
or amo.created_at between #{beginTime} and #{endTime}
or amo.updated_at between #{beginTime} and #{endTime})
</select>
<!-- 商品订单信息-->
<select id="exportCommodityOrder" resultMap="commodityOrderExportDaoResult">
select temtable.code as code,
temtable.payment_id as payment_id,
name as name,
(CASE temtable.payment_type
WHEN 'WAPALIPAY' THEN '支付宝'
WHEN 'APPALIPAY' THEN '支付宝'
WHEN 'JSWEPAY' THEN '微信'
WHEN 'APPLETWEPAY' THEN '微信'
WHEN 'APPWEPAY' THEN '微信'
WHEN 'WAPWEPAY' THEN '微信'
WHEN 'APPUNIONPAY' THEN '银联云闪付'
WHEN 'WAPUNIONPAY' THEN '银联云闪付'
WHEN 'APPLETDOUYINPAY' THEN '抖音支付'
ELSE '其他' END) as payment_type,
temtable.price_actual as price_actual,
temtable.created_at as created_at,
temtable.price_express as price_express,
temtable.price_refund as price_refund,
CASE
WHEN temtable.STATUS = '0' THEN
'待付款'
WHEN temtable.STATUS = '2' THEN
'待发货'
WHEN temtable.STATUS = '3' THEN
'待收货'
WHEN temtable.STATUS = '4' THEN
'已完成'
WHEN temtable.STATUS = '5' THEN
'取消订单'
WHEN temtable.STATUS = '6' THEN
'退款通过'
WHEN temtable.STATUS = '7' THEN
'退货通过'
END AS status,
temtable.refund_at as refund_at
from
(select do.code,
gso.payment_id,
group_concat(distinct concat(gos.spu_name, '*', gos.num) separator ';') as 'name',
gso.payment_type,
gso.price_actual,
do.created_at,
gso.price_express,
gso.price_refund,
gso.status,
gbo.refund_at
from goblin_store_order gso
inner join goblin_order_sku gos on gos.order_id = gso.order_id
inner join dragon_orders do on do.order_code = gso.master_order_code and do.status = 1
left join goblin_back_order gbo on gbo.order_id = gso.order_id and gbo.status in (2, 8)
where
do.created_at between #{beginTime} and #{endTime}
and gso.status not in (0, 5)
group by do.code
union
select do.code,
gso.payment_id,
group_concat(distinct concat(gos.spu_name, '*', gos.num) separator ';') as 'name',
gso.payment_type,
gso.price_actual,
do.created_at,
gso.price_express,
gso.price_refund,
gso.status,
gbo.refund_at
from goblin_store_order gso
inner join goblin_order_sku gos on gos.order_id = gso.order_id
inner join dragon_orders do on do.order_code = gso.master_order_code and do.status = 1
inner join dragon_order_refunds dor on dor.order_refund_id = do.code
left join goblin_back_order gbo on gbo.order_id = gso.order_id and gbo.status in (2, 8)
where
dor.refund_at between #{beginTime} and #{endTime}
and gso.status not in (0, 5)
group by do.code) temtable group by temtable.code
</select>
</mapper> </mapper>
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