From acfa230addbde3212790a3e6ccd6741eaac00b46 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 03 七月 2023 19:34:58 +0800 Subject: [PATCH] 商户端会员统计 --- ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 28 +++++++++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java | 10 +++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerTotalController.java | 43 ++++++++++++++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 15 +++++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java | 11 +++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 19 ++++++ 6 files changed, 125 insertions(+), 1 deletions(-) diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java index 46ae84e..e973ada 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java @@ -1388,6 +1388,11 @@ */ @Override public MerMemberFixedTotalVo getMerMemberFixedTotal(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } MerMemberFixedTotalVo memberFixedTotalVo = new MerMemberFixedTotalVo(); Date nowDay = DateUtils.getNowDate(); if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ @@ -1457,6 +1462,11 @@ */ @Override public MerMemberSourceTotalVo getMerMemberSourceTotal(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } MerMemberSourceTotalVo memberSourceTotalVo = new MerMemberSourceTotalVo(); //获取来源渠道排名 List<MgtMapIntTotalVo> customerSourceList = memberMapper.getMerMemberCustomerSourceRank(merTotalDto); @@ -1477,6 +1487,11 @@ */ @Override public MerMemberRecommendTotalVo getMerMemberRecommendTotal(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } MerMemberRecommendTotalVo memberRecommendTotalVo = new MerMemberRecommendTotalVo(); //获取会员推荐排名 List<MgtMapIntTotalVo> recommendList = memberMapper.getMerMemberRecommendRank(merTotalDto); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerTotalController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerTotalController.java new file mode 100644 index 0000000..913d2e4 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerTotalController.java @@ -0,0 +1,43 @@ +package com.ruoyi.order.controller.business; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.order.domain.vo.MerOrderTotalVo; +import com.ruoyi.order.service.order.OrderService; +import com.ruoyi.system.api.domain.dto.MerTotalDto; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @ClassName MerTotalController + * @Description TODO + * @Author jqs + * @Date 2023/7/3 19:25 + * @Version 1.0 + */ +@Api(value = "商户端订单统计相关接口", tags = "商户端订单统计相关接口", description = "商户端订单统计相关接口") +@RestController +@RequestMapping("/mer/total") +public class MerTotalController { + + @Resource + private OrderService orderService; + + @RequestMapping(value = "/getMerOrderTotal", method = RequestMethod.POST) + @ApiOperation(value = "商户获取订单统计") + public R<MerOrderTotalVo> getMerOrderTotal(@RequestBody MerTotalDto merTotalDto) { + Long userId = SecurityUtils.getUserId(); + merTotalDto.setUserId(userId); + MerOrderTotalVo orderTotalVo = orderService.getMerOrderTotal(merTotalDto); + return R.ok(orderTotalVo); + } + + + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java index fcad0f5..f50b1d4 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java @@ -438,4 +438,14 @@ * @return BigDecimal */ BigDecimal getMemberUnpaidOrder(@Param("param")MerBaseDto merBaseDto); + + + /** + * @description getTotalOrderTotalOrderFrom + * @param mgtBaseShopDto + * @return MgtTotalOrderTotalVo + * @author jqs34 + * @date 2023/6/19 22:24 + */ + MerOrderTotalVo getMerOrderTotalOrderFrom(@Param("param") MgtBaseShopDto mgtBaseShopDto); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index 3c5df9f..4708de6 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -2038,4 +2038,23 @@ BigDecimal unpaidMoney = orderMapper.getMemberUnpaidOrder(merBaseDto); return unpaidMoney; } + + /** + * @description 商户获取订单统计 + * @author jqs + * @date 2023/7/3 19:29 + * @param merTotalDto + * @return MerOrderTotalVo + */ + @Override + public MerOrderTotalVo getMerOrderTotal(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MerOrderTotalVo orderTotalVo = new MerOrderTotalVo(); + + return orderTotalVo; + } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java index 46c747c..f60c525 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java @@ -292,8 +292,17 @@ * @description 获取用户未支付金额 * @author jqs * @date 2023/6/29 18:00 - * @param userId + * @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); } diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml index c313a1d..60e7585 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml @@ -1230,4 +1230,32 @@ WHERE del_flag = 0 AND user_id = #{param.userId} AND shop_id = #{param.shopId} AND order_status IN (1,2) AND close_flag = 0 </select> + + <select id="getMerOrderTotalOrderFrom" resultType="com.ruoyi.order.domain.vo.MerOrderTotalVo"> + SELECT + COUNT(order_id) orderTotal, + SUM(CASE WHEN order_from = 1 THEN 1 ELSE 0 END) onlineTotal, + SUM(CASE WHEN order_from = 3 THEN 1 ELSE 0 END) offlineTotal, + SUM(CASE WHEN order_from = 2 THEN 1 ELSE 0 END) activityTotal, + IFNULL(SUM(order_money),0) orderMoney, + SUM(CASE WHEN order_from = 1 THEN order_money ELSE 0 END) onlineMoney, + SUM(CASE WHEN order_from = 3 THEN order_money ELSE 0 END) offlineMoney, + SUM(CASE WHEN order_from = 2 THEN order_money ELSE 0 END) activityMoney + FROM t_order WHERE del_flag = 0 + <if test="param.shopId != null and param.shopId != ''"> + AND shop_id = #{param.shopId} + </if> + <if test="param.shopIdList != null and param.shopIdList.size() > 0"> + AND shop_id IN + <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND create_time >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND create_time <= #{param.endDate} + </if> + </select> </mapper> -- Gitblit v1.7.1