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 new file mode 100644 index 0000000..19f19d1 --- /dev/null +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java @@ -0,0 +1,34 @@ +package com.qniao.dam.domian.aggregate.rewardconfig.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 RewardTypeEnum { + + MATCHMAKER_JOIN_RECOMMEND(1, "红娘入驻推荐"); + + @EnumValue + @JsonValue + private final Integer value; + private final String desc; + + RewardTypeEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @JsonCreator + public static RewardTypeEnum get(Object code) { + for (RewardTypeEnum e : RewardTypeEnum.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/rewardconfig/entity/RewardConfig.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/entity/RewardConfig.java new file mode 100644 index 0000000..8c4f1aa --- /dev/null +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/entity/RewardConfig.java @@ -0,0 +1,22 @@ +package com.qniao.dam.domain.aggregate.rewardconfig.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; +import com.qniao.domain.Entity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("da_reward_config") +public class RewardConfig extends Entity { + + @ApiModelProperty("奖励类型") + private RewardTypeEnum rewardType; + + @ApiModelProperty("奖励金额") + private BigDecimal rewardAmount; +} diff --git a/dating-agency-mall-server/pom.xml b/dating-agency-mall-server/pom.xml index 98729a5..71430fa 100644 --- a/dating-agency-mall-server/pom.xml +++ b/dating-agency-mall-server/pom.xml @@ -72,6 +72,11 @@ weixin-java-pay 3.3.4.B + + com.github.wechatpay-apiv3 + wechatpay-apache-httpclient + 0.4.9 + com.qniao dating-agency-mall-event diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rewardconfig/user/RewardConfigUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rewardconfig/user/RewardConfigUserCommandController.java new file mode 100644 index 0000000..95b0486 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rewardconfig/user/RewardConfigUserCommandController.java @@ -0,0 +1,28 @@ +package com.qniao.dam.api.command.rewardconfig.user; + +import com.qniao.dam.api.command.rewardconfig.user.request.UserEditRewardConfigDto; +import com.qniao.dam.application.service.rewardconfig.RewardConfigApplicationService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +@RestController +@RequestMapping("user") +@Api(tags = "奖励配置") +public class RewardConfigUserCommandController { + + @Resource + private RewardConfigApplicationService rewardConfigApplicationService; + + @ApiOperation("修改奖励配置") + @PostMapping("edit/reward-config") + public void userEditRewardConfig(@RequestBody @Valid UserEditRewardConfigDto dto) { + rewardConfigApplicationService.edit(dto.trans2Domain()); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rewardconfig/user/request/UserEditRewardConfigDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rewardconfig/user/request/UserEditRewardConfigDto.java new file mode 100644 index 0000000..8bec572 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rewardconfig/user/request/UserEditRewardConfigDto.java @@ -0,0 +1,30 @@ +package com.qniao.dam.api.command.rewardconfig.user.request; + +import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; +import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; +import com.qniao.domain.Trans2DomainAssembler; +import com.qniao.framework.utils.TypeConvertUtils; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +@Data +public class UserEditRewardConfigDto implements Trans2DomainAssembler { + + @ApiModelProperty("唯一标识") + @NotNull + private Long id; + + @ApiModelProperty("奖励类型") + private RewardTypeEnum rewardType; + + @ApiModelProperty("奖励金额") + private BigDecimal rewardAmount; + + @Override + public RewardConfig trans2Domain() { + return TypeConvertUtils.convert(this, RewardConfig.class); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rewardconfig/user/RewardConfigUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rewardconfig/user/RewardConfigUserQueryController.java new file mode 100644 index 0000000..272219a --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rewardconfig/user/RewardConfigUserQueryController.java @@ -0,0 +1,29 @@ +package com.qniao.dam.api.query.rewardconfig.user; + +import com.qniao.dam.api.query.rewardconfig.user.request.UserGetRewardConfigDetailQueryParams; +import com.qniao.dam.api.query.rewardconfig.user.response.UserGetRewardConfigDetailVo; +import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; +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; + +@RestController +@RequestMapping("user") +@Api(tags = "奖励配置") +public class RewardConfigUserQueryController { + + @Resource + private RewardConfigQueryService rewardConfigQueryService; + + @GetMapping("get/reward-config-detail") + @ApiOperation("客户获取奖励配置") + public UserGetRewardConfigDetailVo useGetRewardConfigDetail(@RequestParam UserGetRewardConfigDetailQueryParams queryParams) { + return rewardConfigQueryService.getRewardConfigDetail(queryParams); + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rewardconfig/user/request/UserGetRewardConfigDetailQueryParams.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rewardconfig/user/request/UserGetRewardConfigDetailQueryParams.java new file mode 100644 index 0000000..cec4b4d --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rewardconfig/user/request/UserGetRewardConfigDetailQueryParams.java @@ -0,0 +1,16 @@ +package com.qniao.dam.api.query.rewardconfig.user.request; + +import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserGetRewardConfigDetailQueryParams { + + @ApiModelProperty("唯一标识") + private Long id; + + @ApiModelProperty("奖励类型") + private RewardTypeEnum rewardType; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rewardconfig/user/response/UserGetRewardConfigDetailVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rewardconfig/user/response/UserGetRewardConfigDetailVo.java new file mode 100644 index 0000000..8e59769 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rewardconfig/user/response/UserGetRewardConfigDetailVo.java @@ -0,0 +1,24 @@ +package com.qniao.dam.api.query.rewardconfig.user.response; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class UserGetRewardConfigDetailVo { + + @ApiModelProperty("唯一标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + @ApiModelProperty("奖励类型") + private RewardTypeEnum rewardType; + + @ApiModelProperty("奖励金额") + private BigDecimal rewardAmount; +} + diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rewardconfig/RewardConfigApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rewardconfig/RewardConfigApplicationService.java new file mode 100644 index 0000000..f46ae6d --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rewardconfig/RewardConfigApplicationService.java @@ -0,0 +1,18 @@ +package com.qniao.dam.application.service.rewardconfig; + +import com.qniao.dam.domain.aggregate.rewardconfig.RewardConfigAggregate; +import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class RewardConfigApplicationService { + + @Resource + private RewardConfigAggregate rewardConfigAggregate; + + public void edit(RewardConfig rewardConfig) { + rewardConfigAggregate.edit(rewardConfig); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/RewardConfigAggregate.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/RewardConfigAggregate.java new file mode 100644 index 0000000..6dc71f8 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/RewardConfigAggregate.java @@ -0,0 +1,18 @@ +package com.qniao.dam.domain.aggregate.rewardconfig; + +import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; +import com.qniao.dam.domain.aggregate.rewardconfig.repository.RewardConfigRepository; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class RewardConfigAggregate { + + @Resource + private RewardConfigRepository rewardConfigRepository; + + public void edit(RewardConfig rewardConfig) { + rewardConfigRepository.save(rewardConfig); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/repository/RewardConfigRepository.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/repository/RewardConfigRepository.java new file mode 100644 index 0000000..797be12 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rewardconfig/repository/RewardConfigRepository.java @@ -0,0 +1,7 @@ +package com.qniao.dam.domain.aggregate.rewardconfig.repository; + +import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; +import com.qniao.domain.Repository; + +public interface RewardConfigRepository extends Repository { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/RewardConfigDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/RewardConfigDao.java new file mode 100644 index 0000000..a564f27 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/RewardConfigDao.java @@ -0,0 +1,7 @@ +package com.qniao.dam.infrastructure.persistent.dao.domain; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; + +public interface RewardConfigDao extends BaseMapper { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/RewardConfigViewDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/RewardConfigViewDao.java new file mode 100644 index 0000000..adfeb66 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/RewardConfigViewDao.java @@ -0,0 +1,11 @@ +package com.qniao.dam.infrastructure.persistent.dao.view; + +import com.qniao.dam.api.query.rewardconfig.user.request.UserGetRewardConfigDetailQueryParams; +import com.qniao.dam.api.query.rewardconfig.user.response.UserGetRewardConfigDetailVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface RewardConfigViewDao { + UserGetRewardConfigDetailVo getRewardConfigDetail(@Param("queryParams") UserGetRewardConfigDetailQueryParams queryParams); +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RewardConfigRepositoryImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RewardConfigRepositoryImpl.java new file mode 100644 index 0000000..2cec13b --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RewardConfigRepositoryImpl.java @@ -0,0 +1,31 @@ +package com.qniao.dam.infrastructure.persistent.repository.impl; + +import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; +import com.qniao.dam.domain.aggregate.rewardconfig.repository.RewardConfigRepository; +import com.qniao.dam.infrastructure.persistent.dao.domain.RewardConfigDao; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +@Service +public class RewardConfigRepositoryImpl implements RewardConfigRepository { + + @Resource + private RewardConfigDao rewardConfigDao; + + @Override + public RewardConfig load(Long id) { + return rewardConfigDao.selectById(id); + } + + @Override + public Long save(RewardConfig entity) { + if (Objects.isNull(entity.getId()) || Objects.isNull(rewardConfigDao.selectById(entity.getId()))) { + rewardConfigDao.insert(entity); + } else { + rewardConfigDao.updateById(entity); + } + return entity.getId(); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/RewardConfigQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/RewardConfigQueryService.java new file mode 100644 index 0000000..02d056d --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/RewardConfigQueryService.java @@ -0,0 +1,8 @@ +package com.qniao.dam.query.rewardconfig; + +import com.qniao.dam.api.query.rewardconfig.user.request.UserGetRewardConfigDetailQueryParams; +import com.qniao.dam.api.query.rewardconfig.user.response.UserGetRewardConfigDetailVo; + +public interface RewardConfigQueryService { + UserGetRewardConfigDetailVo getRewardConfigDetail(UserGetRewardConfigDetailQueryParams queryParams); +} 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 new file mode 100644 index 0000000..11eff26 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rewardconfig/impl/RewardConfigQueryServiceImpl.java @@ -0,0 +1,22 @@ +package com.qniao.dam.query.rewardconfig.impl; + +import com.qniao.dam.api.query.rewardconfig.user.request.UserGetRewardConfigDetailQueryParams; +import com.qniao.dam.api.query.rewardconfig.user.response.UserGetRewardConfigDetailVo; +import com.qniao.dam.infrastructure.persistent.dao.domain.RewardConfigDao; +import com.qniao.dam.infrastructure.persistent.dao.view.RewardConfigViewDao; +import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class RewardConfigQueryServiceImpl implements RewardConfigQueryService { + + @Resource + private RewardConfigViewDao rewardConfigViewDao; + + @Override + public UserGetRewardConfigDetailVo getRewardConfigDetail(UserGetRewardConfigDetailQueryParams queryParams) { + return rewardConfigViewDao.getRewardConfigDetail(queryParams); + } +} diff --git a/dating-agency-mall-server/src/main/resources/mapper/rewardconfig/RewardConfigViewMapper.xml b/dating-agency-mall-server/src/main/resources/mapper/rewardconfig/RewardConfigViewMapper.xml new file mode 100644 index 0000000..9d235c8 --- /dev/null +++ b/dating-agency-mall-server/src/main/resources/mapper/rewardconfig/RewardConfigViewMapper.xml @@ -0,0 +1,20 @@ + + + + + +