mitao
2025-01-17 afa0dbb4f54e7244835dd67ec33c3e545f122f71
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -2,14 +2,19 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsResult;
import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingResult;
import com.github.binarywang.wxpay.bean.ecommerce.RefundNotifyResult;
import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingNotifyResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.ruoyi.order.domain.dto.MerVerifyPrizeDto;
import com.ruoyi.order.domain.dto.*;
import com.ruoyi.order.domain.pojo.order.Order;
import com.ruoyi.order.domain.vo.*;
import com.ruoyi.system.api.domain.dto.AppBaseGetDto;
import com.ruoyi.system.api.domain.vo.AppOrderTotalVo;
import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo;
import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.vo.*;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -32,11 +37,30 @@
    AppSureOrderVo buyGoods(AppSureOrderDto appSureOrderDto);
    /**
     * @description  抢购商品
     * @author  jqs
     * @date    2023/7/6 11:45
     * @param appPanicBuyDto
     * @return  AppSureOrderVo
     */
    AppPanicBuyVo panicBuyGoods(AppPanicBuyDto appPanicBuyDto);
    /**
     * 创建订单
     * @param appPlaceOrderDto
     * @return
     */
    AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto);
    /**
     * @description  创建活动订单
     * @author  jqs
     * @date    2023/7/6 17:59
     * @param appPlaceActivityDto
     * @return  AppPlaceOrderVo
     */
    AppPlaceOrderVo placeActivityOrder( AppPlaceActivityDto appPlaceActivityDto);
    /**
     * 分页获取用户订单
@@ -60,6 +84,15 @@
    void cancelOrder(String orderId);
    /**
     * @description  支付订单
     * @author  jqs
     * @date    2023/8/27 15:26
     * @param orderId
     * @return  AppPlaceOrderVo
     */
    AppPlaceOrderVo payOrder(String orderId);
    /**
     * 获取用户订单统计
     * @param userId
     * @return
@@ -78,7 +111,7 @@
     * @param orderId
     * @return
     */
    MerVerifyOrderVo verifyOrder(String orderId);
    MerVerifyOrderVo verifyOrder(String orderId,Long shopId);
    /**
     * 确认核销订单
@@ -86,6 +119,24 @@
     * @return
     */
    MerVerifyOrderVo sureVerifyOrder(MerVerifyOrderDto merVerifyOrderDto);
    /**
     * @description  确认核销优惠券
     * @author  jqs
     * @date    2023/6/28 11:26
     * @param merVerifyCouponDto
     * @return  MerVerifyCouponVo
     */
    MerVerifyCouponVo sureVerifyCoupon(MerVerifyCouponDto merVerifyCouponDto);
    /**
     * @description  确认核销奖品
     * @author  jqs
     * @date    2023/7/9 9:54
     * @param merVerifyPrizeDto
     * @return  MerVerifyAwardVo
     */
    MerVerifyAwardVo sureVerifyPrize(MerVerifyPrizeDto merVerifyPrizeDto);
    /**
     * 收银未结清订单列表
@@ -113,7 +164,7 @@
     * @param merOrderPageDto
     * @return
     */
    List<MerOrderPageVo> pageMerOrder(Page page,MerOrderPageDto merOrderPageDto);
    List<MerOrderPageVo> pageMerOrder(Page page, MerOrderPageDto merOrderPageDto);
    /**
     * 分页商户端用户收银记录
@@ -121,7 +172,7 @@
     * @param merMemberNoClearOrderDto
     * @return
     */
    List<MerMemberNoClearOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto);
    List<MerMemberOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto);
    /**
     * 获取用户订单统计
@@ -184,5 +235,366 @@
    * @author jqs34
    * @date 2023/6/18 17:20
    */
    MgtBulletinBoardVo boardOrderTotal();
    MgtBulletinBoardVo boardOrderTotal(List<Long> userIds);
    /**
    * @description 获取商户订单统计
    * @param mgtBaseShopDto
    * @return MgtTotalOrderTotalVo
    * @author jqs34
    * @date 2023/6/19 22:23
    */
    MgtTotalOrderTotalVo getTotalOrderTotal(MgtBaseShopDto mgtBaseShopDto);
    /**
     * @description 获取商户活动统计
     * @author  jqs
     * @date    2023/6/20 9:28
     * @param mgtBaseShopDto
     * @return  MgtTotalActivityTotalVo
     */
    MgtTotalActivityTotalVo getTotalActivityTotal(MgtBaseShopDto mgtBaseShopDto);
    MgtTotalActivityTotalVo getTotalActivityJoinMemberTotal(MgtBaseShopDto mgtBaseShopDto);
    /**
     * @description 获取商户活动年龄分布
     * @author  jqs
     * @date    2023/6/20 9:57
     * @param mgtActivityAgeDto
     * @return  MgtTotalActivityTotalVo
     */
    //MgtTotalActivityTotalVo getTotalActivityAgeRank(MgtActivityAgeDto mgtActivityAgeDto);
    /**
     * @description 获取商户数据统计
     * @author  jqs
     * @date    2023/6/20 15:50
     * @param mgtBaseShopDto
     * @return  MgtTotalDataTotalVo
     */
    MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto);
    /**
     * @description
     * @author  jqs
     * @date    2023/6/21 15:27
     * @param mgtBasePlatformDto
     * @return  List<MgtMapIntTotalVo>
     */
    List<MgtMapIntTotalVo> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto);
    /**
    * @description 获取平台商户数据统计
    * @param mgtBasePlatformDto
    * @return List<MgtTotalDataTotalVo>
    * @author jqs34
    * @date 2023/6/23 14:01
    */
    List<MgtTotalDataTotalVo> getPlTotalDataTotal(MgtBasePlatformDto mgtBasePlatformDto);
    /**
     * @description 获取平台商户订单统计
     * @param mgtBasePlatformDto
     * @return MgtTotalOrderTotalVo
     * @author jqs34
     * @date 2023/6/19 22:23
     */
    MgtTotalOrderTotalVo getPlTotalOrderTotal(MgtBasePlatformDto mgtBasePlatformDto);
    /**
     * @description 获取商户活动统计
     * @author  jqs
     * @date    2023/6/20 9:28
     * @param mgtBasePlatformDto
     * @return  MgtTotalActivityTotalVo
     */
    MgtPlTotalActivityTotalVo getPlTotalActivityTotal(MgtBasePlatformDto mgtBasePlatformDto);
    MgtPlTotalActivityTotalVo getPlTotalActivityJoinMemberTotal(MgtBasePlatformDto mgtBasePlatformDto);
    MgtPlTotalActivityTotalVo getPlTotalActivityGetMemberTotal(MgtBasePlatformDto mgtBasePlatformDto);
    /**
     * @description 获取商户活动年龄分布
     * @author  jqs
     * @date    2023/6/20 9:57
     * @param mgtPLActivityAgeDto
     * @return  MgtTotalActivityTotalVo
     */
    //MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPLActivityAgeDto);
    /**
     * @description  获取优惠券核销信息
     * @author  jqs
     * @date    2023/6/27 11:10
     * @param verifyCode
     * @return  MerVerifyCouponVo
     */
    MerVerifyCouponVo verifyCoupon(String verifyCode,Long shopId);
    /**
     * @description  获取核销奖品
     * @author  jqs
     * @date    2023/7/8 17:46
     * @param verifyCode
     * @param shopId
     * @return  MerVerifyAwardVo
     */
    MerVerifyAwardVo verifyPrize(String verifyCode,Long shopId);
    /**
     * @description  获取用户未支付金额
     * @author  jqs
     * @date    2023/6/29 18:00
     * @param merBaseDto
     * @return  BigDecimal
     */
    BigDecimal getMemberUnpaidOrder(MerBaseDto merBaseDto);
    /**
     * @description  商户端获取订单统计
     * @author  jqs
     * @date    2023/7/3 19:29
     * @param merTotalDto
     * @return  MerOrderTotalVo
     */
    MerOrderTotalVo getMerOrderTotal(MerTotalDto merTotalDto);
    /**
     * @description  商户端获取订单分布统计
     * @author  jqs
     * @date    2023/7/4 9:29
     * @param merTotalDto
     * @return  MerOrderDistributionTotalVo
     */
    MerOrderDistributionTotalVo MerOrderDistributionTotalVo(MerTotalDto merTotalDto);
    /**
     * @description  商户端获取销售占比统计
     * @author  jqs
     * @date    2023/7/4 13:58
     * @param merTotalDto
     * @return  MerOrderTypeTotalVo
     */
    MerOrderTypeTotalVo getMerOrderTypeTotal(MerTotalDto merTotalDto);
    /**
     * @description  商户端获取销售排行
     * @author  jqs
     * @date    2023/7/4 14:23
     * @param merTotalDto
     * @return  MerOrderGoodsRankVo
     */
    MerOrderGoodsRankVo getMerOrderGoodsRank(MerTotalDto merTotalDto);
    /**
     * @description  商户端获取渠道排行
     * @author  jqs
     * @date    2023/7/4 14:51
     * @param merTotalDto
     * @return  MerOrderFromRankVo
     */
    MerOrderFromRankVo getMerOrderFromRank(MerTotalDto merTotalDto);
    /**
     * @description  商户端订单管理统计
     * @author  jqs
     * @date    2023/7/4 16:27
     * @param merOrderPageDto
     * @return  MerTotalOrderVo
     */
    MerTotalOrderVo totalMerOrder(MerOrderPageDto merOrderPageDto);
    /**
     * @description  平台获取商户订单记录
     * @author  jqs
     * @date    2023/7/5 20:17
     * @param page
     * @param mgtShopAllOrderPageDto
     * @return  List<MgtShopAllOrderPageVo>
     */
    List<MgtShopAllOrderPageVo> pageMgtShopAllOrder(Page page, MgtShopAllOrderPageDto mgtShopAllOrderPageDto);
    /**
     * @description 自动取消订单
     * @author  jqs
     * @date    2023/7/13 17:15
     * @param orderId
     * @return  void
     */
    void autoCancelOrder(String orderId);
    /**
     * @description  订单支付回调
     * @author  jqs
     * @date    2023/7/13 17:57
     * @param  transaction
     * @return  void
     */
    void payBack(PartnerTransactionsResult transaction, BigDecimal feeAmount);
    /**
     * 取消订单
     * @param orderId
     */
    void refundOrder(String orderId);
    /**
     * @description  员工端活动订单统计
     * @author  jqs
     * @date    2023/7/17 15:25
     * @param staffTotalDto
     * @return  StaffActivityOrderTotalVo
     */
    StaffActivityOrderTotalVo getStaffActivityOrderTotal(StaffTotalDto staffTotalDto);
    /**
     * @description  员工端活动统计
     * @author  jqs
     * @date    2023/7/17 15:51
     * @param staffTotalDto
     * @return  StaffActivityTotalVo
     */
    StaffActivityTotalVo getStaffActivityTotal(StaffTotalDto staffTotalDto);
    /**
     * @description  员工端活动统计订单分布
     * @author  jqs
     * @date    2023/7/17 16:16
     * @param staffTotalDto
     * @return  MerOrderDistributionTotalVo
     */
    MerOrderDistributionTotalVo getStaffOrderDistributionTotal(StaffTotalDto staffTotalDto);
    /**
     * @description  员工端活动统计销售占比
     * @author  jqs
     * @date    2023/7/17 17:03
     * @param staffTotalDto
     * @return  MerOrderTypeTotalVo
     */
    MerOrderTypeTotalVo getStaffOrderTypeTotal(StaffTotalDto staffTotalDto);
    /**
     * @description  员工端获客人数
     * @author  jqs
     * @date    2023/7/17 18:42
     * @param staffTotalDto
     * @return  StaffActivityDateMemberTotalVo
     */
    StaffActivityDateMemberTotalVo getStaffActivityGetMemberTotal(StaffTotalDto staffTotalDto);
    /**
     * @description  员工端获客人数
     * @author  jqs
     * @date    2023/7/17 18:42
     * @param staffTotalDto
     * @return  StaffActivityDateMemberTotalVo
     */
    StaffActivityDateMemberTotalVo getStaffActivityMemberTotal(StaffTotalDto staffTotalDto);
    /**
     * @description  检查订单状态定时任务
     * @author  jqs
     * @date    2023/7/25 14:40
     * @param
     * @return  void
     */
    void checkOrderStatus();
    /**
     * 分账通知回调
     * @param result
     */
    void profitSharingBack(ProfitSharingNotifyResult result);
    /**
     * 订单退款回调
     * @param result
     */
    void orderRefundBack(RefundNotifyResult result);
    /**
     * @description  获取商户订单统计
     * @author  jqs
     * @date    2023/8/4 10:25
     * @param mgtShopAllOrderPageDto
     * @return  MgtShopAllOrderTotal
     */
    MgtShopAllOrderTotal getMgtShopAllOrderTotal(MgtShopAllOrderPageDto mgtShopAllOrderPageDto);
    /**
     * 分页获取会员消费记录
     * @param merOrderPageDto
     * @return
     */
    List<MerOrderPageVo> pageMerMemberPayOrder(Page page,MerMemberNoClearOrderDto merOrderPageDto);
    /**
     * @description  获取销售排行
     * @author  jqs
     * @date    2023/8/24 18:00
     * @param shopIdList
     * @return  List<MgtMapIntTotalVo>
     */
    List<MgtMapBigTotalVo> shopSalesRank(List<Long> shopIdList);
    /**
     * @description  获取商户服务统计
     * @author  jqs
     * @date    2023/8/24 18:28
     * @param shopId
     * @return  MerHomeShopTotalVo
     */
    MerHomeShopTotalVo getShopServiceTotal(Long shopId);
    /**
     * @description  获取区域统计
     * @author  jqs
     * @date    2023/8/25 11:49
     * @param shopIdList
     * @return  AgencyTotalVo
     */
    AgencyTotalVo getAgencyTotalVo(List<Long> shopIdList);
    /**
     * 订单编号获取订单
     * @param orderNo
     * @return
     */
    Order getByOrderNo(String orderNo);
    /**
     *
     * @param outTradeNo
     * @return
     */
    Order getByOutTradeNo(String outTradeNo);
    /**
     * @description  商户端会员订单统计
     * @author  jqs
     * @date    2023/8/29 17:39
     * @param merBaseDto
     * @return  MerMemberSimpleTotalVo
     */
    MerMemberSimpleTotalVo getMerMemberSimpleTotalVo(MerBaseDto merBaseDto);
    ProfitSharingResult queryBill(String orderId) throws WxPayException;
    /**
     * 根据活动id获取订单商品id列表
     * @param activityId
     * @return
     */
    List<String> getActivityOrderGoods(String activityId);
}