Commit ad108787 authored by hezhen's avatar hezhen

Merge branch 'master-tiande' into dev-tiande

parents 96b78a77 11742e29
...@@ -9,6 +9,7 @@ import java.math.BigDecimal; ...@@ -9,6 +9,7 @@ import java.math.BigDecimal;
@Data @Data
public class OrderActivityInfoStaticVo { public class OrderActivityInfoStaticVo {
private Integer number;
private BigDecimal totalAmount; private BigDecimal totalAmount;
......
...@@ -8,16 +8,26 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO; ...@@ -8,16 +8,26 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.order.entity.OrderActivityDetail;; import com.xxfc.platform.order.entity.OrderActivityDetail;;
import com.xxfc.platform.order.mapper.OrderActivityDetailMapper; import com.xxfc.platform.order.mapper.OrderActivityDetailMapper;
import com.xxfc.platform.order.pojo.dto.ActivityOrderFindDTO; import com.xxfc.platform.order.pojo.dto.ActivityOrderFindDTO;
import com.xxfc.platform.order.pojo.dto.MemberOrderBo;
import com.xxfc.platform.order.pojo.vo.OrderActivityInfoStaticVo; import com.xxfc.platform.order.pojo.vo.OrderActivityInfoStaticVo;
import com.xxfc.platform.order.pojo.vo.OrderActivityInfoVo; import com.xxfc.platform.order.pojo.vo.OrderActivityInfoVo;
import com.xxfc.platform.order.service.OrderMemberService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -30,6 +40,11 @@ public class OrderActivityInfoDetailBiz extends BaseBiz<OrderActivityDetailMappe ...@@ -30,6 +40,11 @@ public class OrderActivityInfoDetailBiz extends BaseBiz<OrderActivityDetailMappe
@Autowired @Autowired
UserFeign userFeign; UserFeign userFeign;
@Autowired
OrderMemberService orderMemberService;
private SimpleDateFormat simleFormatter = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
public OrderActivityDetail getOne(Integer orderId) { public OrderActivityDetail getOne(Integer orderId) {
Example example = new Example(OrderActivityDetail.class); Example example = new Example(OrderActivityDetail.class);
...@@ -137,4 +152,85 @@ public class OrderActivityInfoDetailBiz extends BaseBiz<OrderActivityDetailMappe ...@@ -137,4 +152,85 @@ public class OrderActivityInfoDetailBiz extends BaseBiz<OrderActivityDetailMappe
/**
* 导出数据
* @param
*/
public void exportMemberOrderData(ActivityOrderFindDTO activityOrderFindDTO, String name, OutputStream outputStream) throws Exception{
PageDataVO<OrderActivityInfoVo> dataVO = selectList(activityOrderFindDTO);
List<OrderActivityInfoVo> memberOrderBoList = dataVO.getData();
OrderActivityInfoStaticVo orderActivityInfoStaticVo = selectListStatic(activityOrderFindDTO);
XSSFWorkbook hssfWorkbook = new XSSFWorkbook();
XSSFSheet sheet = hssfWorkbook.createSheet(name+"活动订单列表");
CellStyle headerCellStyle = orderMemberService.createHeaderCellStyle(hssfWorkbook);
CellStyle generalCellStyle = orderMemberService.createGeneralCellStyle(hssfWorkbook);
Row row1 = sheet.createRow(0);
orderMemberService.createHeader(row1,0,new String[]{name+"活动订单列表"},headerCellStyle);
CellRangeAddress cellRangeAddress = new CellRangeAddress(0,0,0,11);
sheet.addMergedRegion(cellRangeAddress);
Row row2 = sheet.createRow(1);
Cell row2_cell1 = row2.createCell(0);
row2_cell1.setCellValue("统计");
row2_cell1.setCellStyle(headerCellStyle);
CellRangeAddress cellRangeAddress2 = new CellRangeAddress(1,2,0,0);
sheet.addMergedRegion(cellRangeAddress2);
String[] header2 = new String[]{"活动订单总数(单)","活动订单总额(元)","活动佣金总额"};
orderMemberService.createHeader(row2,1,header2,headerCellStyle);
String[] countData = getData(orderActivityInfoStaticVo);
Row row4 = sheet.createRow(2);
orderMemberService.createCellCount(row4,1,countData,generalCellStyle);
Row row5 = sheet.createRow(4);
String[] header3 = new String[]{"序号","名称","订单号","创建时间","用户姓名","手机号","订单价格(元)","上级姓名/手机号","拥金(元)","支付时间","订单状态"};
CellRangeAddress cellRangeAddress3 = new CellRangeAddress(3,3,0,header3.length);
sheet.addMergedRegion(cellRangeAddress3);
orderMemberService.createHeader(row5,0,header3,headerCellStyle);
for(int i=0;i<header3.length;i++){
sheet.setColumnWidth(i,24*256);
}
List<String[]> orderDataList = getMemberOrderDataList(memberOrderBoList, 10);
orderMemberService.createMemberOrderCellData(sheet,5,generalCellStyle,orderDataList);
hssfWorkbook.write(outputStream);
hssfWorkbook.close();
}
private List<String[]> getMemberOrderDataList(List<OrderActivityInfoVo> memberOrderBoList,Integer size){
List<String[]> memerOrderData = new ArrayList<>();
String[] data;
int i = 0;
for (OrderActivityInfoVo activityInfoVo : memberOrderBoList) {
data = new String[size];
i++;
data[0]=i+"";
data[1]=activityInfoVo.getName();
data[2]=activityInfoVo.getNo();
data[3]=simleFormatter.format(activityInfoVo.getCrtTime());
data[4]=activityInfoVo.getRealName();
data[5]=activityInfoVo.getPhone();
data[6]=activityInfoVo.getRealAmount().toString();
data[7]=StringUtils.isNotBlank(activityInfoVo.getParentPhone()) ? activityInfoVo.getParentName()+"/"+ activityInfoVo.getParentPhone(): "";
data[8]=activityInfoVo.getParentComisson().toString();
data[9]=activityInfoVo.getPayTime() != null ? simleFormatter.format(activityInfoVo.getPayTime()) : "";
data[10]=activityInfoVo.getStatus()==2?"取消":activityInfoVo.getStatus()==3?"待支付":activityInfoVo.getStatus()==6?"已完成":"";
memerOrderData.add(data);
}
return memerOrderData;
}
public String[] getData(OrderActivityInfoStaticVo orderActivityInfoStaticVo) {
String[] strings = new String[3];
strings[0] = String.valueOf(orderActivityInfoStaticVo.getNumber());
strings[1] = String.valueOf(orderActivityInfoStaticVo.getTotalAmount());
strings[2] = String.valueOf(orderActivityInfoStaticVo.getTotalComissonAmount());
return strings;
}
} }
...@@ -2,7 +2,9 @@ package com.xxfc.platform.order.rest; ...@@ -2,7 +2,9 @@ package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.context.BaseContextHandler; import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.order.biz.OrderActivityInfoDetailBiz; import com.xxfc.platform.order.biz.OrderActivityInfoDetailBiz;
...@@ -10,16 +12,24 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; ...@@ -10,16 +12,24 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderActivityDetail; import com.xxfc.platform.order.entity.OrderActivityDetail;
import com.xxfc.platform.order.pojo.dto.ActivityOrderFindDTO; import com.xxfc.platform.order.pojo.dto.ActivityOrderFindDTO;
import com.xxfc.platform.order.pojo.dto.MemberOrderFindDTO;
import com.xxfc.platform.order.pojo.order.ActivityInfoBO; import com.xxfc.platform.order.pojo.order.ActivityInfoBO;
import com.xxfc.platform.order.service.OrderActivityInfoService; import com.xxfc.platform.order.service.OrderActivityInfoService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
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.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@RestController @RestController
@RequestMapping("tainde/orderActivity") @RequestMapping("tainde/orderActivity")
@Api(value = "活动订单", tags = {"活动订单"}) @Api(value = "活动订单", tags = {"活动订单"})
@Slf4j
public class OrderActivityInfoController extends BaseController<OrderActivityInfoDetailBiz, OrderActivityDetail> { public class OrderActivityInfoController extends BaseController<OrderActivityInfoDetailBiz, OrderActivityDetail> {
@Autowired @Autowired
...@@ -49,4 +59,22 @@ public class OrderActivityInfoController extends BaseController<OrderActivityInf ...@@ -49,4 +59,22 @@ public class OrderActivityInfoController extends BaseController<OrderActivityInf
activityOrderFindDTO.setType(OrderTypeEnum.ACTIVITY.getCode()); activityOrderFindDTO.setType(OrderTypeEnum.ACTIVITY.getCode());
return ObjectRestResponse.succ(baseBiz.selectListStatic(activityOrderFindDTO)); return ObjectRestResponse.succ(baseBiz.selectListStatic(activityOrderFindDTO));
} }
@GetMapping("export")
public void exportMemberOrders(ActivityOrderFindDTO memberOrderFindDTO, HttpServletResponse response){
try {
String name = DateTimeFormatter.ofPattern("YYYYMMddHHmmss").format(LocalDateTime.now());
response.setContentType("application/vnd.ms-excel;charset=utf-8");
String filename = String.format("%s-ActivityOrder.xlsx",name);
response.setHeader("Content-Disposition","attachment;filename="+ new String(filename.getBytes(), "iso8859-1"));
ServletOutputStream outputStream = response.getOutputStream();
memberOrderFindDTO.setType(OrderTypeEnum.ACTIVITY.getCode());
baseBiz.exportMemberOrderData(memberOrderFindDTO, name, outputStream);
response.setCharacterEncoding("UTF-8");
}catch (Exception ex){
log.error(ex.getMessage(),ex);
throw new BaseException("导出数据失败");
}
}
} }
\ No newline at end of file
...@@ -286,7 +286,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -286,7 +286,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return memerOrderData; return memerOrderData;
} }
private CellStyle createGeneralCellStyle(XSSFWorkbook hssfWorkbook) { public CellStyle createGeneralCellStyle(XSSFWorkbook hssfWorkbook) {
CellStyle cellStyleGeneral = createHeaderCellStyle(hssfWorkbook); CellStyle cellStyleGeneral = createHeaderCellStyle(hssfWorkbook);
cellStyleGeneral.setWrapText(true); cellStyleGeneral.setWrapText(true);
XSSFFont generalFont = createFont(hssfWorkbook); XSSFFont generalFont = createFont(hssfWorkbook);
...@@ -295,7 +295,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -295,7 +295,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return cellStyleGeneral; return cellStyleGeneral;
} }
private CellStyle createHeaderCellStyle(XSSFWorkbook hssfWorkbook) { public CellStyle createHeaderCellStyle(XSSFWorkbook hssfWorkbook) {
XSSFCellStyle cellStyleHeader = hssfWorkbook.createCellStyle(); XSSFCellStyle cellStyleHeader = hssfWorkbook.createCellStyle();
cellStyleHeader.setAlignment(HorizontalAlignment.CENTER); cellStyleHeader.setAlignment(HorizontalAlignment.CENTER);
cellStyleHeader.setVerticalAlignment(VerticalAlignment.CENTER); cellStyleHeader.setVerticalAlignment(VerticalAlignment.CENTER);
...@@ -305,14 +305,14 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -305,14 +305,14 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return cellStyleHeader; return cellStyleHeader;
} }
private XSSFFont createFont(XSSFWorkbook hssfWorkbook) { public XSSFFont createFont(XSSFWorkbook hssfWorkbook) {
XSSFFont font = hssfWorkbook.createFont(); XSSFFont font = hssfWorkbook.createFont();
font.setFontName("黑体"); font.setFontName("黑体");
font.setBold(true); font.setBold(true);
return font; return font;
} }
private String[] getData(List<MemberOrderStatisticsBo> memberOrderStatisticsBoList) { public String[] getData(List<MemberOrderStatisticsBo> memberOrderStatisticsBoList) {
String[] strings = new String[memberOrderStatisticsBoList.size() * 2]; String[] strings = new String[memberOrderStatisticsBoList.size() * 2];
for (int i = 0; i < memberOrderStatisticsBoList.size(); i ++ ) { for (int i = 0; i < memberOrderStatisticsBoList.size(); i ++ ) {
strings[2*i] = String.valueOf(memberOrderStatisticsBoList.get(i).getOrderNum()); strings[2*i] = String.valueOf(memberOrderStatisticsBoList.get(i).getOrderNum());
...@@ -321,7 +321,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -321,7 +321,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return strings; return strings;
} }
private void createHeader(Row row, int cellStartIndex, String[] header, CellStyle cellStyle) { public void createHeader(Row row, int cellStartIndex, String[] header, CellStyle cellStyle) {
for (int i = 0; i < header.length; i++) { for (int i = 0; i < header.length; i++) {
Cell cell = row.createCell(cellStartIndex); Cell cell = row.createCell(cellStartIndex);
cell.setCellValue(header[i]); cell.setCellValue(header[i]);
...@@ -330,14 +330,14 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -330,14 +330,14 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
} }
} }
private void createMemberOrderCellData(Sheet sheet, int startRowIndex, CellStyle cellStyle, List<String[]> memberOrderList) { public void createMemberOrderCellData(Sheet sheet, int startRowIndex, CellStyle cellStyle, List<String[]> memberOrderList) {
for (String[] data : memberOrderList) { for (String[] data : memberOrderList) {
Row row = sheet.createRow(startRowIndex++); Row row = sheet.createRow(startRowIndex++);
createCellCount(row, 0, data, cellStyle); createCellCount(row, 0, data, cellStyle);
} }
} }
private void createCellCount(Row row, int CellStartIndex, String[] data, CellStyle cellStyle) { public void createCellCount(Row row, int CellStartIndex, String[] data, CellStyle cellStyle) {
for (int i = CellStartIndex, y = 0; y < data.length; i++, y++) { for (int i = CellStartIndex, y = 0; y < data.length; i++, y++) {
Cell cell = row.createCell(i); Cell cell = row.createCell(i);
cell.setCellStyle(cellStyle); cell.setCellStyle(cellStyle);
......
...@@ -5,7 +5,8 @@ ...@@ -5,7 +5,8 @@
<select id="selectListStatic" resultType="com.xxfc.platform.order.pojo.vo.OrderActivityInfoStaticVo" parameterType="com.xxfc.platform.order.pojo.dto.ActivityOrderFindDTO"> <select id="selectListStatic" resultType="com.xxfc.platform.order.pojo.vo.OrderActivityInfoStaticVo" parameterType="com.xxfc.platform.order.pojo.dto.ActivityOrderFindDTO">
select select
IFNULL(SUM(bo.real_amount),0) as totalAmount, IFNULL(SUM(bo.real_amount),0) as totalAmount,
IFNULL(SUM(IF(oad.parent_user_id > 0 ,oad.parent_comisson,0)),0) as totalComissonAmount IFNULL(SUM(IF(oad.parent_user_id > 0 ,oad.parent_comisson,0)),0) as totalComissonAmount,
COUNT(bo.id) as number
from order_activity_detail oad from order_activity_detail oad
LEFT JOIN base_order bo on bo.id = oad.order_id LEFT JOIN base_order bo on bo.id = oad.order_id
<where> <where>
......
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