Commit 5df7b2f1 authored by hanfeng's avatar hanfeng

修改订单统计

parent 8cd193db
package com.xxfc.platform.order.Utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class OrderDateUtils {
......@@ -75,4 +78,34 @@ public class OrderDateUtils {
return cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" +
cal.get(Calendar.DAY_OF_MONTH);
}
public static String timeStampConversionToString(Long time) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date(time);
return simpleDateFormat.format(date);
}
public static Long ConvertingStringsToTimestamps(String time) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
return simpleDateFormat.parse(time).getTime();
}
public static Integer getTodayOfWeek() {
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setTimeInMillis(System.currentTimeMillis());
return cal.get(Calendar.WEEK_OF_YEAR);
}
public static Integer getTodayOfMonth() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
return cal.get(Calendar.MONTH)+1;
}
public static Integer getThisYear() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
return cal.get(Calendar.YEAR);
}
}
......@@ -26,6 +26,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
......@@ -90,7 +91,8 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
return result;
}
public PageResult<MembersOrderDto> getMemberOrderStatistics(List<BaseUserMemberLevel> memberLevels, OrderQuery query) {
public PageResult<MembersOrderDto> getMemberOrderStatistics(List<BaseUserMemberLevel> memberLevels, OrderQuery query) throws ParseException {
List<MembersOrder> membersOrderList = membersBiz.getMemberOrderStatistics(query);
//按每天分类
......@@ -117,55 +119,66 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
arrayList.add(mbdto);
}
} else {
if (membersOrderList.size() == 1) {
MembersOrder mb = membersOrderList.get(0);
for (int i = 0; i < membersOrderList.size(); i++) {
MembersOrder mb = membersOrderList.get(i);
String period = mb.getPeriod();
if (StringUtils.isBlank(period)) {
continue;
}
MembersOrderDto mbdto = new MembersOrderDto();
//设置时间段
mbdto.setTimeSlot(query.getStartTime() + "-" + query.getEndTime());
TotalPaymentAndMemberName(map, mb, mbdto);
arrayList.add(mbdto);
} else {
for (int i = 0; i < membersOrderList.size(); i++) {
MembersOrder mb = membersOrderList.get(i);
String period = mb.getPeriod();
if (StringUtils.isBlank(period)) {
continue;
}
MembersOrderDto mbdto = new MembersOrderDto();
String[] periods = mb.getPeriod().split("-");
String startDay = null;
String endDay = null;
if (OrderInquiryType.WEEK.getCode().equals(query.getType())) {
startDay = OrderDateUtils.getEndDayOfWeekNo(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
endDay = OrderDateUtils.getStartDayOfWeekNo(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
}
if (OrderInquiryType.MONTH.getCode().equals(query.getType())) {
startDay = OrderDateUtils.getFirstDayOfMonth(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
endDay = OrderDateUtils.getLastDayOfMonth(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
}
if (i == 0) {
String[] periods = mb.getPeriod().split("-");
String startDay = null;
String endDay = null;
Integer time = null;
if (OrderInquiryType.WEEK.getCode().equals(query.getType())) {
startDay = OrderDateUtils.getEndDayOfWeekNo(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
endDay = OrderDateUtils.getStartDayOfWeekNo(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
//获取今天是今年的第几周
time = OrderDateUtils.getTodayOfWeek();
}
Integer thisYear =OrderDateUtils.getThisYear();
if (OrderInquiryType.MONTH.getCode().equals(query.getType())) {
startDay = OrderDateUtils.getFirstDayOfMonth(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
endDay = OrderDateUtils.getLastDayOfMonth(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
//获取今天是今年的第几个月
time = OrderDateUtils.getTodayOfMonth();
}
startDay = timeStampConversionToString(query.getStartTime());
}
if (i == (membersOrderList.size() - 1)) {
endDay = timeStampConversionToString(query.getEndTime());
}
if (StringUtils.isNotBlank(startDay) && StringUtils.isNotBlank(endDay)) {
mbdto.setTimeSlot(startDay + "-" + endDay);
} else {
mbdto.setTimeSlot("");
if (i == 0 && query.getStartTime() != null) {
startDay = OrderDateUtils.timeStampConversionToString(query.getStartTime());
}
//获取当前的年.周(年.月)小数
double today=Double.parseDouble(thisYear+"."+time);
if (i == (membersOrderList.size() - 1)) {
//查询到的最后一条数据年.周(年.月)小数
double date = Double.parseDouble(Integer.parseInt(periods[0]) + "." + Integer.parseInt(periods[1]));
if (date == today) {
endDay = OrderDateUtils.timeStampConversionToString(System.currentTimeMillis());
} else if (date < today) {
//获取最后一条数据,周末日期
Long end = OrderDateUtils.ConvertingStringsToTimestamps(endDay);
//查询的结束日期
Long endTime = query.getEndTime();
if (endTime != null && end > endTime) {
endDay = OrderDateUtils.timeStampConversionToString(query.getEndTime());
}
}
arrayList.add(mbdto);
}
if (StringUtils.isNotBlank(startDay) && StringUtils.isNotBlank(endDay)) {
mbdto.setTimeSlot(startDay + "-" + endDay);
} else {
mbdto.setTimeSlot("");
}
TotalPaymentAndMemberName(map, mb, mbdto);
arrayList.add(mbdto);
}
}
//进行分页处理
//进行分页处理
return pagingProcessing(query,arrayList);
return pagingProcessing(query, arrayList);
}
......@@ -176,11 +189,6 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
return pageResult;
}
private String timeStampConversionToString(Long startTime) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date(startTime);
return simpleDateFormat.format(date);
}
private void TotalPaymentAndMemberName(HashMap<Integer, String> map, MembersOrder mb, MembersOrderDto mbdto) {
BigDecimal totalPayment = mbdto.getTotalPayment();
......
......@@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
......@@ -134,7 +135,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
@PostMapping("/order")
@ApiOperation(value = "会员统计")
public ObjectRestResponse getMemberOrderStatisticsData(@RequestBody OrderQuery query) {
public ObjectRestResponse getMemberOrderStatisticsData(@RequestBody OrderQuery query) throws ParseException {
//获取会员等级信息
List<BaseUserMemberLevel> memberLevels = userFeign.levels();
......
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