diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/PointAccountUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/PointAccountUserQueryController.java index c9dd289..7861a3a 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/PointAccountUserQueryController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/PointAccountUserQueryController.java @@ -1,17 +1,23 @@ package com.qniao.dam.api.query.pointaccount.user; +import com.qniao.dam.api.query.pointaccount.user.request.PagePointAccountRecordQueryParams; +import com.qniao.dam.api.query.pointaccount.user.response.PagePointAccountRecordVo; import com.qniao.dam.api.query.pointaccount.user.response.PointAccountVo; import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; import com.qniao.dam.query.pointaccount.PointAccountQueryService; +import com.qniao.domain.QnPage; +import com.qniao.framework.utils.PageUtil; import com.qniao.framework.utils.TypeConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.Objects; @Api(tags = "积分账号") @RestController @@ -28,4 +34,14 @@ public class PointAccountUserQueryController { return TypeConvertUtils.convert(pointAccount, PointAccountVo.class); } + @GetMapping("page/point-account-record") + @ApiOperation("用户获取积分账号记录分页") + public QnPage userPagePointAccountRecord(PageUtil pageUtil, + @Validated PagePointAccountRecordQueryParams queryParams, + @RequestParam("userId") Long userId) { + if (Objects.isNull(queryParams.getQueryUserId())) { + queryParams.setQueryUserId(userId); + } + return PageUtil.convert(pointAccountQueryService.pagePointAccountRecord(queryParams, pageUtil), PagePointAccountRecordVo.class); + } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/request/PagePointAccountRecordQueryParams.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/request/PagePointAccountRecordQueryParams.java new file mode 100644 index 0000000..14abb76 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/request/PagePointAccountRecordQueryParams.java @@ -0,0 +1,12 @@ +package com.qniao.dam.api.query.pointaccount.user.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PagePointAccountRecordQueryParams { + + @ApiModelProperty("制定查询的用户id") + private Long queryUserId; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/PagePointAccountRecordVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/PagePointAccountRecordVo.java new file mode 100644 index 0000000..25929ed --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/PagePointAccountRecordVo.java @@ -0,0 +1,31 @@ +package com.qniao.dam.api.query.pointaccount.user.response; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class PagePointAccountRecordVo { + + @ApiModelProperty("积分类型") + private PointRewardConfigTypeEnum pointType; + + @ApiModelProperty("内容") + private String content; + + @ApiModelProperty("积分") + private Integer points; + + @ApiModelProperty("是否收入") + private Boolean isIncome; + + @ApiModelProperty("当前积分") + private Integer currentPoints; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/pointaccount/PointAccountDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/pointaccount/PointAccountDao.java index 63161e4..20d0667 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/pointaccount/PointAccountDao.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/pointaccount/PointAccountDao.java @@ -1,7 +1,12 @@ package com.qniao.dam.infrastructure.persistent.dao.pointaccount; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.qniao.dam.api.query.pointaccount.user.request.PagePointAccountRecordQueryParams; +import com.qniao.dam.api.query.pointaccount.user.response.PagePointAccountRecordVo; import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; +import org.apache.ibatis.annotations.Param; /** * 积分账号 @@ -9,4 +14,6 @@ import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; * @date 2024/12/23 */ public interface PointAccountDao extends BaseMapper { + IPage pagePointAccountRecord(Page pageWithoutOrders, + @Param("queryParams") PagePointAccountRecordQueryParams queryParams); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/PointAccountQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/PointAccountQueryService.java index 77d3f86..0f547b7 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/PointAccountQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/PointAccountQueryService.java @@ -1,11 +1,17 @@ package com.qniao.dam.query.pointaccount; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.qniao.dam.api.query.pointaccount.user.request.PagePointAccountRecordQueryParams; +import com.qniao.dam.api.query.pointaccount.user.response.PagePointAccountRecordVo; import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; +import com.qniao.framework.utils.PageUtil; public interface PointAccountQueryService { PointAccount queryByUserId(Long userId); PointAccount queryByType(Long ownId, IdentityTypeEnum identityType); + + IPage pagePointAccountRecord(PagePointAccountRecordQueryParams queryParams, PageUtil pageUtil); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/impl/PointAccountQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/impl/PointAccountQueryServiceImpl.java index 79f2344..a3a54dc 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/impl/PointAccountQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/impl/PointAccountQueryServiceImpl.java @@ -1,10 +1,14 @@ package com.qniao.dam.query.pointaccount.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.qniao.dam.api.query.pointaccount.user.request.PagePointAccountRecordQueryParams; +import com.qniao.dam.api.query.pointaccount.user.response.PagePointAccountRecordVo; import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; import com.qniao.dam.infrastructure.persistent.dao.pointaccount.PointAccountDao; import com.qniao.dam.query.pointaccount.PointAccountQueryService; +import com.qniao.framework.utils.PageUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -49,4 +53,9 @@ public class PointAccountQueryServiceImpl implements PointAccountQueryService { return null; } + @Override + public IPage pagePointAccountRecord(PagePointAccountRecordQueryParams queryParams, PageUtil pageUtil) { + return pointAccountDao.pagePointAccountRecord(pageUtil.toPageWithoutOrders(), queryParams); + } + } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/resources/mapper/pointaccount/PointAccountMapper.xml b/dating-agency-mall-server/src/main/resources/mapper/pointaccount/PointAccountMapper.xml new file mode 100644 index 0000000..cab74cb --- /dev/null +++ b/dating-agency-mall-server/src/main/resources/mapper/pointaccount/PointAccountMapper.xml @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file