Commit 8b7245e4 authored by hanfeng's avatar hanfeng

Merge branch 'master-order-statistics'

parents a01a3350 e9b827bd
package com.github.wxiaoqi.security.common.msg.auth;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class PageResult<M> {
/** 页码 */
private Integer page;
/** 每页结果数 */
private Integer pageSize;
/** 总页数 */
private Integer totalPage;
/** 总数 */
private Integer total;
private List<M> list=new ArrayList<>();
private PageResult(){
}
private PageResult(int page, int pageSize, int totalPage, int total, List<M> list) {
this.page = page;
this.pageSize = pageSize;
this.totalPage = totalPage;
this.total = total;
this.list = list;
}
public static PageResult nowPageResult(Integer page, Integer limit, List totalList) {
page=page!=null?page:1;
limit=limit!=null?limit:10;
//总条数
Integer total=0;
//总页数
Integer totalPage=0;
//当前页面数据条数
Integer pageSize=0;
//当前页面数据集合
List list = new ArrayList();
if (totalList!=null&&totalList.size()!=0){
total= totalList.size();
totalPage = (total / limit) + 1;
//每页的起始索引
Integer pageNo = (page - 1) * limit;
if (pageNo + limit > total) {
list = totalList.subList(pageNo, total);
} else {
list = totalList.subList(pageNo, pageNo + limit);
}
pageSize=list.size();
}
return new PageResult(page,pageSize,totalPage,total,list);
}
}
package com.xxfc.platform.order.pojo; package com.xxfc.platform.order.pojo;
import lombok.Data; import lombok.Data;
import org.joda.time.DateTime;
/** /**
* 会员订单统计条件 * 会员订单统计条件
...@@ -9,21 +10,21 @@ import lombok.Data; ...@@ -9,21 +10,21 @@ import lombok.Data;
@Data @Data
public class OrderQuery { public class OrderQuery {
private Integer page=1; private Integer page = 1;
private Integer limit=10; private Integer limit = 10;
/** /**
* 查询开始时间 * 查询开始时间
*/ */
private Long startTime; private Long startTime;
/** /**
* 查询结束时间 * 查询结束时间
*/ */
private Long endTime; private Long endTime;
/** /**
* 1.按每日统计,2.按每周统计,3.按每月统计 * 1.按每日统计,2.按每周统计,3.按每月统计
*/ */
private Integer type=1; private Integer type = 1;
} }
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.db.PageResult;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.auth.PageResult;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.xxfc.platform.order.Utils.OrderDateUtils; import com.xxfc.platform.order.Utils.OrderDateUtils;
import com.xxfc.platform.order.contant.enumerate.OrderInquiryType; import com.xxfc.platform.order.contant.enumerate.OrderInquiryType;
...@@ -53,8 +53,10 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat ...@@ -53,8 +53,10 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
setAdditionalIndemnity(vehicle.getTotalCompensation() setAdditionalIndemnity(vehicle.getTotalCompensation()
.add(vehicle.getTotalForfeit()) .add(vehicle.getTotalForfeit())
.add(vehicle.getTotalDefaultMoney()) .add(vehicle.getTotalDefaultMoney())
.add(vehicle.getTotalExpenditure().subtract(vehicle.getTotalGmv()).add(vehicle.getTotalReturnGmv())) .add(vehicle.getTotalExpenditure().subtract(vehicle.getTotalGmv()).add(vehicle.getTotalReturnGmv())));
); setTotalOutstandingDeposit(vehicle.getTotalSecurityDeposit()
.subtract(vehicle.getTotalRefundSecurityDeposit())
.subtract(getAdditionalIndemnity()));
}}; }};
orderStatistics.add(data); orderStatistics.add(data);
} }
...@@ -66,12 +68,13 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat ...@@ -66,12 +68,13 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
setAdditionalIndemnity(tour.getTotalDefaultMoney()); setAdditionalIndemnity(tour.getTotalDefaultMoney());
}}; }};
orderStatistics.add(data); orderStatistics.add(data);
} }
OrderStatistics member = membersBiz.findAll(companyId); OrderStatistics member = membersBiz.findAll(companyId);
if (vehicle != null) { if (vehicle != null) {
HomePageOrderData data = new HomePageOrderData() {{ HomePageOrderData data = new HomePageOrderData() {{
setTotalOrders(member.getTotalGmv()); setTotalOrders(member.getTotalGmv());
}}; }};
orderStatistics.add(data); orderStatistics.add(data);
} }
...@@ -86,13 +89,13 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat ...@@ -86,13 +89,13 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
return result; return result;
} }
public List<MembersOrderDto> getMemberOrderStatistics(List<BaseUserMemberLevel> memberLevels, OrderQuery query) throws ParseException { public PageResult getMemberOrderStatistics(List<BaseUserMemberLevel> memberLevels, OrderQuery query) throws ParseException {
List<MembersOrder> membersOrderList = membersBiz.getMemberOrderStatistics(query); List<MembersOrder> membersOrderList = membersBiz.getMemberOrderStatistics(query);
//按每天分类 //按每天分类
if (CollectionUtil.isEmpty(membersOrderList)) { if (CollectionUtil.isEmpty(membersOrderList)) {
return null; return PageResult.nowPageResult(query.getPage(),query.getLimit(),Lists.newArrayList());
} }
//按每天分类 //按每天分类
if (CollectionUtil.isEmpty(memberLevels)) { if (CollectionUtil.isEmpty(memberLevels)) {
...@@ -172,18 +175,13 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat ...@@ -172,18 +175,13 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
//进行分页处理 //进行分页处理
return arrayList; return PageResult.nowPageResult(query.getPage(),query.getLimit(),arrayList);
// return pagingProcessing(query, arrayList); // return pagingProcessing(query, arrayList);
} }
private PageResult pagingProcessing(OrderQuery query, ArrayList<MembersOrderDto> arrayList) {
PageResult pageResult = (PageResult) arrayList;
pageResult.setPage(query.getPage());
pageResult.setPageSize(query.getLimit());
return pageResult;
}
private void TotalPaymentAndMemberName(HashMap<Integer, String> map, MembersOrder mb, MembersOrderDto mbdto) { private void TotalPaymentAndMemberName(HashMap<Integer, String> map, MembersOrder mb, MembersOrderDto mbdto) {
...@@ -201,11 +199,6 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat ...@@ -201,11 +199,6 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
mbdto.setTotalPayment(totalPayment); mbdto.setTotalPayment(totalPayment);
} }
public Object downloadExcel() {
return null;
}
public List<HashMap<Object, Object>> getRows(List<MembersOrderDto> list, List<BaseUserMemberLevel> memberLevels) { public List<HashMap<Object, Object>> getRows(List<MembersOrderDto> list, List<BaseUserMemberLevel> memberLevels) {
ArrayList<HashMap<Object, Object>> rows = Lists.newArrayList(); ArrayList<HashMap<Object, Object>> rows = Lists.newArrayList();
......
...@@ -122,7 +122,8 @@ public class OrderCalculateBiz { ...@@ -122,7 +122,8 @@ public class OrderCalculateBiz {
inProgressVO.setUsedFreeDaysAmount(orderItem.getUnitPrice().multiply(new BigDecimal(useDays+ ""))); inProgressVO.setUsedFreeDaysAmount(orderItem.getUnitPrice().multiply(new BigDecimal(useDays+ "")));
//返回剩余免费天数,返回优惠券,订单款 //返回剩余免费天数,返回优惠券,订单款
refundAmount = refundAmount.add(goodsRealAmount); //修改bug,不需要提前加, 已在handleConsumeAmount方法中添加
// refundAmount = refundAmount.add(goodsRealAmount);
inProgressVO.setBackFreeDays(backFreeDays); inProgressVO.setBackFreeDays(backFreeDays);
//返回优惠券 //返回优惠券
...@@ -132,7 +133,10 @@ public class OrderCalculateBiz { ...@@ -132,7 +133,10 @@ public class OrderCalculateBiz {
} }
//设置消费金额 由于返回了优惠券,所以添加优惠券之前减免的金额 //设置消费金额 由于返回了优惠券,所以添加优惠券之前减免的金额
consumeAmount = consumeAmount.add(otherItemRealAmount).add(baseOrder.getCouponAmount()); consumeAmount = consumeAmount.add(otherItemRealAmount);
//修改bug,消费金额不需要添加优惠券金额
//.add(baseOrder.getCouponAmount());
inProgressVO.setConsumeAmount(consumeAmount); inProgressVO.setConsumeAmount(consumeAmount);
refundAmount = handleConsumeAmount(oad, refundAmount, consumeAmount, goodsRealAmount, inProgressVO); refundAmount = handleConsumeAmount(oad, refundAmount, consumeAmount, goodsRealAmount, inProgressVO);
......
...@@ -110,6 +110,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz ...@@ -110,6 +110,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
companyId = null; companyId = null;
} }
//只统计租车订单
if (TYPE_VEHICLE.equals(type)) { if (TYPE_VEHICLE.equals(type)) {
OrderStatistics vehicle = vehicleBiz.findAll(companyId); OrderStatistics vehicle = vehicleBiz.findAll(companyId);
return ObjectRestResponse.succ(new HomePageOrderData() {{ return ObjectRestResponse.succ(new HomePageOrderData() {{
...@@ -119,15 +120,21 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz ...@@ -119,15 +120,21 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
.add(vehicle.getTotalDefaultMoney()) .add(vehicle.getTotalDefaultMoney())
.add(vehicle.getTotalExpenditure().subtract(vehicle.getTotalGmv().subtract(vehicle.getTotalReturnGmv()))) .add(vehicle.getTotalExpenditure().subtract(vehicle.getTotalGmv().subtract(vehicle.getTotalReturnGmv())))
); );
setTotalOutstandingDeposit(vehicle.getTotalSecurityDeposit()
.subtract(vehicle.getTotalRefundSecurityDeposit())
.subtract(getAdditionalIndemnity()));
}}); }});
} }
//只统计会租车订单
if (TYPE_TOUR.equals(type)) { if (TYPE_TOUR.equals(type)) {
OrderStatistics tour = TravelBiz.findAll(companyId); OrderStatistics tour = TravelBiz.findAll(companyId);
return ObjectRestResponse.succ(new HomePageOrderData() {{ return ObjectRestResponse.succ(new HomePageOrderData() {{
setTotalOrders(tour.getTotalGmv().subtract(tour.getTotalReturnGmv())); setTotalOrders(tour.getTotalGmv().subtract(tour.getTotalReturnGmv()));
setAdditionalIndemnity(tour.getTotalDefaultMoney()); setAdditionalIndemnity(tour.getTotalDefaultMoney());
}}); }});
} }
//只统计会员定案
if (TYPE_MEMBER.equals(type)) { if (TYPE_MEMBER.equals(type)) {
OrderStatistics member = membersBiz.findAll(companyId); OrderStatistics member = membersBiz.findAll(companyId);
return ObjectRestResponse.succ(new HomePageOrderData() {{ return ObjectRestResponse.succ(new HomePageOrderData() {{
...@@ -136,6 +143,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz ...@@ -136,6 +143,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
}}); }});
} }
//所有订单
if (TYPE_TOTAL.equals(type)) { if (TYPE_TOTAL.equals(type)) {
return ObjectRestResponse.succ(baseBiz.getTotalOrder(companyId)); return ObjectRestResponse.succ(baseBiz.getTotalOrder(companyId));
} }
...@@ -151,7 +159,9 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz ...@@ -151,7 +159,9 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
@PostMapping("/order") @PostMapping("/order")
@ApiOperation(value = "会员统计") @ApiOperation(value = "会员统计")
public ObjectRestResponse<List<MembersOrderDto>> getMemberOrderStatisticsData(@RequestBody OrderQuery query) throws ParseException { public ObjectRestResponse<List<MembersOrderDto>> getMemberOrderStatisticsData(@RequestBody OrderQuery query) throws ParseException {
if (query.getEndTime()!=null) {
query.setEndTime(query.getEndTime()+(24*60*60*1000));
}
//获取会员等级信息 //获取会员等级信息
List<BaseUserMemberLevel> memberLevels = userFeign.levels(); List<BaseUserMemberLevel> memberLevels = userFeign.levels();
//获取会员订单统计信息 //获取会员订单统计信息
...@@ -162,12 +172,14 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz ...@@ -162,12 +172,14 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
@PostMapping("/excel") @PostMapping("/excel")
@ApiOperation(value = "下载excel表") @ApiOperation(value = "下载excel表")
public void downloadExcel(@RequestBody OrderQuery query) throws Exception { public void downloadExcel(@RequestBody OrderQuery query) throws Exception {
if (query.getEndTime()!=null) {
query.setEndTime(query.getEndTime()+(24*60*60*1000));
}
// 通过工具类创建writer,默认创建xls格式 // 通过工具类创建writer,默认创建xls格式
ExcelWriter writer = ExcelUtil.getWriter(true); ExcelWriter writer = ExcelUtil.getWriter(true);
List<BaseUserMemberLevel> memberLevels = userFeign.levels(); List<BaseUserMemberLevel> memberLevels = userFeign.levels();
List<MembersOrderDto> list = baseBiz.getMemberOrderStatistics(memberLevels, query); List<MembersOrderDto> list = baseBiz.getMemberOrderStatistics(memberLevels, query).getList();
List<HashMap<Object, Object>> rows =baseBiz.getRows(list,memberLevels); List<HashMap<Object, Object>> rows = baseBiz.getRows(list, memberLevels);
// 一次性写出内容,使用默认样式,强制输出标题 // 一次性写出内容,使用默认样式,强制输出标题
writer.write(rows, true); writer.write(rows, true);
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
SELECT SELECT
IFNULL( sum( gmv ), 0 ) AS totalGmv IFNULL( sum( gmv ), 0 ) AS totalGmv
FROM FROM
daily_vehicle_order_statistics daily_members_order_statistics
WHERE WHERE
1=1 1=1
<if test="companyId != null"> <if test="companyId != null">
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
IFNULL( sum( default_money ), 0 ) AS totalDefaultMoney, IFNULL( sum( default_money ), 0 ) AS totalDefaultMoney,
IFNULL( sum( return_gmv ), 0 ) AS totalReturnGmv IFNULL( sum( return_gmv ), 0 ) AS totalReturnGmv
FROM FROM
daily_vehicle_order_statistics daily_travel_order_statistics
WHERE WHERE
1=1 1=1
<if test="companyId != null"> <if test="companyId != null">
......
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