Commit cb47c6f8 authored by unset's avatar unset

会员统计信息修改

parent 746592d0
......@@ -12,21 +12,8 @@ import java.math.BigDecimal;
*/
@Data
public class MemberOrderStatisticsBo {
//0为全部,其他为会员等级
private Integer type;
private Integer orderNum;
private BigDecimal totalAmount;
/**
* 钻石
*/
private Integer diamondOrderNum;
private BigDecimal totalDiamondAmount;
/**
* 黄金
*/
private Integer goldOrderNum;
private BigDecimal totalGoldAmount;
/**
* 普通
*/
private Integer generalOrderNum;
private BigDecimal totalGeneralAmount;
}
......@@ -5,6 +5,8 @@ import com.xxfc.platform.order.pojo.dto.MemberOrderBo;
import com.xxfc.platform.order.pojo.dto.MemberOrderStatisticsBo;
import lombok.Data;
import java.util.List;
/**
* @author libin
* @version 1.0
......@@ -13,6 +15,6 @@ import lombok.Data;
*/
@Data
public class MemberOrderPageVo {
private MemberOrderStatisticsBo memberOrderStatisticsBo;
private List<MemberOrderStatisticsBo> memberOrderStatisticsBo;
private PageDataVO<MemberOrderBo> memberOrderPage;
}
......@@ -70,7 +70,7 @@ public class OrderMemberDetailBiz extends BaseBiz<OrderMemberDetailMapper,OrderM
List<BaseUserMemberLevel> baseUserMemberLevelList = userFeign.levels();
if (baseUserMemberLevelList != null && baseUserMemberLevelList.size() > 0) {
BaseOrder baseOrder = new BaseOrder();
AtomicReference<BaseUserMemberLevel> currentLevel = null;
AtomicReference<BaseUserMemberLevel> currentLevel = new AtomicReference<>();
baseUserMemberLevelList.parallelStream().forEach(baseUserMemberLevel -> {
if (dto.getMemberLevel().equals(baseUserMemberLevel.getLevel())) {
currentLevel.set(baseUserMemberLevel);
......@@ -95,6 +95,7 @@ public class OrderMemberDetailBiz extends BaseBiz<OrderMemberDetailMapper,OrderM
baseOrder.setOrderOrigin(3);
baseOrder.setCrtUser(userDTO.getUsername());
baseOrder.setCrtName(userDTO.getName());
baseOrder.setVersion(1);
baseOrderBiz.insertSelectiveRe(baseOrder);
OrderMemberDetail orderMemberDetail = new OrderMemberDetail();
orderMemberDetail.setOrderId(baseOrder.getId());
......
package com.xxfc.platform.order.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import com.github.wxiaoqi.security.admin.bo.UserBo;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.enumconstant.LevelEnum;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
......@@ -199,74 +199,94 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
/**
* 导出数据
*
* @param memberOrderFindDTO
*/
public void exportMemberOrderData(MemberOrderFindDTO memberOrderFindDTO,String name,OutputStream outputStream) throws Exception{
public void exportMemberOrderData(MemberOrderFindDTO memberOrderFindDTO, String name, OutputStream outputStream) throws Exception {
MemberOrderPageVo memberOrderPageVo = listMemberOrderPage(memberOrderFindDTO);
List<MemberOrderBo> memberOrderBoList = memberOrderPageVo.getMemberOrderPage().getData();
MemberOrderStatisticsBo memberOrderStatisticsBo = memberOrderPageVo.getMemberOrderStatisticsBo();
List<MemberOrderStatisticsBo> memberOrderStatisticsBo = memberOrderPageVo.getMemberOrderStatisticsBo();
XSSFWorkbook hssfWorkbook = new XSSFWorkbook();
XSSFSheet sheet = hssfWorkbook.createSheet(name+"会员订单列表");
XSSFSheet sheet = hssfWorkbook.createSheet(name + "会员订单列表");
CellStyle headerCellStyle = createHeaderCellStyle(hssfWorkbook);
CellStyle generalCellStyle = createGeneralCellStyle(hssfWorkbook);
Row row1 = sheet.createRow(0);
createHeader(row1,0,new String[]{name+"会员订单列表"},headerCellStyle);
CellRangeAddress cellRangeAddress = new CellRangeAddress(0,0,0,11);
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);
CellRangeAddress cellRangeAddress2 = new CellRangeAddress(1, 2, 0, 0);
sheet.addMergedRegion(cellRangeAddress2);
String[] header2 = new String[]{"会员订单总数(单)","会员订单总额(元)","钻石会员订单(单)","钻石会员订单总额(元)","黄金会员订单(单)","黄金会员订单总额(元)","普通会员订单(单)","普通会员订单总额(元)"};
createHeader(row2,1,header2,headerCellStyle);
String[] header2 = new String[1];
List<Integer> levelIds = memberOrderStatisticsBo.stream().map(MemberOrderStatisticsBo::getType).collect(Collectors.toList());
if (levelIds != null && levelIds.size() > 0) {
List<BaseUserMemberLevel> list = new ArrayList<>();
List<BaseUserMemberLevel> levelList = userFeign.levels();
Map<Integer, List<BaseUserMemberLevel>> map = levelList.stream().collect(Collectors.groupingBy(BaseUserMemberLevel::getLevel));
if (MapUtil.isNotEmpty(map)) {
levelIds.parallelStream().forEach(integer -> {
if (map.get(integer) != null) {
list.addAll(map.get(integer));
}
});
List<BaseUserMemberLevel> newList = list.stream().sorted(Comparator.comparing(BaseUserMemberLevel::getLevel)).collect(Collectors.toList());
header2 = new String[newList.size() + 1];
for (int i = 0; i < newList.size(); i ++) {
header2[2*i + 2] = newList.get(i).getName() + "订单(单)";
header2[2*i + 3] = newList.get(i).getName() + "订单总额(元)";
}
}
}
createHeader(row2, 1, header2, headerCellStyle);
String[] countData = getData(memberOrderStatisticsBo);
Row row4 = sheet.createRow(2);
createCellCount(row4,1,countData,generalCellStyle);
createCellCount(row4, 1, countData, generalCellStyle);
Row row5 = sheet.createRow(4);
String[] header3 = new String[]{"订单号","创建时间","订单状态","名称","用户姓名","手机号","上级姓名/手机号","促成人姓名/手机号","订单价格(元)","优惠金额(元)","实付金额(元)","支付时间"};
CellRangeAddress cellRangeAddress3 = new CellRangeAddress(3,3,0,header3.length);
String[] header3 = new String[]{"订单号", "创建时间", "订单状态", "名称", "用户姓名", "手机号", "上级姓名/手机号", "促成人姓名/手机号", "订单价格(元)", "优惠金额(元)", "实付金额(元)", "支付时间"};
CellRangeAddress cellRangeAddress3 = new CellRangeAddress(3, 3, 0, header3.length);
sheet.addMergedRegion(cellRangeAddress3);
createHeader(row5,0,header3,headerCellStyle);
createHeader(row5, 0, header3, headerCellStyle);
for(int i=0;i<header3.length;i++){
sheet.setColumnWidth(i,24*256);
for (int i = 0; i < header3.length; i++) {
sheet.setColumnWidth(i, 24 * 256);
}
List<String[]> orderDataList = getMemberOrderDataList(memberOrderBoList, 12);
createMemberOrderCellData(sheet,5,generalCellStyle,orderDataList);
createMemberOrderCellData(sheet, 5, generalCellStyle, orderDataList);
hssfWorkbook.write(outputStream);
hssfWorkbook.close();
}
private List<String[]> getMemberOrderDataList(List<MemberOrderBo> memberOrderBoList,Integer size){
private List<String[]> getMemberOrderDataList(List<MemberOrderBo> memberOrderBoList, Integer size) {
List<String[]> memerOrderData = new ArrayList<>();
String[] data;
for (MemberOrderBo memberOrderBo : memberOrderBoList) {
data = new String[size];
data[0]=memberOrderBo.getOrderNo();
data[1]=simleFormatter.format(memberOrderBo.getCreatTime());
data[2]=memberOrderBo.getStatus()==2?"取消":memberOrderBo.getStatus()==3?"待支付":memberOrderBo.getStatus()==6?"已完成":"";
data[3]=memberOrderBo.getName();
data[4]=memberOrderBo.getUserName();
data[5]=memberOrderBo.getPhone()==null?"":memberOrderBo.getPhone();
data[6]=String.format("%s/%s",memberOrderBo.getLeaderName()==null?"":memberOrderBo.getLeaderName(),memberOrderBo.getLeaderPhone()==null?"":memberOrderBo.getLeaderPhone());
data[7]=String.format("%s/%s",memberOrderBo.getFacilitateName()==null?"":memberOrderBo.getFacilitateName(),memberOrderBo.getFacilitatePhone()==null?"":memberOrderBo.getFacilitatePhone());
data[8]=memberOrderBo.getOrderAmount().toString();
data[9]=memberOrderBo.getCouponAmount().toString();
data[10]=memberOrderBo.getRealAmount().toString();
data[11]=memberOrderBo.getPayTime()==null?"":simleFormatter.format(new Date(memberOrderBo.getPayTime()));
data[0] = memberOrderBo.getOrderNo();
data[1] = simleFormatter.format(memberOrderBo.getCreatTime());
data[2] = memberOrderBo.getStatus() == 2 ? "取消" : memberOrderBo.getStatus() == 3 ? "待支付" : memberOrderBo.getStatus() == 6 ? "已完成" : "";
data[3] = memberOrderBo.getName();
data[4] = memberOrderBo.getUserName();
data[5] = memberOrderBo.getPhone() == null ? "" : memberOrderBo.getPhone();
data[6] = String.format("%s/%s", memberOrderBo.getLeaderName() == null ? "" : memberOrderBo.getLeaderName(), memberOrderBo.getLeaderPhone() == null ? "" : memberOrderBo.getLeaderPhone());
data[7] = String.format("%s/%s", memberOrderBo.getFacilitateName() == null ? "" : memberOrderBo.getFacilitateName(), memberOrderBo.getFacilitatePhone() == null ? "" : memberOrderBo.getFacilitatePhone());
data[8] = memberOrderBo.getOrderAmount().toString();
data[9] = memberOrderBo.getCouponAmount().toString();
data[10] = memberOrderBo.getRealAmount().toString();
data[11] = memberOrderBo.getPayTime() == null ? "" : simleFormatter.format(new Date(memberOrderBo.getPayTime()));
memerOrderData.add(data);
}
return memerOrderData;
}
private CellStyle createGeneralCellStyle(XSSFWorkbook hssfWorkbook){
private CellStyle createGeneralCellStyle(XSSFWorkbook hssfWorkbook) {
CellStyle cellStyleGeneral = createHeaderCellStyle(hssfWorkbook);
cellStyleGeneral.setWrapText(true);
XSSFFont generalFont = createFont(hssfWorkbook);
......@@ -275,7 +295,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return cellStyleGeneral;
}
private CellStyle createHeaderCellStyle(XSSFWorkbook hssfWorkbook){
private CellStyle createHeaderCellStyle(XSSFWorkbook hssfWorkbook) {
XSSFCellStyle cellStyleHeader = hssfWorkbook.createCellStyle();
cellStyleHeader.setAlignment(HorizontalAlignment.CENTER);
cellStyleHeader.setVerticalAlignment(VerticalAlignment.CENTER);
......@@ -285,42 +305,40 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return cellStyleHeader;
}
private XSSFFont createFont(XSSFWorkbook hssfWorkbook){
private XSSFFont createFont(XSSFWorkbook hssfWorkbook) {
XSSFFont font = hssfWorkbook.createFont();
font.setFontName("黑体");
font.setBold(true);
return font;
}
private String[] getData(MemberOrderStatisticsBo memberOrderStatisticsBo){
String orderNum = String.valueOf(memberOrderStatisticsBo.getOrderNum());
String totalAmount = String.valueOf(memberOrderStatisticsBo.getTotalAmount());
String diamondOrderNum = String.valueOf(memberOrderStatisticsBo.getDiamondOrderNum());
String totalDiamondAmount = String.valueOf(memberOrderStatisticsBo.getDiamondOrderNum());
String goldOrderNum = String.valueOf(memberOrderStatisticsBo.getGoldOrderNum());
String totalGoldAmount = String.valueOf(memberOrderStatisticsBo.getTotalGoldAmount());
String generalOrderNum = String.valueOf(memberOrderStatisticsBo.getGeneralOrderNum());
String totalGeneralAmount = String.valueOf(memberOrderStatisticsBo.getTotalGeneralAmount());
return new String[]{orderNum,totalAmount,diamondOrderNum,totalDiamondAmount,goldOrderNum,totalGoldAmount,generalOrderNum,totalGeneralAmount};
private String[] getData(List<MemberOrderStatisticsBo> memberOrderStatisticsBoList) {
String[] strings = new String[memberOrderStatisticsBoList.size() * 2];
for (int i = 0; i < memberOrderStatisticsBoList.size(); i ++ ) {
strings[2*i] = String.valueOf(memberOrderStatisticsBoList.get(i).getOrderNum());
strings[2*i + 1] = String.valueOf(memberOrderStatisticsBoList.get(i).getTotalAmount());
}
return strings;
}
private void createHeader(Row row, int cellStartIndex, String[] header, CellStyle cellStyle){
for (int i =0 ;i<header.length;i++){
private void createHeader(Row row, int cellStartIndex, String[] header, CellStyle cellStyle) {
for (int i = 0; i < header.length; i++) {
Cell cell = row.createCell(cellStartIndex);
cell.setCellValue(header[i]);
cell.setCellStyle(cellStyle);
cellStartIndex+=1;
cellStartIndex += 1;
}
}
private void createMemberOrderCellData(Sheet sheet,int startRowIndex,CellStyle cellStyle,List<String[]> memberOrderList){
private void createMemberOrderCellData(Sheet sheet, int startRowIndex, CellStyle cellStyle, List<String[]> memberOrderList) {
for (String[] data : memberOrderList) {
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){
for(int i=CellStartIndex,y=0;y<data.length;i++,y++){
private void createCellCount(Row row, int CellStartIndex, String[] data, CellStyle cellStyle) {
for (int i = CellStartIndex, y = 0; y < data.length; i++, y++) {
Cell cell = row.createCell(i);
cell.setCellStyle(cellStyle);
cell.setCellValue(data[y]);
......@@ -330,28 +348,28 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
public MemberOrderPageVo listMemberOrderPage(MemberOrderFindDTO memberOrderFindDTO) {
MemberOrderPageVo memberOrderPageVo = new MemberOrderPageVo();
MemberOrderStatisticsBo memberOrderStatisticsBo = new MemberOrderStatisticsBo();
List<MemberOrderStatisticsBo> memberOrderStatisticsBo = new ArrayList<>();
List<Integer> userIds = new ArrayList<>();
PageDataVO<MemberOrderBo> pageDataVO= new PageDataVO<>();
PageDataVO<MemberOrderBo> pageDataVO = new PageDataVO<>();
pageDataVO.setPageNum(memberOrderFindDTO.getPage());
pageDataVO.setPageSize(memberOrderFindDTO.getLimit());
pageDataVO.setData(Collections.EMPTY_LIST);
if (Objects.nonNull(memberOrderFindDTO.getEndPayTime())){
Long payEndTime = memberOrderFindDTO.getEndPayTime()+(1000*60*60*24);
if (Objects.nonNull(memberOrderFindDTO.getEndPayTime())) {
Long payEndTime = memberOrderFindDTO.getEndPayTime() + (1000 * 60 * 60 * 24);
memberOrderFindDTO.setEndPayTime(payEndTime);
}
boolean isNoNullUserName = StringUtils.isNotEmpty(memberOrderFindDTO.getName()) && memberOrderFindDTO.getName().trim().length() > 0;
boolean isNoNullPhone = StringUtils.isNotEmpty(memberOrderFindDTO.getPhone()) && memberOrderFindDTO.getPhone().trim().length() > 0;
boolean isNoNullLeaderPhone = StringUtils.isNotEmpty(memberOrderFindDTO.getLeaderPhone()) && memberOrderFindDTO.getLeaderPhone().trim().length() > 0;
if (isNoNullLeaderPhone || isNoNullPhone || isNoNullUserName) {
userIds = userFeign.findAppUserIds(memberOrderFindDTO.getPhone(),memberOrderFindDTO.getLeaderPhone(),memberOrderFindDTO.getName());
if (CollectionUtils.isEmpty(userIds)){
userIds = userFeign.findAppUserIds(memberOrderFindDTO.getPhone(), memberOrderFindDTO.getLeaderPhone(), memberOrderFindDTO.getName());
if (CollectionUtils.isEmpty(userIds)) {
memberOrderPageVo.setMemberOrderStatisticsBo(memberOrderStatisticsBo);
memberOrderPageVo.setMemberOrderPage(pageDataVO);
return memberOrderPageVo;
}
}
if (memberOrderFindDTO.getPage() == 1){
if (memberOrderFindDTO.getPage() == 1) {
memberOrderFindDTO.setUserIds(userIds);
memberOrderFindDTO.setIsPay(true);
List<MemberOrderBo> baseOrders = baseOrderBiz.findMemberOrders(memberOrderFindDTO);
......@@ -361,16 +379,16 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
memberOrderPageVo.setMemberOrderStatisticsBo(memberOrderStatisticsBo);
List<MemberOrderBo> memberOrderBoList;
if (!memberOrderFindDTO.getIsExport()){
if (!memberOrderFindDTO.getIsExport()) {
memberOrderFindDTO.setUserIds(userIds);
pageDataVO = baseOrderBiz.findMemberOrderPage(memberOrderFindDTO);
memberOrderBoList = pageDataVO.getData();
if (CollectionUtils.isEmpty(memberOrderBoList)){
if (CollectionUtils.isEmpty(memberOrderBoList)) {
memberOrderPageVo.setMemberOrderStatisticsBo(memberOrderStatisticsBo);
memberOrderPageVo.setMemberOrderPage(pageDataVO);
return memberOrderPageVo;
}
}else {
} else {
memberOrderFindDTO.setUserIds(userIds);
memberOrderBoList = baseOrderBiz.findMemberOrders(memberOrderFindDTO);
}
......@@ -392,7 +410,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
Map<String, UserBo> userBoMap = userDTOList.stream().collect(Collectors.toMap(UserBo::getOrderNo, Function.identity()));
for (MemberOrderBo memberOrderBo : memberOrderBoList) {
UserBo userBo = userBoMap.get(memberOrderBo.getOrderNo());
if(Objects.nonNull(userBo)) {
if (Objects.nonNull(userBo)) {
memberOrderBo.setUserName(userBo.getName());
memberOrderBo.setPhone(userBo.getPhone());
memberOrderBo.setLeaderName(userBo.getLeaderName());
......@@ -405,35 +423,32 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return memberOrderBoList;
}
private MemberOrderStatisticsBo getMemberOrderStatisticsBo(List<MemberOrderBo> baseOrders){
private List<MemberOrderStatisticsBo> getMemberOrderStatisticsBo(List<MemberOrderBo> baseOrders) {
List<MemberOrderStatisticsBo> list = new ArrayList<>();
Map<Integer, List<MemberOrderBo>> map = baseOrders.stream().collect(Collectors.groupingBy(MemberOrderBo::getMemberLevel));//按照c1分组
if (MapUtil.isEmpty(map)) {
return list;
}
MemberOrderStatisticsBo total = new MemberOrderStatisticsBo();
total.setType(0);
total.setOrderNum(baseOrders.size());
total.setTotalAmount(new BigDecimal(baseOrders.stream().mapToDouble(n -> n.getOrderAmount()!=null ?n.getOrderAmount().doubleValue()
: 0.00).summaryStatistics().getSum()).setScale(2, BigDecimal.ROUND_HALF_UP));
list.add(total);
for (Map.Entry<Integer, List<MemberOrderBo>> entry : map.entrySet()) {
MemberOrderStatisticsBo memberOrderStatisticsBo = new MemberOrderStatisticsBo();
Map<Integer, List<MemberOrderBo>> baseOrderMap = baseOrders.stream().collect(Collectors.groupingBy(MemberOrderBo::getMemberLevel, Collectors.toList()));
Map<Integer, List<MemberOrderBo>> baseOrderHasPayMap = baseOrders.stream().filter(x->x.getHasPay()==1).collect(Collectors.groupingBy(MemberOrderBo::getMemberLevel, Collectors.toList()));
memberOrderStatisticsBo.setOrderNum(baseOrders.size());
BigDecimal totalAmount = baseOrders.stream().filter(x->x.getHasPay()==1).map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
memberOrderStatisticsBo.setTotalAmount(totalAmount);
List<MemberOrderBo> diamondOrders = baseOrderMap.get(LevelEnum.DIAMOND.getLevel());
memberOrderStatisticsBo.setDiamondOrderNum(diamondOrders==null?0:diamondOrders.size());
List<MemberOrderBo> diamondHashPayOrders = baseOrderHasPayMap.get(LevelEnum.DIAMOND.getLevel());
diamondHashPayOrders = diamondHashPayOrders==null?Collections.EMPTY_LIST:diamondHashPayOrders;
BigDecimal diamondAmount = diamondHashPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
memberOrderStatisticsBo.setTotalDiamondAmount(diamondAmount);
List<MemberOrderBo> goldOrders = baseOrderMap.get(LevelEnum.GOLD.getLevel());
memberOrderStatisticsBo.setGoldOrderNum(goldOrders==null?0:goldOrders.size());
List<MemberOrderBo> goldHasPayOrders = baseOrderHasPayMap.get(LevelEnum.GOLD.getLevel());
goldHasPayOrders = goldHasPayOrders==null?Collections.EMPTY_LIST:goldHasPayOrders;
BigDecimal goldAmount = goldHasPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
memberOrderStatisticsBo.setTotalGoldAmount(goldAmount);
List<MemberOrderBo> generalOrders = baseOrderMap.get(LevelEnum.GENERAL.getLevel());
memberOrderStatisticsBo.setGeneralOrderNum(generalOrders==null?0:generalOrders.size());
List<MemberOrderBo> generalHasPayOrders = baseOrderHasPayMap.get(LevelEnum.GENERAL.getLevel());
generalHasPayOrders = generalHasPayOrders==null?Collections.EMPTY_LIST:generalHasPayOrders;
BigDecimal generalAmount = generalHasPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
memberOrderStatisticsBo.setTotalGeneralAmount(generalAmount);
return memberOrderStatisticsBo;
memberOrderStatisticsBo.setType(entry.getKey());
List<MemberOrderBo> memberOrderBoList = entry.getValue();
if (memberOrderBoList != null) {
memberOrderStatisticsBo.setOrderNum(memberOrderBoList.size());
memberOrderStatisticsBo.setTotalAmount(new BigDecimal(memberOrderBoList.stream().mapToDouble(n -> n.getOrderAmount()!=null ?n.getOrderAmount().doubleValue()
: 0.00).summaryStatistics().getSum()).setScale(2, BigDecimal.ROUND_HALF_UP));
} else {
memberOrderStatisticsBo.setOrderNum(0);
memberOrderStatisticsBo.setTotalAmount(BigDecimal.ZERO);
}
list.add(memberOrderStatisticsBo);
}
return list.stream().sorted(Comparator.comparing(MemberOrderStatisticsBo::getType)).collect(Collectors.toList());
}
}
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