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