diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/odc/entity/OrderDiscountConfig.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/odc/entity/OrderDiscountConfig.java new file mode 100644 index 0000000..c0c5382 --- /dev/null +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/odc/entity/OrderDiscountConfig.java @@ -0,0 +1,36 @@ +package com.qniao.dam.domain.aggregate.odc.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.qniao.domain.Entity; +import java.math.BigDecimal; + +/** + * 订单优惠配置 + * + * @date 2024/12/07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("da_order_discount_config") +public class OrderDiscountConfig extends Entity { + + + @ApiModelProperty("手机号码") + private String phone; + + @ApiModelProperty("产品次分类") + private ProductSubCategoryEnum subCategory; + + @ApiModelProperty("折扣金额") + private BigDecimal discountAmount; + + @ApiModelProperty("启用") + private Boolean enable; + + @ApiModelProperty("备注") + private String remark; +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/OrderDiscountConfigUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/OrderDiscountConfigUserCommandController.java new file mode 100644 index 0000000..1a87369 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/OrderDiscountConfigUserCommandController.java @@ -0,0 +1,43 @@ +package com.qniao.dam.api.command.odc.user; + +import com.qniao.dam.api.command.odc.user.request.*; +import com.qniao.dam.application.service.odc.OrderDiscountConfigApplicationService; +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 OrderDiscountConfigUserCommandController { + + @Resource + private OrderDiscountConfigApplicationService orderDiscountConfigApplicationService; + + @ApiOperation("用户创建订单优惠配置") + @PostMapping("create/order-discount-config") + public void userCreateOrderDiscountConfig(@RequestBody @Valid UserCreateOrderDiscountConfigDto dto) { + orderDiscountConfigApplicationService.create(dto.trans2Domain()); + } + + @ApiOperation("用户编辑订单优惠配置") + @PostMapping("edit/order-discount-config") + public void userEditOrderDiscountConfig(@RequestBody @Valid UserEditOrderDiscountConfigDto dto) { + orderDiscountConfigApplicationService.edit(dto.trans2Domain()); + } + + @ApiOperation("用户删除订单优惠配置") + @PostMapping("delete/order-discount-config") + public void userDeleteOrderDiscountConfig(@RequestBody @Valid UserDeleteOrderDiscountConfigDto dto) { + orderDiscountConfigApplicationService.delete(dto.getId()); + } + + @ApiOperation("用户启停订单优惠配置") + @PostMapping("enable/order-discount-config") + public void userEnableOrderDiscountConfig(@RequestBody @Valid UserEnableOrderDiscountConfigDto dto) { + orderDiscountConfigApplicationService.enable(dto.getId()); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/request/UserCreateOrderDiscountConfigDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/request/UserCreateOrderDiscountConfigDto.java new file mode 100644 index 0000000..f4413cd --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/request/UserCreateOrderDiscountConfigDto.java @@ -0,0 +1,33 @@ +package com.qniao.dam.api.command.odc.user.request; + +import com.qniao.dam.domain.aggregate.odc.entity.OrderDiscountConfig; +import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; +import com.qniao.domain.Trans2DomainAssembler; +import io.swagger.annotations.ApiModelProperty; +import com.qniao.framework.utils.TypeConvertUtils; +import java.math.BigDecimal; +import lombok.Data; + +@Data +public class UserCreateOrderDiscountConfigDto implements Trans2DomainAssembler { + + @ApiModelProperty("手机号码") + private String phone; + + @ApiModelProperty("产品次分类") + private ProductSubCategoryEnum subCategory; + + @ApiModelProperty("折扣金额") + private BigDecimal discountAmount; + + @ApiModelProperty("启用") + private Boolean enable; + + @ApiModelProperty("备注") + private String remark; + + @Override + public OrderDiscountConfig trans2Domain() { + return TypeConvertUtils.convert(this, OrderDiscountConfig.class); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/request/UserDeleteOrderDiscountConfigDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/request/UserDeleteOrderDiscountConfigDto.java new file mode 100644 index 0000000..21d0b5d --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/request/UserDeleteOrderDiscountConfigDto.java @@ -0,0 +1,12 @@ +package com.qniao.dam.api.command.odc.user.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserDeleteOrderDiscountConfigDto { + + @ApiModelProperty("唯一标识") + private Long id; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/request/UserEditOrderDiscountConfigDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/request/UserEditOrderDiscountConfigDto.java new file mode 100644 index 0000000..d6e01d3 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/request/UserEditOrderDiscountConfigDto.java @@ -0,0 +1,39 @@ +package com.qniao.dam.api.command.odc.user.request; + +import com.qniao.dam.domain.aggregate.odc.entity.OrderDiscountConfig; +import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; +import com.qniao.domain.Trans2DomainAssembler; +import io.swagger.annotations.ApiModelProperty; +import com.qniao.framework.utils.TypeConvertUtils; + +import java.math.BigDecimal; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class UserEditOrderDiscountConfigDto implements Trans2DomainAssembler { + + + @ApiModelProperty("唯一标识") + @NotNull(message = "唯一标识不能为空") + private Long id; + + @ApiModelProperty("手机号码") + private String phone; + + @ApiModelProperty("产品次分类") + private ProductSubCategoryEnum subCategory; + + @ApiModelProperty("折扣金额") + private BigDecimal discountAmount; + + @ApiModelProperty("备注") + private String remark; + + @Override + public OrderDiscountConfig trans2Domain() { + return TypeConvertUtils.convert(this, OrderDiscountConfig.class); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/request/UserEnableOrderDiscountConfigDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/request/UserEnableOrderDiscountConfigDto.java new file mode 100644 index 0000000..8933935 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/odc/user/request/UserEnableOrderDiscountConfigDto.java @@ -0,0 +1,12 @@ +package com.qniao.dam.api.command.odc.user.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserEnableOrderDiscountConfigDto { + + @ApiModelProperty("唯一标识") + private Long id; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/odc/OrderDiscountConfigApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/odc/OrderDiscountConfigApplicationService.java new file mode 100644 index 0000000..0539e0c --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/odc/OrderDiscountConfigApplicationService.java @@ -0,0 +1,39 @@ +package com.qniao.dam.application.service.odc; + +import com.qniao.dam.domain.aggregate.odc.OrderDiscountConfigAggregate; +import com.qniao.dam.domain.aggregate.odc.entity.OrderDiscountConfig; +import com.qniao.dam.domain.aggregate.odc.repository.OrderDiscountConfigRepository; +import com.qniao.dam.infrastructure.persistent.dao.odc.OrderDiscountConfigDao; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +@Service +public class OrderDiscountConfigApplicationService { + + @Resource + private OrderDiscountConfigAggregate orderDiscountConfigAggregate; + @Resource + private OrderDiscountConfigRepository orderDiscountConfigRepository; + + public void create(OrderDiscountConfig orderDiscountConfig) { + orderDiscountConfigAggregate.create(orderDiscountConfig); + } + + public void edit(OrderDiscountConfig orderDiscountConfig) { + orderDiscountConfigAggregate.edit(orderDiscountConfig); + } + + public void delete(Long id) { + orderDiscountConfigAggregate.delete(id); + } + + public void enable(Long id) { + OrderDiscountConfig orderDiscountConfig = orderDiscountConfigRepository.load(id); + if (Objects.nonNull(orderDiscountConfig)) { + orderDiscountConfig.setEnable(!orderDiscountConfig.getEnable()); + orderDiscountConfigRepository.save(orderDiscountConfig); + } + } +} \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/odc/OrderDiscountConfigAggregate.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/odc/OrderDiscountConfigAggregate.java new file mode 100644 index 0000000..55cce3b --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/odc/OrderDiscountConfigAggregate.java @@ -0,0 +1,31 @@ +package com.qniao.dam.domain.aggregate.odc; + +import com.qniao.dam.domain.aggregate.odc.entity.OrderDiscountConfig; +import com.qniao.dam.domain.aggregate.odc.repository.OrderDiscountConfigRepository; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 订单优惠配置 + * + * @date 2024/12/07 + */ +@Service +public class OrderDiscountConfigAggregate { + + @Resource + private OrderDiscountConfigRepository repository; + + public void create(OrderDiscountConfig entity) { + repository.save(entity); + } + + public void edit(OrderDiscountConfig 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/odc/repository/OrderDiscountConfigRepository.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/odc/repository/OrderDiscountConfigRepository.java new file mode 100644 index 0000000..5fd71e5 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/odc/repository/OrderDiscountConfigRepository.java @@ -0,0 +1,12 @@ +package com.qniao.dam.domain.aggregate.odc.repository; + +import com.qniao.dam.domain.aggregate.odc.entity.OrderDiscountConfig; +import com.qniao.domain.Repository; + +/** + * 订单优惠配置 + * + * @date 2024/12/07 + */ +public interface OrderDiscountConfigRepository extends Repository { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/odc/OrderDiscountConfigDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/odc/OrderDiscountConfigDao.java new file mode 100644 index 0000000..80a1807 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/odc/OrderDiscountConfigDao.java @@ -0,0 +1,12 @@ +package com.qniao.dam.infrastructure.persistent.dao.odc; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qniao.dam.domain.aggregate.odc.entity.OrderDiscountConfig; + +/** + * 订单优惠配置 + * + * @date 2024/12/07 + */ +public interface OrderDiscountConfigDao extends BaseMapper { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/OrderDiscountConfigRepositoryImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/OrderDiscountConfigRepositoryImpl.java new file mode 100644 index 0000000..5606fdd --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/OrderDiscountConfigRepositoryImpl.java @@ -0,0 +1,41 @@ +package com.qniao.dam.infrastructure.persistent.repository.impl; + +import com.qniao.dam.domain.aggregate.odc.entity.OrderDiscountConfig; +import com.qniao.dam.domain.aggregate.odc.repository.OrderDiscountConfigRepository; +import com.qniao.dam.infrastructure.persistent.dao.odc.OrderDiscountConfigDao; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +/** + * 订单优惠配置 + * + * @date 2024/12/07 + */ +@Service +public class OrderDiscountConfigRepositoryImpl implements OrderDiscountConfigRepository { + + @Resource + private OrderDiscountConfigDao dao; + + @Override + public OrderDiscountConfig load(Long id) { + return dao.selectById(id); + } + + @Override + public Long save(OrderDiscountConfig 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/odc/OrderDiscountConfigQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/odc/OrderDiscountConfigQueryService.java new file mode 100644 index 0000000..1f58ed8 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/odc/OrderDiscountConfigQueryService.java @@ -0,0 +1,5 @@ +package com.qniao.dam.query.odc; + +public interface OrderDiscountConfigQueryService { + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/odc/impl/OrderDiscountConfigQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/odc/impl/OrderDiscountConfigQueryServiceImpl.java new file mode 100644 index 0000000..402114d --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/odc/impl/OrderDiscountConfigQueryServiceImpl.java @@ -0,0 +1,9 @@ +package com.qniao.dam.query.odc.impl; + +import com.qniao.dam.query.odc.OrderDiscountConfigQueryService; +import org.springframework.stereotype.Service; + +@Service +public class OrderDiscountConfigQueryServiceImpl implements OrderDiscountConfigQueryService { + +} \ No newline at end of file