jiangqs
2023-07-03 acfa230addbde3212790a3e6ccd6741eaac00b46
商户端会员统计
5个文件已修改
1个文件已添加
126 ■■■■■ 已修改文件
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerTotalController.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerTotalController.java
New file
@@ -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);
    }
}
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);
}
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;
    }
}
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);
}
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 &gt;= #{param.startDate}
        </if>
        <if test="param.endDate!=null and param.endDate!=''">
            AND create_time &lt;= #{param.endDate}
        </if>
    </select>
</mapper>