This commit is contained in:
moxiangrong
2024-02-23 18:53:28 +08:00
parent d6b833e181
commit 9bd4410a9f
3 changed files with 52 additions and 1 deletions

View File

@ -280,7 +280,7 @@ public class AppOrderController {
@Operation(summary = "个人中心订单统计")
public CommonResult<AppUserOrderCountVo> countOrder() {
Long uid = getLoginUserId();
AppUserOrderCountVo appUserOrderCountVo = asyncOrderRedisDAO.get(uid);
AppUserOrderCountVo appUserOrderCountVo = appStoreOrderService.orderStatistics(uid);
return success(appUserOrderCountVo);
}

View File

@ -1,6 +1,7 @@
package co.yixiang.yshop.module.order.service.storeorder;
import co.yixiang.yshop.framework.security.core.LoginUser;
import co.yixiang.yshop.module.member.controller.app.user.vo.AppUserOrderCountVo;
import co.yixiang.yshop.module.order.controller.app.afterorder.param.AppOrderRefundParam;
import co.yixiang.yshop.module.order.controller.app.order.param.AppComputeOrderParam;
import co.yixiang.yshop.module.order.controller.app.order.param.AppConfirmOrderParam;
@ -213,4 +214,11 @@ public interface AppStoreOrderService extends IService<StoreOrderDO> {
* @param uid 用户id
*/
void refundOrder(String id, Long uid);
/**
* 订单统计
*
* @return
*/
AppUserOrderCountVo orderStatistics(Long uid);
}

View File

@ -13,6 +13,7 @@ import co.yixiang.yshop.module.cart.service.storecart.AppStoreCartService;
import co.yixiang.yshop.module.distributor.api.dto.DistributorOrderDTO;
import co.yixiang.yshop.module.distributor.enums.DistributorSettlementTypeEnum;
import co.yixiang.yshop.module.member.controller.admin.userbill.vo.UserBillModifyDTO;
import co.yixiang.yshop.module.member.controller.app.user.vo.AppUserOrderCountVo;
import co.yixiang.yshop.module.member.controller.app.user.vo.AppUserQueryVo;
import co.yixiang.yshop.module.member.controller.app.userlevel.vo.SettleLevelInfoVO;
import co.yixiang.yshop.module.member.convert.user.UserConvert;
@ -34,6 +35,7 @@ import co.yixiang.yshop.module.order.controller.app.order.param.AppOrderParam;
import co.yixiang.yshop.module.order.controller.app.order.param.AppPayParam;
import co.yixiang.yshop.module.order.controller.app.order.vo.*;
import co.yixiang.yshop.module.order.convert.storeorder.StoreOrderConvert;
import co.yixiang.yshop.module.order.dal.dataobject.storeaftersales.StoreAfterSalesDO;
import co.yixiang.yshop.module.order.dal.dataobject.storeorder.StoreOrderDO;
import co.yixiang.yshop.module.order.dal.dataobject.storeordercartinfo.StoreOrderCartInfoDO;
import co.yixiang.yshop.module.order.dal.dataobject.storeorderdetail.StoreOrderDetailDO;
@ -1592,6 +1594,47 @@ public class AppStoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper, Stor
this.orderRefund(param);
}
@Override
public AppUserOrderCountVo orderStatistics(Long uid) {
// 查询所有未退款订单
List<StoreOrderDO> storeOrderDOS =
storeOrderMapper.selectList(new LambdaQueryWrapper<StoreOrderDO>()
.eq(StoreOrderDO::getUid, uid)
.eq(StoreOrderDO::getRefundStatus, OrderInfoEnum.REFUND_STATUS_NORMAL.getValue()));
// 计算订单支付没有退款总数
Long orderCount = storeOrderDOS.stream().filter(order ->
OrderInfoEnum.PAY_STATUS_HAVE_PAID.getValue().equals(order.getPaid())).count();
// 计算待付款订单数
Long unpaidCount = storeOrderDOS.stream().filter(order ->
OrderInfoEnum.PAY_STATUS_UNPAID.getValue().equals(order.getPaid()) &&
OrderInfoEnum.STATUS_DEFAULT.getValue().equals(order.getStatus())).count();
// 计算待发货订单数
Long unshippedCount = storeOrderDOS.stream().filter(order ->
OrderInfoEnum.PAY_STATUS_HAVE_PAID.getValue().equals(order.getPaid()) &&
OrderInfoEnum.STATUS_DEFAULT.getValue().equals(order.getStatus())).count();
// 计算待收货订单数
Long receivedCount = storeOrderDOS.stream().filter(order ->
OrderInfoEnum.PAY_STATUS_HAVE_PAID.getValue().equals(order.getPaid()) &&
OrderInfoEnum.STATUS_WAIT_RECEIVED.getValue().equals(order.getStatus())).count();
// 计算待评价订单数
Long evaluatedCount = storeOrderDOS.stream().filter(order ->
OrderInfoEnum.PAY_STATUS_HAVE_PAID.getValue().equals(order.getPaid()) &&
OrderInfoEnum.STATUS_RECEIVED.getValue().equals(order.getStatus())).count();
// 计算订单完成数量
Long completeCount = storeOrderDOS.stream().filter(order ->
OrderInfoEnum.PAY_STATUS_HAVE_PAID.getValue().equals(order.getPaid()) &&
OrderInfoEnum.STATUS_FINISHED.getValue().equals(order.getStatus())).count();
AppUserOrderCountVo appUserOrderCountVo = AppUserOrderCountVo.builder()
.orderCount(orderCount)
.unpaidCount(unpaidCount)
.unshippedCount(unshippedCount)
.receivedCount(receivedCount)
.evaluatedCount(evaluatedCount)
.completeCount(completeCount)
.build();
return appUserOrderCountVo;
}
/**
* 退回积分