From 5c2efa49ab86d6fa9dbba3fb658d05d594fd513d Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期三, 11 九月 2024 15:17:58 +0800
Subject: [PATCH] add:会员成长值统计和明细功能
---
src/main/java/com/mzl/flower/web/member/MemberController.java | 15 ++++++-
src/main/java/com/mzl/flower/dto/response/member/UserGrowthRecordVO.java | 28 ++++++++++++++
src/main/java/com/mzl/flower/dto/request/menber/MemberRecordQueryDTO.java | 2 +
src/main/java/com/mzl/flower/dto/response/member/MemberGrowthRecordVO.java | 4 ++
src/main/java/com/mzl/flower/mapper/member/MemberGrowthRecordMapper.java | 4 ++
src/main/java/com/mzl/flower/dto/request/menber/UserMemberRecordQueryDTO.java | 13 ++++++
src/main/java/com/mzl/flower/service/menber/impl/MemberGrowthRecordServiceImpl.java | 13 ++++--
src/main/java/com/mzl/flower/service/menber/MemberGrowthRecordService.java | 5 ++
src/main/resources/mapper/member/MemberGrowthRecordMapper.xml | 23 +++++++++++
9 files changed, 101 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/mzl/flower/dto/request/menber/MemberRecordQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/menber/MemberRecordQueryDTO.java
index 29306ce..64cd4b9 100644
--- a/src/main/java/com/mzl/flower/dto/request/menber/MemberRecordQueryDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/menber/MemberRecordQueryDTO.java
@@ -15,4 +15,6 @@
private Date startRecordDate;
@ApiModelProperty(value = "记录结束日期")
private Date endRecordDate;
+ @ApiModelProperty("用户ID")
+ private String userId;
}
diff --git a/src/main/java/com/mzl/flower/dto/request/menber/UserMemberRecordQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/menber/UserMemberRecordQueryDTO.java
new file mode 100644
index 0000000..47fd2d8
--- /dev/null
+++ b/src/main/java/com/mzl/flower/dto/request/menber/UserMemberRecordQueryDTO.java
@@ -0,0 +1,13 @@
+package com.mzl.flower.dto.request.menber;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+public class UserMemberRecordQueryDTO {
+ @ApiModelProperty(value = "用户名称")
+ private String nickName;
+ @ApiModelProperty(value = "联系方式")
+ private String tel;
+}
diff --git a/src/main/java/com/mzl/flower/dto/response/member/MemberGrowthRecordVO.java b/src/main/java/com/mzl/flower/dto/response/member/MemberGrowthRecordVO.java
index 1442ea7..50eddd9 100644
--- a/src/main/java/com/mzl/flower/dto/response/member/MemberGrowthRecordVO.java
+++ b/src/main/java/com/mzl/flower/dto/response/member/MemberGrowthRecordVO.java
@@ -1,9 +1,11 @@
package com.mzl.flower.dto.response.member;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.mzl.flower.base.AbstractTransDTO;
import com.mzl.flower.base.annotation.DictTrans;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigInteger;
import java.time.LocalDateTime;
@@ -14,6 +16,8 @@
private Long id;
@ApiModelProperty("记录日期")
+ @JsonFormat(pattern="yyyy-MM-dd" ,timezone="GMT+8")
+ @DateTimeFormat
private Date recordDate;
@ApiModelProperty("成长值")
diff --git a/src/main/java/com/mzl/flower/dto/response/member/UserGrowthRecordVO.java b/src/main/java/com/mzl/flower/dto/response/member/UserGrowthRecordVO.java
new file mode 100644
index 0000000..db73dd5
--- /dev/null
+++ b/src/main/java/com/mzl/flower/dto/response/member/UserGrowthRecordVO.java
@@ -0,0 +1,28 @@
+package com.mzl.flower.dto.response.member;
+
+import com.mzl.flower.base.AbstractTransDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class UserGrowthRecordVO extends AbstractTransDTO {
+ private Long id;
+
+ @ApiModelProperty("用户名称")
+ private String nickName;
+
+ @ApiModelProperty("联系方式")
+ private String tel;
+
+ @ApiModelProperty("当前成长值")
+ private int sumGrowthValue;
+
+ @ApiModelProperty("当前会员等级ID")
+ private Long levelId;
+
+ @ApiModelProperty("当前会员等级名称")
+ private String levelName;
+
+ @ApiModelProperty("用户ID")
+ private String userId;
+}
diff --git a/src/main/java/com/mzl/flower/mapper/member/MemberGrowthRecordMapper.java b/src/main/java/com/mzl/flower/mapper/member/MemberGrowthRecordMapper.java
index d8dc079..2d04c6d 100644
--- a/src/main/java/com/mzl/flower/mapper/member/MemberGrowthRecordMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/member/MemberGrowthRecordMapper.java
@@ -3,7 +3,9 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mzl.flower.dto.request.menber.MemberRecordQueryDTO;
+import com.mzl.flower.dto.request.menber.UserMemberRecordQueryDTO;
import com.mzl.flower.dto.response.member.MemberGrowthRecordVO;
+import com.mzl.flower.dto.response.member.UserGrowthRecordVO;
import com.mzl.flower.entity.menber.MemberGrowthRecord;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@@ -28,4 +30,6 @@
List<MemberGrowthRecordVO> queryPage(@Param("dto") MemberRecordQueryDTO dto, Page page);
+ List<UserGrowthRecordVO> queryUserPage(@Param("dto") UserMemberRecordQueryDTO dto, Page page);
+
}
diff --git a/src/main/java/com/mzl/flower/service/menber/MemberGrowthRecordService.java b/src/main/java/com/mzl/flower/service/menber/MemberGrowthRecordService.java
index 39e41a3..f033d19 100644
--- a/src/main/java/com/mzl/flower/service/menber/MemberGrowthRecordService.java
+++ b/src/main/java/com/mzl/flower/service/menber/MemberGrowthRecordService.java
@@ -6,7 +6,9 @@
import com.mzl.flower.dto.request.menber.MemberGrowthRecordDTO;
import com.mzl.flower.dto.request.menber.MemberRecordQueryDTO;
import com.mzl.flower.dto.request.menber.UserGrowthRecordDTO;
+import com.mzl.flower.dto.request.menber.UserMemberRecordQueryDTO;
import com.mzl.flower.dto.response.member.MemberGrowthRecordVO;
+import com.mzl.flower.dto.response.member.UserGrowthRecordVO;
import com.mzl.flower.entity.menber.Member;
import com.mzl.flower.entity.menber.MemberGrowthRecord;
import com.mzl.flower.entity.payment.Order;
@@ -24,4 +26,7 @@
Member getMemberByUserId(String userId);
void growthValueDeduct(Order order);
+
+ Page<UserGrowthRecordVO> queryUserPage(UserMemberRecordQueryDTO userMemberRecordQueryDTO, Page page);
+
}
diff --git a/src/main/java/com/mzl/flower/service/menber/impl/MemberGrowthRecordServiceImpl.java b/src/main/java/com/mzl/flower/service/menber/impl/MemberGrowthRecordServiceImpl.java
index 2866b32..935da0b 100644
--- a/src/main/java/com/mzl/flower/service/menber/impl/MemberGrowthRecordServiceImpl.java
+++ b/src/main/java/com/mzl/flower/service/menber/impl/MemberGrowthRecordServiceImpl.java
@@ -5,12 +5,10 @@
import com.mzl.flower.config.exception.ValidationException;
import com.mzl.flower.config.security.SecurityUtils;
import com.mzl.flower.constant.Constants;
-import com.mzl.flower.dto.request.menber.MemberGrowthRecordDTO;
-import com.mzl.flower.dto.request.menber.MemberRecordQueryDTO;
-import com.mzl.flower.dto.request.menber.TargetMemberDTO;
-import com.mzl.flower.dto.request.menber.UserGrowthRecordDTO;
+import com.mzl.flower.dto.request.menber.*;
import com.mzl.flower.dto.response.customer.CustomerDTO;
import com.mzl.flower.dto.response.member.MemberGrowthRecordVO;
+import com.mzl.flower.dto.response.member.UserGrowthRecordVO;
import com.mzl.flower.entity.customer.Customer;
import com.mzl.flower.entity.menber.Member;
import com.mzl.flower.entity.menber.MemberGrowthRecord;
@@ -205,4 +203,11 @@
saveMemberGrowthRecord(memberGrowthRecordDTO);
}
}
+
+ @Override
+ public Page<UserGrowthRecordVO> queryUserPage(UserMemberRecordQueryDTO userMemberRecordQueryDTO, Page page) {
+ List<UserGrowthRecordVO> list = memberGrowthRecordMapper.queryUserPage(userMemberRecordQueryDTO, page);
+ page.setRecords(list);
+ return page;
+ }
}
diff --git a/src/main/java/com/mzl/flower/web/member/MemberController.java b/src/main/java/com/mzl/flower/web/member/MemberController.java
index 89997cc..7fcea01 100644
--- a/src/main/java/com/mzl/flower/web/member/MemberController.java
+++ b/src/main/java/com/mzl/flower/web/member/MemberController.java
@@ -8,13 +8,12 @@
import com.mzl.flower.dto.request.menber.*;
import com.mzl.flower.dto.response.member.MemberGrowthRecordVO;
import com.mzl.flower.dto.response.member.MemberVO;
-import com.mzl.flower.entity.menber.Member;
+import com.mzl.flower.dto.response.member.UserGrowthRecordVO;
import com.mzl.flower.service.menber.MemberGrowthRecordService;
import com.mzl.flower.service.menber.MemberService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
-import org.springframework.beans.BeanUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -72,6 +71,12 @@
return returnData(R.SUCCESS.getCode(), memberGrowthRecordService.queryPage(dto, page));
}
+ @GetMapping("/getmemberGrowthRecord/list")
+ @ApiOperation(value = "会员记录列表", httpMethod = "GET")
+ public ResponseEntity<ReturnDataDTO<Page<MemberGrowthRecordVO>>> getmemberGrowthRecord(Page page, MemberRecordQueryDTO dto) {
+ return returnData(R.SUCCESS.getCode(), memberGrowthRecordService.queryPage(dto, page));
+ }
+
@GetMapping(value = "/memberGrowthRecord/delete")
@ApiOperation(value = "删除会员记录 ", httpMethod = "GET", notes = "ID")
public ResponseEntity deleteGrowthRecord(@NotNull(message = "id不能为空") Long id) {
@@ -106,5 +111,11 @@
UserGrowthRecordDTO userGrowthRecordDTO = memberGrowthRecordService.getInfoByUserId(SecurityUtils.getUserId());
return returnData(R.SUCCESS.getCode(), userGrowthRecordDTO);
}
+
+ @GetMapping("/userGrowthRecord/list")
+ @ApiOperation(value = "会员用户记录列表", httpMethod = "GET")
+ public ResponseEntity<ReturnDataDTO<Page<UserGrowthRecordVO>>> getUserMemberRecordList(Page page, UserMemberRecordQueryDTO dto) {
+ return returnData(R.SUCCESS.getCode(), memberGrowthRecordService.queryUserPage(dto, page));
+ }
}
diff --git a/src/main/resources/mapper/member/MemberGrowthRecordMapper.xml b/src/main/resources/mapper/member/MemberGrowthRecordMapper.xml
index 7073205..a9f2622 100644
--- a/src/main/resources/mapper/member/MemberGrowthRecordMapper.xml
+++ b/src/main/resources/mapper/member/MemberGrowthRecordMapper.xml
@@ -20,6 +20,29 @@
AND t.create_time <= #{dto.endRecordDate}
]]>
</if>
+ <if test="dto.userId != null and dto.userId != ''">
+ and t.user_id = #{dto.userId}
+ </if>
order by t.update_time desc
</select>
+
+ <select id="queryUserPage" resultType="com.mzl.flower.dto.response.member.UserGrowthRecordVO">
+ SELECT c.name as nickName, c.level_id as levelId, t.tel, t.id as userId, m.name AS levelName, IFNULL(SUM(mg.growth), 0) AS sumGrowthValue
+ FROM t_customer_info c
+ LEFT JOIN t_user t ON c.user_id = t.id
+ LEFT JOIN t_member m ON c.level_id = m.id
+ LEFT JOIN (SELECT user_id, SUM(growth) AS growth
+ FROM t_member_growth_record
+ WHERE deleted = 0
+ GROUP BY user_id) mg ON c.user_id = mg.user_id
+ WHERE c.deleted = 0
+ <if test="dto.nickName!= null and dto.nickName != ''">
+ AND c.name LIKE CONCAT('%',#{dto.nickName},'%')
+ </if>
+ <if test="dto.tel!= null and dto.tel != ''">
+ and t.tel like CONCAT('%',#{dto.tel},'%')
+ </if>
+ GROUP BY c.id
+ order by c.update_time desc
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3