From 1e7e5ffd799f6298dab8ad6cb30f655e642eefe9 Mon Sep 17 00:00:00 2001 From: czc Date: Mon, 24 Jul 2023 11:41:51 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=B8=AA=E4=BA=BA=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/oms/mapper/AftersaleMapper.java | 2 ++ .../cyl/manager/oms/mapper/OrderMapper.java | 3 +++ .../ums/controller/MemberController.java | 7 +++++ .../ums/pojo/vo/MemberDataStatisticsVO.java | 20 ++++++++++++++ .../manager/ums/service/MemberService.java | 26 +++++++++++++++++++ .../resources/mapper/oms/AftersaleMapper.xml | 6 +++++ .../main/resources/mapper/oms/OrderMapper.xml | 7 +++++ 7 files changed, 71 insertions(+) create mode 100644 ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberDataStatisticsVO.java diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleMapper.java index cd93e1b..8fd272a 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleMapper.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleMapper.java @@ -24,4 +24,6 @@ public interface AftersaleMapper extends BaseMapper { List selectManagerRefundOrder(ManagerAftersaleOrderRequest managerAftersaleOrderPageRequest); + int countByMemberId(Long memberId); + } diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderMapper.java index 57ecfbb..d8cbd6e 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderMapper.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderMapper.java @@ -7,6 +7,7 @@ import com.cyl.h5.pojo.vo.H5OrderVO; import com.cyl.manager.oms.domain.Order; import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest; import com.cyl.manager.oms.pojo.vo.ManagerOrderVO; +import com.cyl.manager.ums.pojo.vo.MemberDataStatisticsVO; import org.apache.ibatis.annotations.Param; /** @@ -33,5 +34,7 @@ public interface OrderMapper extends BaseMapper { Integer cancelBatch(@Param("list") List orderList); + MemberDataStatisticsVO statOrderCountAndAmount(Long memberId); + } diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberController.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberController.java index f3b20a7..ca3c0c3 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberController.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberController.java @@ -3,6 +3,7 @@ package com.cyl.manager.ums.controller; import java.util.List; import com.cyl.manager.ums.pojo.dto.ChangeMemberStatusDTO; +import com.cyl.manager.ums.pojo.vo.MemberDataStatisticsVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.data.domain.PageImpl; @@ -97,4 +98,10 @@ public class MemberController extends BaseController { public ResponseEntity getPhoneDecrypted(@PathVariable String phoneEncrypted){ return ResponseEntity.ok(service.getPhoneDecrypted(phoneEncrypted)); } + + @ApiOperation("查看会员统计数据") + @GetMapping("/view/statistics/{memberId}") + public ResponseEntity viewStatistics(@PathVariable Long memberId){ + return ResponseEntity.ok(service.viewStatistics(memberId)); + } } diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberDataStatisticsVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberDataStatisticsVO.java new file mode 100644 index 0000000..29664dd --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberDataStatisticsVO.java @@ -0,0 +1,20 @@ +package com.cyl.manager.ums.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel("会员下单数据统计对象") +public class MemberDataStatisticsVO { + @ApiModelProperty("购物车数") + private Integer cartCount; + @ApiModelProperty("订单数") + private Integer orderCount; + @ApiModelProperty("下单金额") + private BigDecimal orderAmount; + @ApiModelProperty("售后数") + private Integer aftersaleCount; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberService.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberService.java index 60e36e5..134b7e0 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberService.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberService.java @@ -3,9 +3,16 @@ package com.cyl.manager.ums.service; import java.time.LocalDateTime; import java.util.List; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.oms.mapper.AftersaleMapper; +import com.cyl.manager.oms.mapper.OrderMapper; +import com.cyl.manager.ums.domain.MemberCart; +import com.cyl.manager.ums.mapper.MemberCartMapper; import com.cyl.manager.ums.pojo.dto.ChangeMemberStatusDTO; +import com.cyl.manager.ums.pojo.vo.MemberDataStatisticsVO; import com.github.pagehelper.PageHelper; import com.ruoyi.common.utils.AesCryptoUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -30,6 +37,15 @@ public class MemberService { @Value("${aes.key}") private String aesKey; + @Autowired + private MemberCartMapper memberCartMapper; + + @Autowired + private OrderMapper orderMapper; + + @Autowired + private AftersaleMapper aftersaleMapper; + /** * 查询会员信息 * @@ -111,4 +127,14 @@ public class MemberService { public String getPhoneDecrypted(String phoneEncrypted) { return AesCryptoUtils.decrypt(aesKey, phoneEncrypted); } + + public MemberDataStatisticsVO viewStatistics(Long memberId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MemberCart::getMemberId, memberId); + int cartCount = memberCartMapper.selectCount(wrapper); + MemberDataStatisticsVO vo = orderMapper.statOrderCountAndAmount(memberId); + vo.setCartCount(cartCount); + vo.setAftersaleCount(aftersaleMapper.countByMemberId(memberId)); + return vo; + } } diff --git a/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml index 090e0e8..5fac3e9 100644 --- a/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml +++ b/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml @@ -89,5 +89,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by a.create_time desc + diff --git a/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml index 507c804..bf2392b 100644 --- a/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml +++ b/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml @@ -225,5 +225,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from oms_order where member_id=#{memberId} and delete_status=0 +