From 6c86f1674db626c160c164d35e047532be72abbc Mon Sep 17 00:00:00 2001 From: Derran Date: Tue, 24 Dec 2024 11:21:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pointaccount/entity/PointAccount.java | 45 ++++++++++++++++ .../valueobj/PointAccountRecord.java | 47 +++++++++++++++++ .../user/PointAccountUserQueryController.java | 31 +++++++++++ .../user/response/PointAccountVo.java | 24 +++++++++ .../PointRewardConfigUserQueryController.java | 18 +++++-- ...ointRewardConfigByOperatorQueryParams.java | 7 --- .../UserPagePointRewardConfigQueryParams.java | 10 ++++ ....java => UserPagePointRewardConfigVo.java} | 2 +- .../PointAccountRecordApplicationService.java | 26 ++++++++++ .../PointAccountApplicationService.java | 26 ++++++++++ .../pointaccount/PointAccountAggregate.java | 31 +++++++++++ .../repository/PointAccountRepository.java | 12 +++++ .../dao/par/PointAccountRecordDao.java | 12 +++++ .../dao/pointaccount/PointAccountDao.java | 12 +++++ .../dao/prc/PointRewardConfigDao.java | 8 +-- .../impl/PointAccountRepositoryImpl.java | 51 +++++++++++++++++++ .../par/PointAccountRecordQueryService.java | 5 ++ .../PointAccountRecordQueryServiceImpl.java | 9 ++++ .../PointAccountQueryService.java | 8 +++ .../impl/PointAccountQueryServiceImpl.java | 30 +++++++++++ .../prc/PointRewardConfigQueryService.java | 6 +-- .../PointRewardConfigQueryServiceImpl.java | 10 ++-- .../mapper/prc/PointRewardConfigMapper.xml | 26 ++++++---- 23 files changed, 420 insertions(+), 36 deletions(-) create mode 100644 dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/entity/PointAccount.java create mode 100644 dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/valueobj/PointAccountRecord.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/PointAccountUserQueryController.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/PointAccountVo.java delete mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/request/UserPagePointRewardConfigByOperatorQueryParams.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/request/UserPagePointRewardConfigQueryParams.java rename dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/response/{UserPagePointRewardConfigByOperatorVo.java => UserPagePointRewardConfigVo.java} (94%) create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/par/PointAccountRecordApplicationService.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/pointaccount/PointAccountApplicationService.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/PointAccountAggregate.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/repository/PointAccountRepository.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/par/PointAccountRecordDao.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/pointaccount/PointAccountDao.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/PointAccountRepositoryImpl.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/query/par/PointAccountRecordQueryService.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/query/par/impl/PointAccountRecordQueryServiceImpl.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/PointAccountQueryService.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/impl/PointAccountQueryServiceImpl.java diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/entity/PointAccount.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/entity/PointAccount.java new file mode 100644 index 0000000..723ef9d --- /dev/null +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/entity/PointAccount.java @@ -0,0 +1,45 @@ +package com.qniao.dam.domain.aggregate.pointaccount.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.qniao.dam.domain.aggregate.pointaccount.valueobj.PointAccountRecord; +import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.qniao.domain.Entity; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 积分账号 + * + * @date 2024/12/23 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("da_point_account") +public class PointAccount extends Entity { + + @ApiModelProperty("用户唯一标识") + private Long userId; + + @ApiModelProperty("组织唯一标识") + private Long orgId; + + @ApiModelProperty("身份类型(个人、组织)") + private IdentityTypeEnum identityType; + + @ApiModelProperty("积分") + private Integer points; + + private transient List recordList; + + public static PointAccount initUser(Long userId) { + PointAccount pointAccount = new PointAccount(); + pointAccount.setUserId(userId); + pointAccount.setIdentityType(IdentityTypeEnum.INDIVIDUAL); + pointAccount.setPoints(0); + return pointAccount; + } +} diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/valueobj/PointAccountRecord.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/valueobj/PointAccountRecord.java new file mode 100644 index 0000000..f5841f4 --- /dev/null +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/valueobj/PointAccountRecord.java @@ -0,0 +1,47 @@ +package com.qniao.dam.domain.aggregate.pointaccount.valueobj; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.qniao.domain.ValueObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 积分账户记录 + * + * @date 2024/12/23 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("da_point_account_record") +public class PointAccountRecord extends ValueObject { + + @ApiModelProperty("积分账号标识") + private Long pointAccountId; + + @ApiModelProperty("积分类型") + private Integer pointType; + + @ApiModelProperty("内容") + private String content; + + @ApiModelProperty("积分") + private Integer points; + + @ApiModelProperty("是否收入") + private Boolean isIncome; + + @ApiModelProperty("原始积分") + private Integer originalPoints; + + @ApiModelProperty("当前积分") + private Integer currentPoints; + + @ApiModelProperty("关联ID") + private Long associateId; + + @ApiModelProperty("是否已读") + private Boolean isRead; + + +} 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 new file mode 100644 index 0000000..c9dd289 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/PointAccountUserQueryController.java @@ -0,0 +1,31 @@ +package com.qniao.dam.api.query.pointaccount.user; + +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.framework.utils.TypeConvertUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +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; + +@Api(tags = "积分账号") +@RestController +@RequestMapping("user") +public class PointAccountUserQueryController { + + @Resource + private PointAccountQueryService pointAccountQueryService; + + @GetMapping("get/point-account") + @ApiOperation("用户获取积分账号") + public PointAccountVo userGetPointAccount(@RequestParam("userId") Long userId) { + PointAccount pointAccount = pointAccountQueryService.queryByUserId(userId); + return TypeConvertUtils.convert(pointAccount, PointAccountVo.class); + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/PointAccountVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/PointAccountVo.java new file mode 100644 index 0000000..756c5d6 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/PointAccountVo.java @@ -0,0 +1,24 @@ +package com.qniao.dam.api.query.pointaccount.user.response; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class PointAccountVo { + + private Long id; + + @ApiModelProperty("用户唯一标识") + private Long userId; + + @ApiModelProperty("组织唯一标识") + private Long orgId; + + @ApiModelProperty("身份类型(个人、组织)") + private Integer identityType; + + @ApiModelProperty("积分") + private Integer points; +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/PointRewardConfigUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/PointRewardConfigUserQueryController.java index 304944b..cbd7a5d 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/PointRewardConfigUserQueryController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/PointRewardConfigUserQueryController.java @@ -1,7 +1,7 @@ package com.qniao.dam.api.query.prc.user; -import com.qniao.dam.api.query.prc.user.request.UserPagePointRewardConfigByOperatorQueryParams; -import com.qniao.dam.api.query.prc.user.response.UserPagePointRewardConfigByOperatorVo; +import com.qniao.dam.api.query.prc.user.request.UserPagePointRewardConfigQueryParams; +import com.qniao.dam.api.query.prc.user.response.UserPagePointRewardConfigVo; import com.qniao.dam.query.prc.PointRewardConfigQueryService; import com.qniao.domain.QnPage; import com.qniao.framework.utils.PageUtil; @@ -21,8 +21,16 @@ public class PointRewardConfigUserQueryController { @GetMapping("page/point-reward-config/by/operator") @ApiOperation("运营获取积分奖励配置分页列表") - public QnPage userPagePointRewardConfigByOperator(PageUtil pageUtil, - UserPagePointRewardConfigByOperatorQueryParams queryParams) { - return PageUtil.convert(pointRewardConfigQueryService.pageByOperator(pageUtil, queryParams), UserPagePointRewardConfigByOperatorVo.class); + public QnPage userPagePointRewardConfigByOperator(PageUtil pageUtil, + UserPagePointRewardConfigQueryParams queryParams) { + return PageUtil.convert(pointRewardConfigQueryService.page(pageUtil, queryParams), UserPagePointRewardConfigVo.class); + } + + @GetMapping("page/point-reward-config/by/customer") + @ApiOperation("客户获取积分奖励配置分页列表") + public QnPage userPagePointRewardConfigByCustomer(PageUtil pageUtil, + UserPagePointRewardConfigQueryParams queryParams) { + queryParams.setEnable(true); + return PageUtil.convert(pointRewardConfigQueryService.page(pageUtil, queryParams), UserPagePointRewardConfigVo.class); } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/request/UserPagePointRewardConfigByOperatorQueryParams.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/request/UserPagePointRewardConfigByOperatorQueryParams.java deleted file mode 100644 index 1f9726c..0000000 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/request/UserPagePointRewardConfigByOperatorQueryParams.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.qniao.dam.api.query.prc.user.request; - -import lombok.Data; - -@Data -public class UserPagePointRewardConfigByOperatorQueryParams { -} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/request/UserPagePointRewardConfigQueryParams.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/request/UserPagePointRewardConfigQueryParams.java new file mode 100644 index 0000000..9b681c6 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/request/UserPagePointRewardConfigQueryParams.java @@ -0,0 +1,10 @@ +package com.qniao.dam.api.query.prc.user.request; + +import lombok.Data; + +@Data +public class UserPagePointRewardConfigQueryParams { + + private Boolean enable; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/response/UserPagePointRewardConfigByOperatorVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/response/UserPagePointRewardConfigVo.java similarity index 94% rename from dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/response/UserPagePointRewardConfigByOperatorVo.java rename to dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/response/UserPagePointRewardConfigVo.java index d277cc5..e748048 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/response/UserPagePointRewardConfigByOperatorVo.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/response/UserPagePointRewardConfigVo.java @@ -8,7 +8,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data -public class UserPagePointRewardConfigByOperatorVo { +public class UserPagePointRewardConfigVo { @ApiModelProperty("唯一标识") @JsonSerialize(using = ToStringSerializer.class) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/par/PointAccountRecordApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/par/PointAccountRecordApplicationService.java new file mode 100644 index 0000000..492ec9f --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/par/PointAccountRecordApplicationService.java @@ -0,0 +1,26 @@ +package com.qniao.dam.application.service.par; + +import com.qniao.dam.domain.aggregate.par.PointAccountRecordAggregate; +import com.qniao.dam.domain.aggregate.pointaccount.valueobj.PointAccountRecord; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class PointAccountRecordApplicationService { + + @Resource + private PointAccountRecordAggregate pointAccountRecordAggregate; + + public void create(PointAccountRecord pointAccountRecord) { + pointAccountRecordAggregate.create(pointAccountRecord); + } + + public void edit(PointAccountRecord pointAccountRecord) { + pointAccountRecordAggregate.edit(pointAccountRecord); + } + + public void delete(Long id) { + pointAccountRecordAggregate.delete(id); + } +} \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/pointaccount/PointAccountApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/pointaccount/PointAccountApplicationService.java new file mode 100644 index 0000000..bf1cffc --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/pointaccount/PointAccountApplicationService.java @@ -0,0 +1,26 @@ +package com.qniao.dam.application.service.pointaccount; + +import com.qniao.dam.domain.aggregate.pointaccount.PointAccountAggregate; +import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class PointAccountApplicationService { + + @Resource + private PointAccountAggregate pointAccountAggregate; + + public void create(PointAccount pointAccount) { + pointAccountAggregate.create(pointAccount); + } + + public void edit(PointAccount pointAccount) { + pointAccountAggregate.edit(pointAccount); + } + + public void delete(Long id) { + pointAccountAggregate.delete(id); + } +} \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/PointAccountAggregate.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/PointAccountAggregate.java new file mode 100644 index 0000000..48b6377 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/PointAccountAggregate.java @@ -0,0 +1,31 @@ +package com.qniao.dam.domain.aggregate.pointaccount; + +import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; +import com.qniao.dam.domain.aggregate.pointaccount.repository.PointAccountRepository; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 积分账号 + * + * @date 2024/12/23 + */ +@Service +public class PointAccountAggregate { + + @Resource + private PointAccountRepository repository; + + public void create(PointAccount entity) { + repository.save(entity); + } + + public void edit(PointAccount entity) { + repository.save(entity); + } + + public void delete(Long id) { + repository.delete(id); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/repository/PointAccountRepository.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/repository/PointAccountRepository.java new file mode 100644 index 0000000..00213cb --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/repository/PointAccountRepository.java @@ -0,0 +1,12 @@ +package com.qniao.dam.domain.aggregate.pointaccount.repository; + +import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; +import com.qniao.domain.Repository; + +/** + * 积分账号 + * + * @date 2024/12/23 + */ +public interface PointAccountRepository extends Repository { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/par/PointAccountRecordDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/par/PointAccountRecordDao.java new file mode 100644 index 0000000..a6510c1 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/par/PointAccountRecordDao.java @@ -0,0 +1,12 @@ +package com.qniao.dam.infrastructure.persistent.dao.par; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qniao.dam.domain.aggregate.pointaccount.valueobj.PointAccountRecord; + +/** + * 积分账户记录 + * + * @date 2024/12/23 + */ +public interface PointAccountRecordDao extends BaseMapper { +} 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 new file mode 100644 index 0000000..63161e4 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/pointaccount/PointAccountDao.java @@ -0,0 +1,12 @@ +package com.qniao.dam.infrastructure.persistent.dao.pointaccount; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; + +/** + * 积分账号 + * + * @date 2024/12/23 + */ +public interface PointAccountDao extends BaseMapper { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/prc/PointRewardConfigDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/prc/PointRewardConfigDao.java index bf3a916..0c2a82c 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/prc/PointRewardConfigDao.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/prc/PointRewardConfigDao.java @@ -3,8 +3,8 @@ package com.qniao.dam.infrastructure.persistent.dao.prc; 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.prc.user.request.UserPagePointRewardConfigByOperatorQueryParams; -import com.qniao.dam.api.query.prc.user.response.UserPagePointRewardConfigByOperatorVo; +import com.qniao.dam.api.query.prc.user.request.UserPagePointRewardConfigQueryParams; +import com.qniao.dam.api.query.prc.user.response.UserPagePointRewardConfigVo; import com.qniao.dam.domain.aggregate.prc.entity.PointRewardConfig; import org.apache.ibatis.annotations.Param; @@ -14,6 +14,6 @@ import org.apache.ibatis.annotations.Param; * @date 2024/12/23 */ public interface PointRewardConfigDao extends BaseMapper { - IPage pageByOperator(Page pageWithoutOrders, - @Param("queryParams") UserPagePointRewardConfigByOperatorQueryParams queryParams); + IPage page(Page pageWithoutOrders, + @Param("queryParams") UserPagePointRewardConfigQueryParams queryParams); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/PointAccountRepositoryImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/PointAccountRepositoryImpl.java new file mode 100644 index 0000000..e467044 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/PointAccountRepositoryImpl.java @@ -0,0 +1,51 @@ +package com.qniao.dam.infrastructure.persistent.repository.impl; + +import cn.hutool.core.collection.CollUtil; +import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; +import com.qniao.dam.domain.aggregate.pointaccount.repository.PointAccountRepository; +import com.qniao.dam.infrastructure.persistent.dao.par.PointAccountRecordDao; +import com.qniao.dam.infrastructure.persistent.dao.pointaccount.PointAccountDao; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +/** + * 积分账号 + * + * @date 2024/12/23 + */ +@Service +public class PointAccountRepositoryImpl implements PointAccountRepository { + + @Resource + private PointAccountDao dao; + @Resource + private PointAccountRecordDao pointAccountRecordDao; + + @Override + public PointAccount load(Long id) { + return dao.selectById(id); + } + + @Override + public Long save(PointAccount entity) { + if (Objects.isNull(entity) || Objects.isNull(dao.selectById(entity.getId()))) { + dao.insert(entity); + } else { + dao.updateById(entity); + } + if (CollUtil.isNotEmpty(entity.getRecordList())) { + entity.getRecordList().forEach(record -> { + record.setPointAccountId(entity.getId()); + pointAccountRecordDao.insert(record); + }); + } + return entity.getId(); + } + + @Override + public void delete(Long id) { + dao.deleteById(id); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/par/PointAccountRecordQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/par/PointAccountRecordQueryService.java new file mode 100644 index 0000000..5dd125a --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/par/PointAccountRecordQueryService.java @@ -0,0 +1,5 @@ +package com.qniao.dam.query.par; + +public interface PointAccountRecordQueryService { + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/par/impl/PointAccountRecordQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/par/impl/PointAccountRecordQueryServiceImpl.java new file mode 100644 index 0000000..0fae01b --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/par/impl/PointAccountRecordQueryServiceImpl.java @@ -0,0 +1,9 @@ +package com.qniao.dam.query.par.impl; + +import com.qniao.dam.query.par.PointAccountRecordQueryService; +import org.springframework.stereotype.Service; + +@Service +public class PointAccountRecordQueryServiceImpl implements PointAccountRecordQueryService { + +} \ No newline at end of file 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 new file mode 100644 index 0000000..df4fd04 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/PointAccountQueryService.java @@ -0,0 +1,8 @@ +package com.qniao.dam.query.pointaccount; + +import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; + +public interface PointAccountQueryService { + + PointAccount queryByUserId(Long userId); +} 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 new file mode 100644 index 0000000..e7f1986 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/pointaccount/impl/PointAccountQueryServiceImpl.java @@ -0,0 +1,30 @@ +package com.qniao.dam.query.pointaccount.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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 org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +@Service +public class PointAccountQueryServiceImpl implements PointAccountQueryService { + + @Resource + private PointAccountDao pointAccountDao; + + @Override + public PointAccount queryByUserId(Long userId) { + PointAccount pointAccount = pointAccountDao.selectOne(new LambdaQueryWrapper() + .eq(PointAccount::getIdentityType, IdentityTypeEnum.INDIVIDUAL) + .eq(PointAccount::getUserId, userId) + .last("limit 1")); + if (Objects.isNull(pointAccount)){ + pointAccount = PointAccount.initUser(userId); + } + return pointAccount; + } +} \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/PointRewardConfigQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/PointRewardConfigQueryService.java index 06dccf1..8c43dbb 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/PointRewardConfigQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/PointRewardConfigQueryService.java @@ -1,11 +1,11 @@ package com.qniao.dam.query.prc; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.qniao.dam.api.query.prc.user.request.UserPagePointRewardConfigByOperatorQueryParams; -import com.qniao.dam.api.query.prc.user.response.UserPagePointRewardConfigByOperatorVo; +import com.qniao.dam.api.query.prc.user.request.UserPagePointRewardConfigQueryParams; +import com.qniao.dam.api.query.prc.user.response.UserPagePointRewardConfigVo; import com.qniao.framework.utils.PageUtil; public interface PointRewardConfigQueryService { - IPage pageByOperator(PageUtil pageUtil, UserPagePointRewardConfigByOperatorQueryParams queryParams); + IPage page(PageUtil pageUtil, UserPagePointRewardConfigQueryParams queryParams); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/impl/PointRewardConfigQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/impl/PointRewardConfigQueryServiceImpl.java index b18b637..12d10e1 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/impl/PointRewardConfigQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/impl/PointRewardConfigQueryServiceImpl.java @@ -1,8 +1,8 @@ package com.qniao.dam.query.prc.impl; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.qniao.dam.api.query.prc.user.request.UserPagePointRewardConfigByOperatorQueryParams; -import com.qniao.dam.api.query.prc.user.response.UserPagePointRewardConfigByOperatorVo; +import com.qniao.dam.api.query.prc.user.request.UserPagePointRewardConfigQueryParams; +import com.qniao.dam.api.query.prc.user.response.UserPagePointRewardConfigVo; import com.qniao.dam.infrastructure.persistent.dao.prc.PointRewardConfigDao; import com.qniao.dam.query.prc.PointRewardConfigQueryService; import com.qniao.framework.utils.PageUtil; @@ -17,8 +17,8 @@ public class PointRewardConfigQueryServiceImpl implements PointRewardConfigQuery private PointRewardConfigDao pointRewardConfigDao; @Override - public IPage pageByOperator(PageUtil pageUtil, - UserPagePointRewardConfigByOperatorQueryParams queryParams) { - return pointRewardConfigDao.pageByOperator(pageUtil.toPageWithoutOrders(), queryParams); + public IPage page(PageUtil pageUtil, + UserPagePointRewardConfigQueryParams queryParams) { + return pointRewardConfigDao.page(pageUtil.toPageWithoutOrders(), queryParams); } } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/resources/mapper/prc/PointRewardConfigMapper.xml b/dating-agency-mall-server/src/main/resources/mapper/prc/PointRewardConfigMapper.xml index e1169ac..460245a 100644 --- a/dating-agency-mall-server/src/main/resources/mapper/prc/PointRewardConfigMapper.xml +++ b/dating-agency-mall-server/src/main/resources/mapper/prc/PointRewardConfigMapper.xml @@ -2,19 +2,23 @@ - SELECT - id, - create_time, - update_time, - type, - attribute, - num, - `enable`, - remark + id, + create_time, + update_time, + type, + attribute, + num, + `enable`, + remark FROM - da_point_reward_config + da_point_reward_config + where is_delete=0 + + AND enable = #{queryParams.enable} +