From 6b4bc37e362a36b1186e63a325729da97fe0eeff Mon Sep 17 00:00:00 2001 From: Derran Date: Fri, 20 Dec 2024 10:51:05 +0800 Subject: [PATCH 01/20] =?UTF-8?q?=E7=BA=A2=E5=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aggregate/product/constant/ProductSubCategoryEnum.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java index e63ee3d..dc6f3f0 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java @@ -44,8 +44,9 @@ public enum ProductSubCategoryEnum { MATCHMAKER_FRANCHISE_FEE(88801, "红娘合伙人加盟费"), - MATCHMAKER_ONLINE_FEE(88802, "线上红娘加盟费"); + MATCHMAKER_ONLINE_FEE(88802, "线上红娘加盟费"), + MATCHMAKER_TRAINEE_FEE(88803, "实习红娘加盟费"); @EnumValue @JsonValue From f2079f827f651b1e8b3ac2d8dc1d919e57b2f210 Mon Sep 17 00:00:00 2001 From: Derran Date: Fri, 20 Dec 2024 11:25:36 +0800 Subject: [PATCH 02/20] =?UTF-8?q?=E7=BA=A2=E5=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rewardconfig/constant/RewardTypeEnum.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java index 6ee9de1..905eaa8 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java @@ -38,6 +38,17 @@ public enum RewardTypeEnum { MATCHMAKER_JOIN_RECOMMEND_BY_ONLINE(114, "红娘入驻推荐红娘奖励"), + /** + * 实习红娘 + */ + GUEST_CERTIFICATION_BY_TRAINEE(115, "嘉宾实名认证"), + + PUBLISH_MARRIAGE_BOUNTY_BY_TRAINEE(116, "发布悬赏招亲"), + + MATCH_MARRIAGE_BOUNTY_BY_TRAINEE(117, "匹配悬赏招亲"), + + MATCHMAKER_JOIN_RECOMMEND_BY_TRAINEE(118, "红娘入驻推荐红娘奖励"), + /** * 红娘入驻推荐奖励 */ From cbc43b3f83431b4132e4b275c56e6dee79a18cdc Mon Sep 17 00:00:00 2001 From: Derran Date: Fri, 20 Dec 2024 11:33:30 +0800 Subject: [PATCH 03/20] =?UTF-8?q?=E7=BA=A2=E5=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rewardconfig/impl/RewardConfigQueryServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java index 3b65494..95cf6da 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java @@ -58,6 +58,11 @@ public class RewardConfigQueryServiceImpl implements RewardConfigQueryService { .in(RewardConfig::getRewardType, Arrays.asList(RewardTypeEnum.GUEST_CERTIFICATION_BY_ONLINE, RewardTypeEnum.PUBLISH_MARRIAGE_BOUNTY_BY_ONLINE, RewardTypeEnum.MATCH_MARRIAGE_BOUNTY_BY_ONLINE, RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND_BY_ONLINE))); voList = TypeConvertUtils.convert(list, RewardConfigVo.class); + } else if (ProductSubCategoryEnum.MATCHMAKER_TRAINEE_FEE.getValue().equals(type)) { + List list = rewardConfigDao.selectList(new LambdaQueryWrapper() + .in(RewardConfig::getRewardType, Arrays.asList(RewardTypeEnum.GUEST_CERTIFICATION_BY_TRAINEE, RewardTypeEnum.PUBLISH_MARRIAGE_BOUNTY_BY_TRAINEE, + RewardTypeEnum.MATCH_MARRIAGE_BOUNTY_BY_TRAINEE, RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND_BY_TRAINEE))); + voList = TypeConvertUtils.convert(list, RewardConfigVo.class); } return voList; } From 2f6c2620d683f2d671a62c62f032b71b9f653c3a Mon Sep 17 00:00:00 2001 From: Derran Date: Fri, 20 Dec 2024 15:45:55 +0800 Subject: [PATCH 04/20] =?UTF-8?q?=E7=BA=A2=E5=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dam/application/service/order/OrderApplicationService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java index 4f0e959..6d78dd0 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java @@ -525,7 +525,7 @@ public class OrderApplicationService extends BaseApplicationService { RewardConfig rewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.MATCHMAKER_UPGRADE_PROTECTION_PERIOD); if (Objects.nonNull(rewardConfig)) { //仍在保护期内则红娘升级补充差价 - if (LocalDateTime.now().isBefore(rewardConfig.getPeriodTime(matchmaker.getCreateTime()))) { + if (LocalDateTime.now().isBefore(rewardConfig.getPeriodTime(matchmaker.getEffectiveTime()))) { discountAmount = matchmaker.getFranchiseFee(); } } From a361c44bbfedaa4b23e874b018855a61a9b99c8e Mon Sep 17 00:00:00 2001 From: Derran Date: Mon, 23 Dec 2024 16:16:48 +0800 Subject: [PATCH 05/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PointRewardConfigAttributeEnum.java | 37 ++++++++++++++ .../constant/PointRewardConfigTypeEnum.java | 49 +++++++++++++++++++ .../prc/entity/PointRewardConfig.java | 36 ++++++++++++++ ...ointRewardConfigUserCommandController.java | 47 ++++++++++++++++++ .../UserCreatePointRewardConfigDto.java | 30 ++++++++++++ .../UserDeletePointRewardConfigDto.java | 12 +++++ .../request/UserEditPointRewardConfigDto.java | 33 +++++++++++++ .../UserEnablePointRewardConfigDto.java | 11 +++++ .../PointRewardConfigUserQueryController.java | 28 +++++++++++ ...ointRewardConfigByOperatorQueryParams.java | 7 +++ ...UserPagePointRewardConfigByOperatorVo.java | 31 ++++++++++++ .../PointRewardConfigApplicationService.java | 38 ++++++++++++++ .../prc/PointRewardConfigAggregate.java | 32 ++++++++++++ .../PointRewardConfigRepository.java | 12 +++++ .../dao/prc/PointRewardConfigDao.java | 19 +++++++ .../impl/PointRewardConfigRepositoryImpl.java | 41 ++++++++++++++++ .../prc/PointRewardConfigQueryService.java | 11 +++++ .../PointRewardConfigQueryServiceImpl.java | 24 +++++++++ .../mapper/prc/PointRewardConfigMapper.xml | 20 ++++++++ 19 files changed, 518 insertions(+) create mode 100644 dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigAttributeEnum.java create mode 100644 dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigTypeEnum.java create mode 100644 dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/prc/entity/PointRewardConfig.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/PointRewardConfigUserCommandController.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserCreatePointRewardConfigDto.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserDeletePointRewardConfigDto.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserEditPointRewardConfigDto.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserEnablePointRewardConfigDto.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/PointRewardConfigUserQueryController.java create 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/response/UserPagePointRewardConfigByOperatorVo.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/prc/PointRewardConfigApplicationService.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/prc/PointRewardConfigAggregate.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/prc/repository/PointRewardConfigRepository.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/prc/PointRewardConfigDao.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/PointRewardConfigRepositoryImpl.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/PointRewardConfigQueryService.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/impl/PointRewardConfigQueryServiceImpl.java create mode 100644 dating-agency-mall-server/src/main/resources/mapper/prc/PointRewardConfigMapper.xml diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigAttributeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigAttributeEnum.java new file mode 100644 index 0000000..15cc5f3 --- /dev/null +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigAttributeEnum.java @@ -0,0 +1,37 @@ +package com.qniao.dam.domian.aggregate.prc.constant; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; + +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum PointRewardConfigAttributeEnum { + + NUM(1, "数值"), + + PERCENT(2, "百分比"); + + @EnumValue + @JsonValue + private final Integer value; + private final String desc; + + PointRewardConfigAttributeEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @JsonCreator + public static PointRewardConfigAttributeEnum get(Object code) { + for (PointRewardConfigAttributeEnum e : PointRewardConfigAttributeEnum.values()) { + if (e.getValue().equals(code)) { + return e; + } + } + return null; + } + +} \ No newline at end of file diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigTypeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigTypeEnum.java new file mode 100644 index 0000000..bc26263 --- /dev/null +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigTypeEnum.java @@ -0,0 +1,49 @@ +package com.qniao.dam.domian.aggregate.prc.constant; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; + +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum PointRewardConfigTypeEnum { + + INVITE_MATCHMAKER(1, "邀请红娘加盟"), + + INVITE_REGISTER(2, "邀请嘉宾注册"), + + INVITE_UPLOAD_PROFILE_PHOTO(3, "邀请嘉宾上传头像"), + + INVITE_AUTHENTICATION(4, "邀请嘉宾实名认证"), + + INVITE_BOUNTY(5, "邀请嘉宾发布悬赏"), + + COMPLETE_BOUNTY_AUTHENTICATION(6,"邀请嘉宾悬赏注册"), + + COMPLETE_BOUNTY_PUBLISH(7,"邀请嘉宾悬赏匹配"), + + COMPLETE_BOUNTY_MATCH(8,"邀请嘉宾悬赏注册"); + + @EnumValue + @JsonValue + private final Integer value; + private final String desc; + + PointRewardConfigTypeEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @JsonCreator + public static PointRewardConfigTypeEnum get(Object code) { + for (PointRewardConfigTypeEnum e : PointRewardConfigTypeEnum.values()) { + if (e.getValue().equals(code)) { + return e; + } + } + return null; + } + +} \ No newline at end of file diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/prc/entity/PointRewardConfig.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/prc/entity/PointRewardConfig.java new file mode 100644 index 0000000..65663aa --- /dev/null +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/prc/entity/PointRewardConfig.java @@ -0,0 +1,36 @@ +package com.qniao.dam.domain.aggregate.prc.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigAttributeEnum; +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.qniao.domain.Entity; + +/** + * 积分奖励配置 + * + * @date 2024/12/23 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("da_point_reward_config") +public class PointRewardConfig extends Entity { + + @ApiModelProperty("类型") + private PointRewardConfigTypeEnum type; + + @ApiModelProperty("属性") + private PointRewardConfigAttributeEnum attribute; + + @ApiModelProperty("数量") + private String num; + + @ApiModelProperty("启用状态") + private Boolean enable; + + @ApiModelProperty("备注") + private String remark; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/PointRewardConfigUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/PointRewardConfigUserCommandController.java new file mode 100644 index 0000000..62fb37c --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/PointRewardConfigUserCommandController.java @@ -0,0 +1,47 @@ +package com.qniao.dam.api.command.prc.user; + +import com.qniao.dam.api.command.prc.user.request.*; +import com.qniao.dam.application.service.prc.PointRewardConfigApplicationService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +@Api(tags = "积分奖励配置") +@RestController +@RequestMapping("user") +public class PointRewardConfigUserCommandController { + + @Resource + private PointRewardConfigApplicationService pointRewardConfigApplicationService; + + @ApiOperation("用户创建积分奖励配置") + @PostMapping("create/point-reward-config") + public void userCreatePointRewardConfig(@RequestBody @Valid UserCreatePointRewardConfigDto dto, + @RequestParam("userId") Long userId) { + pointRewardConfigApplicationService.create(dto.trans2Domain()); + } + + @ApiOperation("用户编辑积分奖励配置") + @PostMapping("edit/point-reward-config") + public void userEditPointRewardConfig(@RequestBody @Valid UserEditPointRewardConfigDto dto, + @RequestParam("userId") Long userId) { + pointRewardConfigApplicationService.edit(dto.trans2Domain()); + } + + @ApiOperation("用户删除积分奖励配置") + @PostMapping("delete/point-reward-config") + public void userDeletePointRewardConfig(@RequestBody @Valid UserDeletePointRewardConfigDto dto, + @RequestParam("userId") Long userId) { + pointRewardConfigApplicationService.delete(dto.getId()); + } + + @ApiOperation("用户启停积分奖励配置") + @PostMapping("enable/point-reward-config") + public void userEnablePointRewardConfig(@RequestBody @Valid UserEnablePointRewardConfigDto dto, + @RequestParam("userId") Long userId) { + pointRewardConfigApplicationService.enable(dto.getId()); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserCreatePointRewardConfigDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserCreatePointRewardConfigDto.java new file mode 100644 index 0000000..9ee3b7b --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserCreatePointRewardConfigDto.java @@ -0,0 +1,30 @@ +package com.qniao.dam.api.command.prc.user.request; + +import com.qniao.dam.domain.aggregate.prc.entity.PointRewardConfig; +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigAttributeEnum; +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; +import com.qniao.domain.Trans2DomainAssembler; +import io.swagger.annotations.ApiModelProperty; +import com.qniao.framework.utils.TypeConvertUtils; +import lombok.Data; + +@Data +public class UserCreatePointRewardConfigDto implements Trans2DomainAssembler { + + @ApiModelProperty("类型") + private PointRewardConfigTypeEnum type; + + @ApiModelProperty("属性") + private PointRewardConfigAttributeEnum attribute; + + @ApiModelProperty("数量") + private String num; + + @ApiModelProperty("备注") + private String remark; + + @Override + public PointRewardConfig trans2Domain() { + return TypeConvertUtils.convert(this, PointRewardConfig.class); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserDeletePointRewardConfigDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserDeletePointRewardConfigDto.java new file mode 100644 index 0000000..58a6396 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserDeletePointRewardConfigDto.java @@ -0,0 +1,12 @@ +package com.qniao.dam.api.command.prc.user.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserDeletePointRewardConfigDto { + + @ApiModelProperty("唯一标识") + private Long id; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserEditPointRewardConfigDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserEditPointRewardConfigDto.java new file mode 100644 index 0000000..61e5cf3 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserEditPointRewardConfigDto.java @@ -0,0 +1,33 @@ +package com.qniao.dam.api.command.prc.user.request; + +import com.qniao.dam.domain.aggregate.prc.entity.PointRewardConfig; +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigAttributeEnum; +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; +import com.qniao.domain.Trans2DomainAssembler; +import io.swagger.annotations.ApiModelProperty; +import com.qniao.framework.utils.TypeConvertUtils; +import lombok.Data; + +@Data +public class UserEditPointRewardConfigDto implements Trans2DomainAssembler { + + @ApiModelProperty("唯一标识") + private Long id; + + @ApiModelProperty("类型") + private PointRewardConfigTypeEnum type; + + @ApiModelProperty("属性") + private PointRewardConfigAttributeEnum attribute; + + @ApiModelProperty("数量") + private String num; + + @ApiModelProperty("备注") + private String remark; + + @Override + public PointRewardConfig trans2Domain() { + return TypeConvertUtils.convert(this, PointRewardConfig.class); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserEnablePointRewardConfigDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserEnablePointRewardConfigDto.java new file mode 100644 index 0000000..34a3464 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserEnablePointRewardConfigDto.java @@ -0,0 +1,11 @@ +package com.qniao.dam.api.command.prc.user.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserEnablePointRewardConfigDto { + + @ApiModelProperty("唯一标识") + private Long id; +} 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 new file mode 100644 index 0000000..304944b --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/PointRewardConfigUserQueryController.java @@ -0,0 +1,28 @@ +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.query.prc.PointRewardConfigQueryService; +import com.qniao.domain.QnPage; +import com.qniao.framework.utils.PageUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@Api(tags = "积分奖励配置") +@RestController +@RequestMapping("user") +public class PointRewardConfigUserQueryController { + + @Resource + private PointRewardConfigQueryService pointRewardConfigQueryService; + + @GetMapping("page/point-reward-config/by/operator") + @ApiOperation("运营获取积分奖励配置分页列表") + public QnPage userPagePointRewardConfigByOperator(PageUtil pageUtil, + UserPagePointRewardConfigByOperatorQueryParams queryParams) { + return PageUtil.convert(pointRewardConfigQueryService.pageByOperator(pageUtil, queryParams), UserPagePointRewardConfigByOperatorVo.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 new file mode 100644 index 0000000..1f9726c --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/request/UserPagePointRewardConfigByOperatorQueryParams.java @@ -0,0 +1,7 @@ +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/response/UserPagePointRewardConfigByOperatorVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/response/UserPagePointRewardConfigByOperatorVo.java new file mode 100644 index 0000000..d277cc5 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/response/UserPagePointRewardConfigByOperatorVo.java @@ -0,0 +1,31 @@ +package com.qniao.dam.api.query.prc.user.response; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigAttributeEnum; +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserPagePointRewardConfigByOperatorVo { + + @ApiModelProperty("唯一标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + @ApiModelProperty("类型") + private PointRewardConfigTypeEnum type; + + @ApiModelProperty("属性") + private PointRewardConfigAttributeEnum attribute; + + @ApiModelProperty("数量") + private String num; + + @ApiModelProperty("启用状态") + private Boolean enable; + + @ApiModelProperty("备注") + private String remark; +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/prc/PointRewardConfigApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/prc/PointRewardConfigApplicationService.java new file mode 100644 index 0000000..62d6bfb --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/prc/PointRewardConfigApplicationService.java @@ -0,0 +1,38 @@ +package com.qniao.dam.application.service.prc; + +import com.qniao.dam.domain.aggregate.prc.PointRewardConfigAggregate; +import com.qniao.dam.domain.aggregate.prc.entity.PointRewardConfig; +import com.qniao.dam.infrastructure.persistent.dao.prc.PointRewardConfigDao; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +@Service +public class PointRewardConfigApplicationService { + + @Resource + private PointRewardConfigAggregate pointRewardConfigAggregate; + @Resource + private PointRewardConfigDao pointRewardConfigDao; + + public void create(PointRewardConfig pointRewardConfig) { + pointRewardConfigAggregate.create(pointRewardConfig); + } + + public void edit(PointRewardConfig pointRewardConfig) { + pointRewardConfigAggregate.edit(pointRewardConfig); + } + + public void delete(Long id) { + pointRewardConfigAggregate.delete(id); + } + + public void enable(Long id) { + PointRewardConfig pointRewardConfig = pointRewardConfigDao.selectById(id); + if (Objects.nonNull(pointRewardConfig)){ + pointRewardConfig.setEnable(!pointRewardConfig.getEnable()); + pointRewardConfigAggregate.edit(pointRewardConfig); + } + } +} \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/prc/PointRewardConfigAggregate.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/prc/PointRewardConfigAggregate.java new file mode 100644 index 0000000..d99d703 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/prc/PointRewardConfigAggregate.java @@ -0,0 +1,32 @@ +package com.qniao.dam.domain.aggregate.prc; + +import com.qniao.dam.domain.aggregate.prc.entity.PointRewardConfig; +import com.qniao.dam.domain.aggregate.prc.repository.PointRewardConfigRepository; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 积分奖励配置 + * + * @date 2024/12/23 + */ +@Service +public class PointRewardConfigAggregate { + + @Resource + private PointRewardConfigRepository repository; + + public void create(PointRewardConfig entity) { + entity.setEnable(true); + repository.save(entity); + } + + public void edit(PointRewardConfig 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/prc/repository/PointRewardConfigRepository.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/prc/repository/PointRewardConfigRepository.java new file mode 100644 index 0000000..dc4a7e8 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/prc/repository/PointRewardConfigRepository.java @@ -0,0 +1,12 @@ +package com.qniao.dam.domain.aggregate.prc.repository; + +import com.qniao.dam.domain.aggregate.prc.entity.PointRewardConfig; +import com.qniao.domain.Repository; + +/** + * 积分奖励配置 + * + * @date 2024/12/23 + */ +public interface PointRewardConfigRepository extends Repository { +} 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 new file mode 100644 index 0000000..bf3a916 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/prc/PointRewardConfigDao.java @@ -0,0 +1,19 @@ +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.domain.aggregate.prc.entity.PointRewardConfig; +import org.apache.ibatis.annotations.Param; + +/** + * 积分奖励配置 + * + * @date 2024/12/23 + */ +public interface PointRewardConfigDao extends BaseMapper { + IPage pageByOperator(Page pageWithoutOrders, + @Param("queryParams") UserPagePointRewardConfigByOperatorQueryParams queryParams); +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/PointRewardConfigRepositoryImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/PointRewardConfigRepositoryImpl.java new file mode 100644 index 0000000..9399660 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/PointRewardConfigRepositoryImpl.java @@ -0,0 +1,41 @@ +package com.qniao.dam.infrastructure.persistent.repository.impl; + +import com.qniao.dam.domain.aggregate.prc.entity.PointRewardConfig; +import com.qniao.dam.domain.aggregate.prc.repository.PointRewardConfigRepository; +import com.qniao.dam.infrastructure.persistent.dao.prc.PointRewardConfigDao; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +/** + * 积分奖励配置 + * + * @date 2024/12/23 + */ +@Service +public class PointRewardConfigRepositoryImpl implements PointRewardConfigRepository { + + @Resource + private PointRewardConfigDao dao; + + @Override + public PointRewardConfig load(Long id) { + return dao.selectById(id); + } + + @Override + public Long save(PointRewardConfig entity) { + if (Objects.isNull(entity) || Objects.isNull(dao.selectById(entity.getId()))) { + dao.insert(entity); + } else { + dao.updateById(entity); + } + 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/prc/PointRewardConfigQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/PointRewardConfigQueryService.java new file mode 100644 index 0000000..06dccf1 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/PointRewardConfigQueryService.java @@ -0,0 +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.framework.utils.PageUtil; + +public interface PointRewardConfigQueryService { + + IPage pageByOperator(PageUtil pageUtil, UserPagePointRewardConfigByOperatorQueryParams 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 new file mode 100644 index 0000000..b18b637 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/impl/PointRewardConfigQueryServiceImpl.java @@ -0,0 +1,24 @@ +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.infrastructure.persistent.dao.prc.PointRewardConfigDao; +import com.qniao.dam.query.prc.PointRewardConfigQueryService; +import com.qniao.framework.utils.PageUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class PointRewardConfigQueryServiceImpl implements PointRewardConfigQueryService { + + @Resource + private PointRewardConfigDao pointRewardConfigDao; + + @Override + public IPage pageByOperator(PageUtil pageUtil, + UserPagePointRewardConfigByOperatorQueryParams queryParams) { + return pointRewardConfigDao.pageByOperator(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 new file mode 100644 index 0000000..e1169ac --- /dev/null +++ b/dating-agency-mall-server/src/main/resources/mapper/prc/PointRewardConfigMapper.xml @@ -0,0 +1,20 @@ + + + + + + + From 901d107ab0ad422cf6242a1659eeeae7821feb61 Mon Sep 17 00:00:00 2001 From: Derran Date: Mon, 23 Dec 2024 16:21:05 +0800 Subject: [PATCH 06/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aggregate/prc/constant/PointRewardConfigTypeEnum.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigTypeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigTypeEnum.java index bc26263..094d0af 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigTypeEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigTypeEnum.java @@ -20,11 +20,11 @@ public enum PointRewardConfigTypeEnum { INVITE_BOUNTY(5, "邀请嘉宾发布悬赏"), - COMPLETE_BOUNTY_AUTHENTICATION(6,"邀请嘉宾悬赏注册"), + COMPLETE_BOUNTY_AUTHENTICATION(6,"完成榜单悬赏注册"), - COMPLETE_BOUNTY_PUBLISH(7,"邀请嘉宾悬赏匹配"), + COMPLETE_BOUNTY_PUBLISH(7,"完成榜单悬赏发布"), - COMPLETE_BOUNTY_MATCH(8,"邀请嘉宾悬赏注册"); + COMPLETE_BOUNTY_MATCH(8,"完成榜单悬赏匹配"); @EnumValue @JsonValue From 6c86f1674db626c160c164d35e047532be72abbc Mon Sep 17 00:00:00 2001 From: Derran Date: Tue, 24 Dec 2024 11:21:52 +0800 Subject: [PATCH 07/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=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} + From ac8af65727547de9e72e7cc82d9a609ce909cd6f Mon Sep 17 00:00:00 2001 From: Derran Date: Tue, 24 Dec 2024 11:24:44 +0800 Subject: [PATCH 08/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PointAccountRecordApplicationService.java | 26 ------------------- 1 file changed, 26 deletions(-) delete mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/par/PointAccountRecordApplicationService.java 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 deleted file mode 100644 index 492ec9f..0000000 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/par/PointAccountRecordApplicationService.java +++ /dev/null @@ -1,26 +0,0 @@ -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 From 0d959f56a15d51f382552cdbc3df55baf7c59faf Mon Sep 17 00:00:00 2001 From: Derran Date: Tue, 24 Dec 2024 14:22:30 +0800 Subject: [PATCH 09/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aggregate/pointaccount/valueobj/PointAccountRecord.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 index f5841f4..1d62365 100644 --- 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 @@ -1,6 +1,7 @@ package com.qniao.dam.domain.aggregate.pointaccount.valueobj; import com.baomidou.mybatisplus.annotation.TableName; +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; import com.qniao.domain.ValueObject; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -20,7 +21,7 @@ public class PointAccountRecord extends ValueObject { private Long pointAccountId; @ApiModelProperty("积分类型") - private Integer pointType; + private PointRewardConfigTypeEnum pointType; @ApiModelProperty("内容") private String content; From 590494ed74f6abe05c297e4d6aa839c1d56b6092 Mon Sep 17 00:00:00 2001 From: Derran Date: Tue, 24 Dec 2024 17:35:32 +0800 Subject: [PATCH 10/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pointaccount/entity/PointAccount.java | 8 +++ .../prc/entity/PointRewardConfig.java | 12 ++++ .../event/PointRewardCreatedMQ.java | 34 +++++++++++ .../PointAccountEventHandler.java | 60 +++++++++++++++++++ .../infrastructure/constant/MqExchange.java | 1 + .../dam/infrastructure/constant/MqQueue.java | 1 + .../PointAccountQueryService.java | 3 + .../impl/PointAccountQueryServiceImpl.java | 24 +++++++- .../prc/PointRewardConfigQueryService.java | 4 ++ .../PointRewardConfigQueryServiceImpl.java | 11 ++++ 10 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/pointaccount/event/PointRewardCreatedMQ.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/pointaccount/PointAccountEventHandler.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 index 723ef9d..ee385cc 100644 --- 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 @@ -42,4 +42,12 @@ public class PointAccount extends Entity { pointAccount.setPoints(0); return pointAccount; } + + public static PointAccount initOrg(Long orgId) { + PointAccount pointAccount = new PointAccount(); + pointAccount.setOrgId(orgId); + pointAccount.setIdentityType(IdentityTypeEnum.ORGANIZATION); + pointAccount.setPoints(0); + return pointAccount; + } } diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/prc/entity/PointRewardConfig.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/prc/entity/PointRewardConfig.java index 65663aa..9d70e87 100644 --- a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/prc/entity/PointRewardConfig.java +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/prc/entity/PointRewardConfig.java @@ -3,11 +3,15 @@ package com.qniao.dam.domain.aggregate.prc.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigAttributeEnum; import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; +import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardAmountUnitEnum; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import com.qniao.domain.Entity; +import java.math.BigDecimal; +import java.math.RoundingMode; + /** * 积分奖励配置 * @@ -33,4 +37,12 @@ public class PointRewardConfig extends Entity { @ApiModelProperty("备注") private String remark; + + public Integer calculateReward(BigDecimal amount) { + if (PointRewardConfigAttributeEnum.NUM.equals(attribute)) { + return Integer.valueOf(num); + } else { + return amount.multiply(new BigDecimal(num)).divide(BigDecimal.valueOf(100), 0, RoundingMode.HALF_UP).intValue(); + } + } } diff --git a/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/pointaccount/event/PointRewardCreatedMQ.java b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/pointaccount/event/PointRewardCreatedMQ.java new file mode 100644 index 0000000..e59ed16 --- /dev/null +++ b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/pointaccount/event/PointRewardCreatedMQ.java @@ -0,0 +1,34 @@ +package com.qniao.dam.domian.aggregate.pointaccount.event; + +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; +import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class PointRewardCreatedMQ implements Serializable { + + @ApiModelProperty("用户唯一标识") + private Long ownId; + + @ApiModelProperty("身份类型(个人、组织)") + private IdentityTypeEnum identityType; + + @ApiModelProperty("积分类型") + private PointRewardConfigTypeEnum pointType; + + @ApiModelProperty("内容") + private String content; + + @ApiModelProperty("是否收入") + private Boolean isIncome; + + @ApiModelProperty("关联ID") + private Long associateId; + + @ApiModelProperty("金额") + private BigDecimal amount; +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/pointaccount/PointAccountEventHandler.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/pointaccount/PointAccountEventHandler.java new file mode 100644 index 0000000..44323f7 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/pointaccount/PointAccountEventHandler.java @@ -0,0 +1,60 @@ +package com.qniao.dam.application.handler.pointaccount; + +import com.qniao.dam.domain.aggregate.pointaccount.PointAccountAggregate; +import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; +import com.qniao.dam.domain.aggregate.pointaccount.valueobj.PointAccountRecord; +import com.qniao.dam.domain.aggregate.prc.entity.PointRewardConfig; +import com.qniao.dam.domian.aggregate.pointaccount.event.PointRewardCreatedMQ; +import com.qniao.dam.infrastructure.constant.MqExchange; +import com.qniao.dam.infrastructure.constant.MqQueue; +import com.qniao.dam.query.pointaccount.PointAccountQueryService; +import com.qniao.dam.query.prc.PointRewardConfigQueryService; +import com.qniao.domain.BaseApplicationService; +import com.qniao.framework.utils.TypeConvertUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.Objects; + +@Component +@Slf4j +public class PointAccountEventHandler extends BaseApplicationService { + + @Resource + private PointAccountQueryService pointAccountQueryService; + @Resource + private PointRewardConfigQueryService pointRewardConfigQueryService; + @Resource + private PointAccountAggregate pointAccountAggregate; + + @RabbitListener(bindings = @QueueBinding(value = @Queue(MqQueue.POINT_REWARD_CREATED), + exchange = @Exchange(value = MqExchange.POINT_REWARD_CREATED, + type = ExchangeTypes.FANOUT))) + public void handle(PointRewardCreatedMQ mq) { + try { + PointAccount pointAccount = pointAccountQueryService.queryByType(mq.getOwnId(), mq.getIdentityType()); + //积分计算 + PointRewardConfig pointRewardConfig = pointRewardConfigQueryService.queryEnableByType(mq.getPointType()); + if (Objects.nonNull(pointRewardConfig)) { + Integer points = pointRewardConfig.calculateReward(mq.getAmount()); + PointAccountRecord pointAccountRecord = TypeConvertUtils.convert(mq, PointAccountRecord.class); + pointAccountRecord.setPoints(points); + pointAccountRecord.setOriginalPoints(pointAccount.getPoints()); + pointAccount.setPoints(pointAccount.getPoints() + points); + pointAccountRecord.setCurrentPoints(pointAccount.getPoints()); + pointAccount.setRecordList(Collections.singletonList(pointAccountRecord)); + pointAccountAggregate.edit(pointAccount); + } + } catch (Exception e) { + log.error("积分奖励创建事件处理异常", e); + } + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqExchange.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqExchange.java index 9d16900..f5d09fd 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqExchange.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqExchange.java @@ -16,4 +16,5 @@ public interface MqExchange { String CANCEL_SITE_ACTIVITY = "fanout.cancelSiteActivity"; + String POINT_REWARD_CREATED = "fanout.pointRewardCreated"; } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqQueue.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqQueue.java index 8ba2dc5..d43663a 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqQueue.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqQueue.java @@ -16,4 +16,5 @@ public interface MqQueue { String CANCEL_SITE_ACTIVITY = MqExchange.CANCEL_SITE_ACTIVITY + serviceName; + String POINT_REWARD_CREATED = MqExchange.POINT_REWARD_CREATED + serviceName; } 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 df4fd04..77d3f86 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,8 +1,11 @@ package com.qniao.dam.query.pointaccount; import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; +import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; public interface PointAccountQueryService { PointAccount queryByUserId(Long userId); + + PointAccount queryByType(Long ownId, IdentityTypeEnum identityType); } 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 e7f1986..79f2344 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 @@ -22,9 +22,31 @@ public class PointAccountQueryServiceImpl implements PointAccountQueryService { .eq(PointAccount::getIdentityType, IdentityTypeEnum.INDIVIDUAL) .eq(PointAccount::getUserId, userId) .last("limit 1")); - if (Objects.isNull(pointAccount)){ + if (Objects.isNull(pointAccount)) { pointAccount = PointAccount.initUser(userId); } return pointAccount; } + + private PointAccount queryByOrg(Long orgId) { + PointAccount pointAccount = pointAccountDao.selectOne(new LambdaQueryWrapper() + .eq(PointAccount::getIdentityType, IdentityTypeEnum.INDIVIDUAL) + .eq(PointAccount::getOrgId, orgId) + .last("limit 1")); + if (Objects.isNull(pointAccount)) { + pointAccount = PointAccount.initOrg(orgId); + } + return pointAccount; + } + + @Override + public PointAccount queryByType(Long ownId, IdentityTypeEnum identityType) { + if (IdentityTypeEnum.INDIVIDUAL.equals(identityType)) { + return queryByUserId(ownId); + } else if (IdentityTypeEnum.ORGANIZATION.equals(identityType)) { + return queryByOrg(ownId); + } + return null; + } + } \ 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 8c43dbb..aa7e169 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 @@ -3,9 +3,13 @@ package com.qniao.dam.query.prc; import com.baomidou.mybatisplus.core.metadata.IPage; 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 com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; import com.qniao.framework.utils.PageUtil; public interface PointRewardConfigQueryService { IPage page(PageUtil pageUtil, UserPagePointRewardConfigQueryParams queryParams); + + PointRewardConfig queryEnableByType(PointRewardConfigTypeEnum type); } 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 12d10e1..3b0f9c3 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,11 @@ package com.qniao.dam.query.prc.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; 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 com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; import com.qniao.dam.infrastructure.persistent.dao.prc.PointRewardConfigDao; import com.qniao.dam.query.prc.PointRewardConfigQueryService; import com.qniao.framework.utils.PageUtil; @@ -21,4 +24,12 @@ public class PointRewardConfigQueryServiceImpl implements PointRewardConfigQuery UserPagePointRewardConfigQueryParams queryParams) { return pointRewardConfigDao.page(pageUtil.toPageWithoutOrders(), queryParams); } + + @Override + public PointRewardConfig queryEnableByType(PointRewardConfigTypeEnum type) { + return pointRewardConfigDao.selectOne(new LambdaQueryWrapper() + .eq(PointRewardConfig::getType, type) + .eq(PointRewardConfig::getEnable, true) + .last("limit 1")); + } } \ No newline at end of file From 197bf148c2e54525a7657255e6b97a7bf2ee08ff Mon Sep 17 00:00:00 2001 From: Derran Date: Wed, 25 Dec 2024 16:00:11 +0800 Subject: [PATCH 11/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MarriageBountyOrderEventHandle.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java index 23da7f2..266a946 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java @@ -15,11 +15,18 @@ import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCo import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderConfirmedMeetingEvent; import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedEvent; import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedMQ; +import com.qniao.dam.domian.aggregate.pointaccount.event.PointRewardCreatedMQ; +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; +import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; import com.qniao.dam.infrastructure.constant.MqExchange; import com.qniao.dam.infrastructure.constant.MqQueue; import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageBountyOrderDao; +import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao; +import com.qniao.dam.infrastructure.persistent.dao.domain.MatchmakerDao; import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService; +import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation; import com.qniao.das.domian.aggregate.marriageseekingreward.event.MatchSuccessfullyEvent; +import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker; import com.qniao.domain.BaseApplicationService; import com.qniao.framework.utils.TypeConvertUtils; import lombok.extern.slf4j.Slf4j; @@ -51,6 +58,10 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService { private MarriageBountyOrderDao marriageBountyOrderDao; @Resource private MarriageBountyOrderAggregate marriageBountyOrderAggregate; + @Resource + private MatchmakerDao matchmakerDao; + @Resource + private MarriageInformationDao marriageInformationDao; @Subscribe public void handle(MarriageBountyOrderCreatedEvent event) { @@ -64,6 +75,27 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService { } } + @Subscribe + public void handle2(MarriageBountyOrderCreatedEvent event) { + try { + MarriageInformation marriageInformation = marriageInformationDao.selectById(event.getMiId()); + MarriageBountyOrder marriageBountyOrder = marriageBountyOrderDao.selectById(event.getId()); + PointRewardCreatedMQ mq = new PointRewardCreatedMQ(); + Matchmaker matchmaker = matchmakerDao.selectById(event.getMatchmakerId()); + mq.setOwnId(matchmaker.getUserId()); + mq.setIdentityType(IdentityTypeEnum.INDIVIDUAL); + mq.setPointType(PointRewardConfigTypeEnum.INVITE_BOUNTY); + mq.setContent("邀请发榜:" + marriageInformation.getNickName()); + mq.setIsIncome(true); + mq.setAssociateId(event.getId()); + mq.setAmount(marriageBountyOrder.getPaidAmount()); + // 发送mq事件 + amqpTemplate.convertAndSend(MqExchange.POINT_REWARD_CREATED, null, mq); + } catch (Exception e) { + log.error("悬赏招亲订单已创建事件处理异常", e); + } + } + @Subscribe public void handle(MarriageBountyOrderConfirmedMeetingEvent event) { try { From 14eba013f2e3c1e4368a3d5fc527025e62058f70 Mon Sep 17 00:00:00 2001 From: Derran Date: Wed, 25 Dec 2024 16:38:42 +0800 Subject: [PATCH 12/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MarriageBountyOrderEventHandle.java | 56 ++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java index 266a946..7cd1321 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java @@ -15,8 +15,10 @@ import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCo import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderConfirmedMeetingEvent; import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedEvent; import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedMQ; +import com.qniao.dam.domian.aggregate.paymentorderrefund.constant.PaymentOrderRefundStatusEnum; import com.qniao.dam.domian.aggregate.pointaccount.event.PointRewardCreatedMQ; import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; +import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; import com.qniao.dam.infrastructure.constant.MqExchange; import com.qniao.dam.infrastructure.constant.MqQueue; @@ -85,7 +87,7 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService { mq.setOwnId(matchmaker.getUserId()); mq.setIdentityType(IdentityTypeEnum.INDIVIDUAL); mq.setPointType(PointRewardConfigTypeEnum.INVITE_BOUNTY); - mq.setContent("邀请发榜:" + marriageInformation.getNickName()); + mq.setContent("邀请发榜:" + marriageInformation.getNickName() + "榜单"); mq.setIsIncome(true); mq.setAssociateId(event.getId()); mq.setAmount(marriageBountyOrder.getPaidAmount()); @@ -146,6 +148,35 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService { } } + @Subscribe + public void handle2(MarriageBountyOrderConfirmedMatchEvent event) { + try { + //红娘获取奖励 + if (Objects.nonNull(event.getMarriageBountyOrderRewardId()) && CollUtil.isNotEmpty(event.getRewardReceiveRecordList())) { + MarriageBountyOrder marriageBountyOrder = marriageBountyOrderDao.selectById(event.getId()); + for (MarriageBountyOrderConfirmedMatchEvent.MarriageBountyOrderRewardReceiveRecordEvent rewardReceiveRecordEvent : event.getRewardReceiveRecordList()) { + if (Objects.nonNull(rewardReceiveRecordEvent.getReceivedAmount()) && rewardReceiveRecordEvent.getReceivedAmount().compareTo(BigDecimal.ZERO) > 0) { + //处理积分奖励 + //积分奖励 + MarriageInformation marriageInformation = marriageInformationDao.selectById(marriageBountyOrder.getMiId()); + PointRewardCreatedMQ mq = new PointRewardCreatedMQ(); + mq.setOwnId(rewardReceiveRecordEvent.getReceiver()); + mq.setIdentityType(IdentityTypeEnum.INDIVIDUAL); + mq.setPointType(transformPointRewardConfigType(rewardReceiveRecordEvent.getRewardType())); + mq.setContent("完成榜单:" + marriageInformation.getNickName() + "榜单"); + mq.setIsIncome(true); + mq.setAssociateId(event.getId()); + mq.setAmount(marriageBountyOrder.getPaidAmount()); + // 发送mq事件 + amqpTemplate.convertAndSend(MqExchange.POINT_REWARD_CREATED, null, mq); + } + } + + } + } catch (Exception e) { + log.error("悬赏招亲订单确认匹配事件处理异常", e); + } + } @RabbitListener(bindings = @QueueBinding(value = @Queue(MqQueue.REWARD_SELECTED_GUEST), exchange = @Exchange(value = MqExchange.REWARD_SELECTED_GUEST, @@ -174,4 +205,27 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService { log.error("悬赏招亲匹配成功处理异常", e); } } + + public PointRewardConfigTypeEnum transformPointRewardConfigType(RewardTypeEnum rewardType) { + PointRewardConfigTypeEnum pointRewardConfigType = null; + switch (rewardType) { + case GUEST_CERTIFICATION: + case GUEST_CERTIFICATION_BY_ONLINE: + case GUEST_CERTIFICATION_BY_TRAINEE: + pointRewardConfigType = PointRewardConfigTypeEnum.COMPLETE_BOUNTY_AUTHENTICATION; + break; + case PUBLISH_MARRIAGE_BOUNTY: + case PUBLISH_MARRIAGE_BOUNTY_BY_ONLINE: + case PUBLISH_MARRIAGE_BOUNTY_BY_TRAINEE: + pointRewardConfigType = PointRewardConfigTypeEnum.COMPLETE_BOUNTY_PUBLISH; + break; + case MATCH_MARRIAGE_BOUNTY: + case MATCH_MARRIAGE_BOUNTY_BY_ONLINE: + case MATCH_MARRIAGE_BOUNTY_BY_TRAINEE: + pointRewardConfigType = PointRewardConfigTypeEnum.COMPLETE_BOUNTY_MATCH; + break; + default: + } + return pointRewardConfigType; + } } From 8ff445615a95265fd977719e138e41cf8bb7a79c Mon Sep 17 00:00:00 2001 From: Derran Date: Wed, 25 Dec 2024 16:41:35 +0800 Subject: [PATCH 13/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rewardconfig/entity/RewardConfig.java | 2 ++ .../impl/RewardConfigQueryServiceImpl.java | 15 ++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/entity/RewardConfig.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/entity/RewardConfig.java index 7b58d9f..4d6c1d1 100644 --- a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/entity/RewardConfig.java +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/entity/RewardConfig.java @@ -32,6 +32,8 @@ public class RewardConfig extends Entity { return RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND; } else if (ProductSubCategoryEnum.MATCHMAKER_ONLINE_FEE.equals(type)) { return RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND_BY_ONLINE; + } else if (ProductSubCategoryEnum.MATCHMAKER_TRAINEE_FEE.equals(type)) { + return RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND_BY_TRAINEE; } return null; } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java index 95cf6da..a271a69 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java @@ -70,7 +70,10 @@ public class RewardConfigQueryServiceImpl implements RewardConfigQueryService { @Override public RewardConfig queryGuestCertificationReward(Matchmaker matchmaker) { if (Objects.nonNull(matchmaker)) { - if (ProductSubCategoryEnum.MATCHMAKER_ONLINE_FEE.equals(matchmaker.getType())) { + if (ProductSubCategoryEnum.MATCHMAKER_TRAINEE_FEE.equals(matchmaker.getType())) { + //实习红娘 + return queryByRewardType(RewardTypeEnum.GUEST_CERTIFICATION_BY_TRAINEE); + } else if (ProductSubCategoryEnum.MATCHMAKER_ONLINE_FEE.equals(matchmaker.getType())) { //线上红娘 return queryByRewardType(RewardTypeEnum.GUEST_CERTIFICATION_BY_ONLINE); } else { @@ -84,7 +87,10 @@ public class RewardConfigQueryServiceImpl implements RewardConfigQueryService { @Override public RewardConfig queryPublishMarriageBountyReward(Matchmaker matchmaker) { if (Objects.nonNull(matchmaker)) { - if (ProductSubCategoryEnum.MATCHMAKER_ONLINE_FEE.equals(matchmaker.getType())) { + if (ProductSubCategoryEnum.MATCHMAKER_TRAINEE_FEE.equals(matchmaker.getType())) { + //实习红娘 + return queryByRewardType(RewardTypeEnum.PUBLISH_MARRIAGE_BOUNTY_BY_TRAINEE); + } else if (ProductSubCategoryEnum.MATCHMAKER_ONLINE_FEE.equals(matchmaker.getType())) { //线上红娘 return queryByRewardType(RewardTypeEnum.PUBLISH_MARRIAGE_BOUNTY_BY_ONLINE); } else { @@ -98,7 +104,10 @@ public class RewardConfigQueryServiceImpl implements RewardConfigQueryService { @Override public RewardConfig queryMatchMarriageBountyReward(Matchmaker matchmaker) { if (Objects.nonNull(matchmaker)) { - if (ProductSubCategoryEnum.MATCHMAKER_ONLINE_FEE.equals(matchmaker.getType())) { + if (ProductSubCategoryEnum.MATCHMAKER_TRAINEE_FEE.equals(matchmaker.getType())) { + //实习红娘 + return queryByRewardType(RewardTypeEnum.MATCH_MARRIAGE_BOUNTY_BY_TRAINEE); + } else if (ProductSubCategoryEnum.MATCHMAKER_ONLINE_FEE.equals(matchmaker.getType())) { //线上红娘 return queryByRewardType(RewardTypeEnum.MATCH_MARRIAGE_BOUNTY_BY_ONLINE); } else { From 3d593bae763417ee658a86a4e63047364eedc81c Mon Sep 17 00:00:00 2001 From: Derran Date: Wed, 25 Dec 2024 16:43:34 +0800 Subject: [PATCH 14/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../query/rewardconfig/impl/RewardConfigQueryServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java index a271a69..7f782bf 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java @@ -140,8 +140,8 @@ public class RewardConfigQueryServiceImpl implements RewardConfigQueryService { pct = pct.compareTo(downMaxPct) < 0 ? pct : downMaxPct; } } - //向上推荐 - if (diffValue < 0) { + //向上推荐 只能一级 + if (diffValue == -1) { RewardConfig upLevelConfig = queryByRewardType(RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND_UP_LEVEL); RewardConfig upMinConfig = queryByRewardType(RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND_UP_MIN); if (Objects.nonNull(upLevelConfig) && Objects.nonNull(upMinConfig)) { From cb1e035831c3d2c61dd07fada53a6ea010264436 Mon Sep 17 00:00:00 2001 From: Derran Date: Wed, 25 Dec 2024 17:01:12 +0800 Subject: [PATCH 15/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/PointAccountUserQueryController.java | 16 ++++++++++ .../PagePointAccountRecordQueryParams.java | 12 +++++++ .../response/PagePointAccountRecordVo.java | 31 +++++++++++++++++++ .../dao/pointaccount/PointAccountDao.java | 7 +++++ .../PointAccountQueryService.java | 6 ++++ .../impl/PointAccountQueryServiceImpl.java | 9 ++++++ .../pointaccount/PointAccountMapper.xml | 23 ++++++++++++++ 7 files changed, 104 insertions(+) create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/request/PagePointAccountRecordQueryParams.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/PagePointAccountRecordVo.java create mode 100644 dating-agency-mall-server/src/main/resources/mapper/pointaccount/PointAccountMapper.xml 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 From 6ab60e734a82a8b21975769d5f424f4794358b4f Mon Sep 17 00:00:00 2001 From: Derran Date: Wed, 25 Dec 2024 17:30:39 +0800 Subject: [PATCH 16/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pointaccount/entity/PointAccount.java | 2 -- .../PointAccountRecord.java | 6 ++-- .../user/PointAccountUserQueryController.java | 7 ++++ .../GetUnreadPointAccountRecordVo.java | 32 +++++++++++++++++++ .../PointAccountEventHandler.java | 2 +- .../dao/par/PointAccountRecordDao.java | 4 ++- .../PointAccountQueryService.java | 3 ++ .../impl/PointAccountQueryServiceImpl.java | 25 +++++++++++++++ .../mapper/par/PointAccountRecordMapper.xml | 13 ++++++++ .../pointaccount/PointAccountMapper.xml | 2 +- 10 files changed, 88 insertions(+), 8 deletions(-) rename dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/{valueobj => entity}/PointAccountRecord.java (85%) create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/GetUnreadPointAccountRecordVo.java create mode 100644 dating-agency-mall-server/src/main/resources/mapper/par/PointAccountRecordMapper.xml 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 index ee385cc..8d061c6 100644 --- 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 @@ -1,14 +1,12 @@ 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; /** 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/entity/PointAccountRecord.java similarity index 85% rename from dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/valueobj/PointAccountRecord.java rename to dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/pointaccount/entity/PointAccountRecord.java index 1d62365..7af6867 100644 --- 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/entity/PointAccountRecord.java @@ -1,8 +1,8 @@ -package com.qniao.dam.domain.aggregate.pointaccount.valueobj; +package com.qniao.dam.domain.aggregate.pointaccount.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; -import com.qniao.domain.ValueObject; +import com.qniao.domain.Entity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -15,7 +15,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = true) @TableName("da_point_account_record") -public class PointAccountRecord extends ValueObject { +public class PointAccountRecord extends Entity { @ApiModelProperty("积分账号标识") private Long pointAccountId; 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 7861a3a..90394f2 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,6 +1,7 @@ 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.GetUnreadPointAccountRecordVo; 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; @@ -44,4 +45,10 @@ public class PointAccountUserQueryController { } return PageUtil.convert(pointAccountQueryService.pagePointAccountRecord(queryParams, pageUtil), PagePointAccountRecordVo.class); } + + @GetMapping("get/unread-point-account-record") + @ApiOperation("用户获取未读积分账号记录") + public GetUnreadPointAccountRecordVo userGetUnreadPointAccountRecord(@RequestParam("userId") Long userId) { + return pointAccountQueryService.getUnreadPointAccountRecord(userId); + } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/GetUnreadPointAccountRecordVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/GetUnreadPointAccountRecordVo.java new file mode 100644 index 0000000..aec834e --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/pointaccount/user/response/GetUnreadPointAccountRecordVo.java @@ -0,0 +1,32 @@ +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 GetUnreadPointAccountRecordVo { + + @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/application/handler/pointaccount/PointAccountEventHandler.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/pointaccount/PointAccountEventHandler.java index 44323f7..608f7b8 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/pointaccount/PointAccountEventHandler.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/pointaccount/PointAccountEventHandler.java @@ -2,7 +2,7 @@ package com.qniao.dam.application.handler.pointaccount; import com.qniao.dam.domain.aggregate.pointaccount.PointAccountAggregate; import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; -import com.qniao.dam.domain.aggregate.pointaccount.valueobj.PointAccountRecord; +import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccountRecord; import com.qniao.dam.domain.aggregate.prc.entity.PointRewardConfig; import com.qniao.dam.domian.aggregate.pointaccount.event.PointRewardCreatedMQ; import com.qniao.dam.infrastructure.constant.MqExchange; 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 index a6510c1..050caaf 100644 --- 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 @@ -1,7 +1,8 @@ package com.qniao.dam.infrastructure.persistent.dao.par; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.qniao.dam.domain.aggregate.pointaccount.valueobj.PointAccountRecord; +import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccountRecord; +import org.apache.ibatis.annotations.Param; /** * 积分账户记录 @@ -9,4 +10,5 @@ import com.qniao.dam.domain.aggregate.pointaccount.valueobj.PointAccountRecord; * @date 2024/12/23 */ public interface PointAccountRecordDao extends BaseMapper { + void updateIsRead(@Param("pointAccountId") Long pointAccountId); } 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 0f547b7..de1d82c 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 @@ -2,6 +2,7 @@ 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.GetUnreadPointAccountRecordVo; 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; @@ -14,4 +15,6 @@ public interface PointAccountQueryService { PointAccount queryByType(Long ownId, IdentityTypeEnum identityType); IPage pagePointAccountRecord(PagePointAccountRecordQueryParams queryParams, PageUtil pageUtil); + + GetUnreadPointAccountRecordVo getUnreadPointAccountRecord(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 index a3a54dc..0c7fafe 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,14 +1,19 @@ package com.qniao.dam.query.pointaccount.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.GetUnreadPointAccountRecordVo; import com.qniao.dam.api.query.pointaccount.user.response.PagePointAccountRecordVo; import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccount; +import com.qniao.dam.domain.aggregate.pointaccount.entity.PointAccountRecord; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; +import com.qniao.dam.infrastructure.persistent.dao.par.PointAccountRecordDao; import com.qniao.dam.infrastructure.persistent.dao.pointaccount.PointAccountDao; import com.qniao.dam.query.pointaccount.PointAccountQueryService; import com.qniao.framework.utils.PageUtil; +import com.qniao.framework.utils.TypeConvertUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -19,6 +24,8 @@ public class PointAccountQueryServiceImpl implements PointAccountQueryService { @Resource private PointAccountDao pointAccountDao; + @Resource + private PointAccountRecordDao pointAccountRecordDao; @Override public PointAccount queryByUserId(Long userId) { @@ -58,4 +65,22 @@ public class PointAccountQueryServiceImpl implements PointAccountQueryService { return pointAccountDao.pagePointAccountRecord(pageUtil.toPageWithoutOrders(), queryParams); } + @Override + public GetUnreadPointAccountRecordVo getUnreadPointAccountRecord(Long userId) { + GetUnreadPointAccountRecordVo recordVo = null; + PointAccount pointAccount = queryByUserId(userId); + if (Objects.isNull(pointAccount.getId())) { + PointAccountRecord pointAccountRecord = pointAccountRecordDao.selectOne(new LambdaQueryWrapper() + .eq(PointAccountRecord::getPointAccountId, pointAccount.getId()) + .eq(PointAccountRecord::getIsRead, false) + .orderByDesc(PointAccountRecord::getCreateTime) + .last("limit 1")); + if (Objects.nonNull(pointAccountRecord)) { + recordVo = TypeConvertUtils.convert(pointAccountRecord, GetUnreadPointAccountRecordVo.class); + pointAccountRecordDao.updateIsRead(pointAccount.getId()); + } + } + return recordVo; + } + } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/resources/mapper/par/PointAccountRecordMapper.xml b/dating-agency-mall-server/src/main/resources/mapper/par/PointAccountRecordMapper.xml new file mode 100644 index 0000000..cfc9692 --- /dev/null +++ b/dating-agency-mall-server/src/main/resources/mapper/par/PointAccountRecordMapper.xml @@ -0,0 +1,13 @@ + + + + + + UPDATE da_point_account_record + set is_read=1 + where is_delete = 0 + and is_read = 0 + and point_account_id = #{pointAccountId} + + + \ 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 index cab74cb..21948ff 100644 --- a/dating-agency-mall-server/src/main/resources/mapper/pointaccount/PointAccountMapper.xml +++ b/dating-agency-mall-server/src/main/resources/mapper/pointaccount/PointAccountMapper.xml @@ -14,7 +14,7 @@ dapar.current_points from da_point_account_record as dapar INNER JOIN da_point_account as dapa on dapa.is_delete=0 and dapar.point_account_id=dapa.id - where 1=1 + where dapar.is_delete=0 AND dapa.user_id = #{queryParams.queryUserId} From a77b44e9a8fb176f4672bdd90ada5ac7b66930c4 Mon Sep 17 00:00:00 2001 From: Derran Date: Thu, 26 Dec 2024 15:10:16 +0800 Subject: [PATCH 17/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reward/RewardApplicationService.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java index e558baf..f093c8d 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java @@ -5,12 +5,16 @@ import cn.hutool.core.util.StrUtil; import com.qniao.dam.api.command.reward.user.request.AcquireMatchmakerConfirmMatchRewardDto; import com.qniao.dam.api.command.reward.user.request.AcquireMatchmakerConfirmMeetingRewardDto; import com.qniao.dam.api.command.reward.user.request.UserAcquireMatchmakerJoinRecommendRewardDto; +import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrder; import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward; import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardAssociateOrderRecord; import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardRecord; import com.qniao.dam.domain.service.revenuereward.AcquireRevenueRewardDomainService; +import com.qniao.dam.domian.aggregate.pointaccount.event.PointRewardCreatedMQ; +import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; +import com.qniao.dam.infrastructure.constant.MqExchange; import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao; import com.qniao.dam.infrastructure.persistent.dao.domain.OrderDao; import com.qniao.dam.query.matchmaker.MatchmakerQueryService; @@ -29,6 +33,7 @@ import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation; import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker; import com.qniao.dau.domain.aggregate.store.entity.Store; +import org.springframework.amqp.core.AmqpTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -58,6 +63,8 @@ public class RewardApplicationService { private MatchmakerQueryService matchmakerQueryService; @Resource private StoreQueryService storeQueryService; + @Resource + private AmqpTemplate amqpTemplate; /** * 获得红娘推荐奖励 @@ -96,6 +103,18 @@ public class RewardApplicationService { WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, revenue, true, originalBalance, walletAccount.getTotalBalance()); walletAccount.setRecordList(Collections.singletonList(record)); acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); + + //积分奖励 + PointRewardCreatedMQ mq = new PointRewardCreatedMQ(); + mq.setOwnId(dto.getInitiatorUserId()); + mq.setIdentityType(IdentityTypeEnum.INDIVIDUAL); + mq.setPointType(PointRewardConfigTypeEnum.INVITE_MATCHMAKER); + mq.setContent("邀请红娘:" + dto.getReceiveUserName()); + mq.setIsIncome(true); + mq.setAssociateId(dto.getAssociateOrderId()); + mq.setAmount(rewardAmount); + // 发送mq事件 + amqpTemplate.convertAndSend(MqExchange.POINT_REWARD_CREATED, null, mq); } } } From 83a11ce55b833734fb53b91ed2660fa496fdfa71 Mon Sep 17 00:00:00 2001 From: Derran Date: Thu, 26 Dec 2024 16:25:03 +0800 Subject: [PATCH 18/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../query/rewardconfig/impl/RewardConfigQueryServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java index 7f782bf..049a663 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java @@ -123,7 +123,7 @@ public class RewardConfigQueryServiceImpl implements RewardConfigQueryService { MatchmakerLevelEnum receiveLevel) { BigDecimal pct = BigDecimal.ZERO; if (Objects.nonNull(initiatorLevel) && Objects.nonNull(receiveLevel)) { - int diffValue = initiatorLevel.getLevel() - receiveLevel.getValue(); + int diffValue = initiatorLevel.getLevel() - receiveLevel.getLevel(); RewardConfig equalLevelConfig = queryByRewardType(RewardTypeEnum.MATCHMAKER_JOIN_RECOMMEND_EQUAL_LEVEL); if (Objects.nonNull(equalLevelConfig)) { //平级推荐 From 93884dea1f46a97836d55d670f7eba06b7302c7f Mon Sep 17 00:00:00 2001 From: Derran Date: Thu, 26 Dec 2024 17:33:34 +0800 Subject: [PATCH 19/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/marriagebounty/MarriageBountyOrderEventHandle.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java index 7cd1321..760fddc 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java @@ -166,7 +166,7 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService { mq.setContent("完成榜单:" + marriageInformation.getNickName() + "榜单"); mq.setIsIncome(true); mq.setAssociateId(event.getId()); - mq.setAmount(marriageBountyOrder.getPaidAmount()); + mq.setAmount(rewardReceiveRecordEvent.getReceivedAmount()); // 发送mq事件 amqpTemplate.convertAndSend(MqExchange.POINT_REWARD_CREATED, null, mq); } From b7afe8fa05e704a7ba74ee2561eeef571e1faa25 Mon Sep 17 00:00:00 2001 From: Derran Date: Fri, 27 Dec 2024 11:37:24 +0800 Subject: [PATCH 20/20] =?UTF-8?q?=E7=A7=AF=E5=88=86=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../query/pointaccount/impl/PointAccountQueryServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 0c7fafe..2ad45e0 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 @@ -69,7 +69,7 @@ public class PointAccountQueryServiceImpl implements PointAccountQueryService { public GetUnreadPointAccountRecordVo getUnreadPointAccountRecord(Long userId) { GetUnreadPointAccountRecordVo recordVo = null; PointAccount pointAccount = queryByUserId(userId); - if (Objects.isNull(pointAccount.getId())) { + if (Objects.nonNull(pointAccount.getId())) { PointAccountRecord pointAccountRecord = pointAccountRecordDao.selectOne(new LambdaQueryWrapper() .eq(PointAccountRecord::getPointAccountId, pointAccount.getId()) .eq(PointAccountRecord::getIsRead, false)