diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rpa/constant/RafflePrizeActivityConditionEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rpa/constant/RafflePrizeActivityConditionEnum.java new file mode 100644 index 0000000..67f73c5 --- /dev/null +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rpa/constant/RafflePrizeActivityConditionEnum.java @@ -0,0 +1,43 @@ +package com.qniao.dam.domian.aggregate.rpa.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; + +/** + * @author Zpj + * @date 2025/1/13 + */ +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum RafflePrizeActivityConditionEnum { + + /** + * 红娘入驻邀请 + */ + MATCHMAKER_JOIN_RECOMMEND(1, "红娘入驻邀请"); + + @EnumValue + @JsonValue + private final Integer value; + + private final String desc; + + RafflePrizeActivityConditionEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @JsonCreator + public static RafflePrizeActivityConditionEnum get(Integer v) { + + for (RafflePrizeActivityConditionEnum e : RafflePrizeActivityConditionEnum.values()) { + if (e.getValue().equals(v)) { + return e; + } + } + return null; + } +} diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rpa/entity/RafflePrizeActivity.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rpa/entity/RafflePrizeActivity.java new file mode 100644 index 0000000..0e590e3 --- /dev/null +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rpa/entity/RafflePrizeActivity.java @@ -0,0 +1,41 @@ +package com.qniao.dam.domain.aggregate.rpa.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.qniao.dam.domian.aggregate.rpa.constant.RafflePrizeActivityConditionEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.qniao.domain.Entity; + +import java.time.LocalDateTime; + +/** + * 抽奖奖品活动 + * + * @date 2025/01/13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("da_raffle_prize_activity") +public class RafflePrizeActivity extends Entity { + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("开始时间") + private LocalDateTime startTime; + + @ApiModelProperty("结束时间") + private LocalDateTime endTime; + + @ApiModelProperty("活动说明") + private String description; + + @ApiModelProperty("参加条件") + private RafflePrizeActivityConditionEnum condition; + + @ApiModelProperty("启用状态") + private Boolean enable; + + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/RafflePrizeActivityUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/RafflePrizeActivityUserCommandController.java new file mode 100644 index 0000000..36e353c --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/RafflePrizeActivityUserCommandController.java @@ -0,0 +1,47 @@ +package com.qniao.dam.api.command.rpa.user; + +import com.qniao.dam.api.command.rpa.user.request.*; +import com.qniao.dam.application.service.rpa.RafflePrizeActivityApplicationService; +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 RafflePrizeActivityUserCommandController { + + @Resource + private RafflePrizeActivityApplicationService rafflePrizeActivityApplicationService; + + @ApiOperation("用户创建抽奖奖品活动") + @PostMapping("create/raffle-prize-activity") + public void userCreateRafflePrizeActivity(@RequestBody @Valid UserCreateRafflePrizeActivityDto dto, + @RequestParam("userId") Long userId) { + rafflePrizeActivityApplicationService.create(dto.trans2Domain()); + } + + @ApiOperation("用户编辑抽奖奖品活动") + @PostMapping("edit/raffle-prize-activity") + public void userEditRafflePrizeActivity(@RequestBody @Valid UserEditRafflePrizeActivityDto dto, + @RequestParam("userId") Long userId) { + rafflePrizeActivityApplicationService.edit(dto.trans2Domain()); + } + + @ApiOperation("用户删除抽奖奖品活动") + @PostMapping("delete/raffle-prize-activity") + public void userDeleteRafflePrizeActivity(@RequestBody @Valid UserDeleteRafflePrizeActivityDto dto, + @RequestParam("userId") Long userId) { + rafflePrizeActivityApplicationService.delete(dto.getId()); + } + + @ApiOperation("用户启停抽奖奖品活动") + @PostMapping("enable/raffle-prize-activity") + public void userEnableRafflePrizeActivity(@RequestBody @Valid UserEnableRafflePrizeActivityDto dto, + @RequestParam("userId") Long userId) { + rafflePrizeActivityApplicationService.enable(dto.getId()); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/request/UserCreateRafflePrizeActivityDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/request/UserCreateRafflePrizeActivityDto.java new file mode 100644 index 0000000..b833809 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/request/UserCreateRafflePrizeActivityDto.java @@ -0,0 +1,37 @@ +package com.qniao.dam.api.command.rpa.user.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.qniao.dam.domain.aggregate.rpa.entity.RafflePrizeActivity; +import com.qniao.dam.domian.aggregate.rpa.constant.RafflePrizeActivityConditionEnum; +import com.qniao.domain.Trans2DomainAssembler; +import io.swagger.annotations.ApiModelProperty; +import com.qniao.framework.utils.TypeConvertUtils; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class UserCreateRafflePrizeActivityDto implements Trans2DomainAssembler { + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + @ApiModelProperty("结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + + @ApiModelProperty("活动说明") + private String description; + + @ApiModelProperty("参加条件") + private RafflePrizeActivityConditionEnum condition; + + @Override + public RafflePrizeActivity trans2Domain() { + return TypeConvertUtils.convert(this, RafflePrizeActivity.class); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/request/UserDeleteRafflePrizeActivityDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/request/UserDeleteRafflePrizeActivityDto.java new file mode 100644 index 0000000..e9abdc1 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/request/UserDeleteRafflePrizeActivityDto.java @@ -0,0 +1,12 @@ +package com.qniao.dam.api.command.rpa.user.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserDeleteRafflePrizeActivityDto { + + @ApiModelProperty("唯一标识") + private Long id; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/request/UserEditRafflePrizeActivityDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/request/UserEditRafflePrizeActivityDto.java new file mode 100644 index 0000000..87b3992 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/request/UserEditRafflePrizeActivityDto.java @@ -0,0 +1,43 @@ +package com.qniao.dam.api.command.rpa.user.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.qniao.dam.domain.aggregate.rpa.entity.RafflePrizeActivity; +import com.qniao.dam.domian.aggregate.rpa.constant.RafflePrizeActivityConditionEnum; +import com.qniao.domain.Trans2DomainAssembler; +import io.swagger.annotations.ApiModelProperty; +import com.qniao.framework.utils.TypeConvertUtils; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +@Data +public class UserEditRafflePrizeActivityDto implements Trans2DomainAssembler { + + + @ApiModelProperty("唯一标识") + @NotNull + private Long id; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + @ApiModelProperty("结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + + @ApiModelProperty("活动说明") + private String description; + + @ApiModelProperty("参加条件") + private RafflePrizeActivityConditionEnum condition; + + @Override + public RafflePrizeActivity trans2Domain() { + return TypeConvertUtils.convert(this, RafflePrizeActivity.class); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/request/UserEnableRafflePrizeActivityDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/request/UserEnableRafflePrizeActivityDto.java new file mode 100644 index 0000000..b7d0ff6 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpa/user/request/UserEnableRafflePrizeActivityDto.java @@ -0,0 +1,15 @@ +package com.qniao.dam.api.command.rpa.user.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Zpj + * @date 2025/1/13 + */ +@Data +public class UserEnableRafflePrizeActivityDto { + @ApiModelProperty("唯一标识") + private Long id; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rpa/RafflePrizeActivityApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rpa/RafflePrizeActivityApplicationService.java new file mode 100644 index 0000000..7000fff --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rpa/RafflePrizeActivityApplicationService.java @@ -0,0 +1,39 @@ +package com.qniao.dam.application.service.rpa; + +import com.qniao.dam.domain.aggregate.rpa.RafflePrizeActivityAggregate; +import com.qniao.dam.domain.aggregate.rpa.entity.RafflePrizeActivity; +import com.qniao.dam.infrastructure.persistent.dao.rpa.RafflePrizeActivityDao; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +@Service +public class RafflePrizeActivityApplicationService { + + @Resource + private RafflePrizeActivityAggregate rafflePrizeActivityAggregate; + @Resource + private RafflePrizeActivityDao rafflePrizeActivityDao; + + public void create(RafflePrizeActivity rafflePrizeActivity) { + rafflePrizeActivity.setEnable(false); + rafflePrizeActivityAggregate.create(rafflePrizeActivity); + } + + public void edit(RafflePrizeActivity rafflePrizeActivity) { + rafflePrizeActivityAggregate.edit(rafflePrizeActivity); + } + + public void delete(Long id) { + rafflePrizeActivityAggregate.delete(id); + } + + public void enable(Long id) { + RafflePrizeActivity rafflePrizeActivity = rafflePrizeActivityDao.selectById(id); + if (Objects.nonNull(rafflePrizeActivity)) { + rafflePrizeActivity.setEnable(!rafflePrizeActivity.getEnable()); + rafflePrizeActivityAggregate.edit(rafflePrizeActivity); + } + } +} \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpa/RafflePrizeActivityAggregate.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpa/RafflePrizeActivityAggregate.java new file mode 100644 index 0000000..8e0e673 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpa/RafflePrizeActivityAggregate.java @@ -0,0 +1,31 @@ +package com.qniao.dam.domain.aggregate.rpa; + +import com.qniao.dam.domain.aggregate.rpa.entity.RafflePrizeActivity; +import com.qniao.dam.domain.aggregate.rpa.repository.RafflePrizeActivityRepository; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 抽奖奖品活动 + * + * @date 2025/01/13 + */ +@Service +public class RafflePrizeActivityAggregate { + + @Resource + private RafflePrizeActivityRepository repository; + + public void create(RafflePrizeActivity entity) { + repository.save(entity); + } + + public void edit(RafflePrizeActivity 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/rpa/repository/RafflePrizeActivityRepository.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpa/repository/RafflePrizeActivityRepository.java new file mode 100644 index 0000000..92ac553 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpa/repository/RafflePrizeActivityRepository.java @@ -0,0 +1,12 @@ +package com.qniao.dam.domain.aggregate.rpa.repository; + +import com.qniao.dam.domain.aggregate.rpa.entity.RafflePrizeActivity; +import com.qniao.domain.Repository; + +/** + * 抽奖奖品活动 + * + * @date 2025/01/13 + */ +public interface RafflePrizeActivityRepository extends Repository { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/rpa/RafflePrizeActivityDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/rpa/RafflePrizeActivityDao.java new file mode 100644 index 0000000..b8b8b3f --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/rpa/RafflePrizeActivityDao.java @@ -0,0 +1,12 @@ +package com.qniao.dam.infrastructure.persistent.dao.rpa; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qniao.dam.domain.aggregate.rpa.entity.RafflePrizeActivity; + +/** + * 抽奖奖品活动 + * + * @date 2025/01/13 + */ +public interface RafflePrizeActivityDao extends BaseMapper { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RafflePrizeActivityRepositoryImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RafflePrizeActivityRepositoryImpl.java new file mode 100644 index 0000000..753143e --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RafflePrizeActivityRepositoryImpl.java @@ -0,0 +1,41 @@ +package com.qniao.dam.infrastructure.persistent.repository.impl; + +import com.qniao.dam.domain.aggregate.rpa.entity.RafflePrizeActivity; +import com.qniao.dam.domain.aggregate.rpa.repository.RafflePrizeActivityRepository; +import com.qniao.dam.infrastructure.persistent.dao.rpa.RafflePrizeActivityDao; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +/** + * 抽奖奖品活动 + * + * @date 2025/01/13 + */ +@Service +public class RafflePrizeActivityRepositoryImpl implements RafflePrizeActivityRepository { + + @Resource + private RafflePrizeActivityDao dao; + + @Override + public RafflePrizeActivity load(Long id) { + return dao.selectById(id); + } + + @Override + public Long save(RafflePrizeActivity 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/rpa/RafflePrizeActivityQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpa/RafflePrizeActivityQueryService.java new file mode 100644 index 0000000..2d33911 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpa/RafflePrizeActivityQueryService.java @@ -0,0 +1,5 @@ +package com.qniao.dam.query.rpa; + +public interface RafflePrizeActivityQueryService { + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpa/impl/RafflePrizeActivityQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpa/impl/RafflePrizeActivityQueryServiceImpl.java new file mode 100644 index 0000000..dac1367 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpa/impl/RafflePrizeActivityQueryServiceImpl.java @@ -0,0 +1,9 @@ +package com.qniao.dam.query.rpa.impl; + +import com.qniao.dam.query.rpa.RafflePrizeActivityQueryService; +import org.springframework.stereotype.Service; + +@Service +public class RafflePrizeActivityQueryServiceImpl implements RafflePrizeActivityQueryService { + +} \ No newline at end of file