Browse Source

抽奖奖品配置

master
张彭杰 1 year ago
parent
commit
935503ffda
18 changed files with 508 additions and 0 deletions
  1. 36
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rpc/constant/PrizeCategoryEnum.java
  2. 38
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rpc/constant/PrizeTypeEnum.java
  3. 38
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rpc/entity/RafflePrizeConfig.java
  4. 40
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpc/user/RafflePrizeConfigUserCommandController.java
  5. 34
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpc/user/request/UserCreateRafflePrizeConfigDto.java
  6. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpc/user/request/UserDeleteRafflePrizeConfigDto.java
  7. 43
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpc/user/request/UserEditRafflePrizeConfigDto.java
  8. 29
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpc/user/RafflePrizeConfigUserQueryController.java
  9. 15
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpc/user/request/UserPageRafflePrizeConfigQueryParams.java
  10. 33
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpc/user/response/RafflePrizeConfigVo.java
  11. 26
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rpc/RafflePrizeConfigApplicationService.java
  12. 31
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpc/RafflePrizeConfigAggregate.java
  13. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpc/repository/RafflePrizeConfigRepository.java
  14. 21
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/rpc/RafflePrizeConfigDao.java
  15. 41
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RafflePrizeConfigRepositoryImpl.java
  16. 11
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpc/RafflePrizeConfigQueryService.java
  17. 23
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpc/impl/RafflePrizeConfigQueryServiceImpl.java
  18. 25
      dating-agency-mall-server/src/main/resources/mapper/rpc/RafflePrizeConfigMapper.xml

36
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rpc/constant/PrizeCategoryEnum.java

@ -0,0 +1,36 @@
package com.qniao.dam.domian.aggregate.rpc.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 PrizeCategoryEnum {
MATCHMAKER_STAY_FRANCHISE_FEE(1, "红娘加盟-存留");
@EnumValue
@JsonValue
private final Integer value;
private final String desc;
PrizeCategoryEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
@JsonCreator
public static PrizeCategoryEnum get(Integer v) {
for (PrizeCategoryEnum e : PrizeCategoryEnum.values()) {
if (e.getValue().equals(v)) {
return e;
}
}
return null;
}
}

38
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rpc/constant/PrizeTypeEnum.java

@ -0,0 +1,38 @@
package com.qniao.dam.domian.aggregate.rpc.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 PrizeTypeEnum {
PHYSICAL_PRIZE(1, "实物奖品"),
VIRTUAL_PRIZE(2, "虚拟奖品");
@EnumValue
@JsonValue
private final Integer value;
private final String desc;
PrizeTypeEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
@JsonCreator
public static PrizeTypeEnum get(Integer v) {
for (PrizeTypeEnum e : PrizeTypeEnum.values()) {
if (e.getValue().equals(v)) {
return e;
}
}
return null;
}
}

38
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rpc/entity/RafflePrizeConfig.java

@ -0,0 +1,38 @@
package com.qniao.dam.domain.aggregate.rpc.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeCategoryEnum;
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.qniao.domain.Entity;
import java.math.BigDecimal;
/**
* 抽奖奖品配置
*
* @date 2025/01/13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("da_raffle_prize_config")
public class RafflePrizeConfig extends Entity<RafflePrizeConfig> {
@ApiModelProperty("奖品类型")
private PrizeTypeEnum prizeType;
@ApiModelProperty("奖品分类")
private PrizeCategoryEnum prizeCategory;
@ApiModelProperty("奖品名称")
private String prizeName;
@ApiModelProperty("奖品占比")
private BigDecimal prizePct;
@ApiModelProperty("备注")
private String remark;
}

40
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpc/user/RafflePrizeConfigUserCommandController.java

@ -0,0 +1,40 @@
package com.qniao.dam.api.command.rpc.user;
import com.qniao.dam.api.command.rpc.user.request.*;
import com.qniao.dam.application.service.rpc.RafflePrizeConfigApplicationService;
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 RafflePrizeConfigUserCommandController {
@Resource
private RafflePrizeConfigApplicationService rafflePrizeConfigApplicationService;
@ApiOperation("用户创建抽奖奖品配置")
@PostMapping("create/raffle-prize-config")
public void userCreateRafflePrizeConfig(@RequestBody @Valid UserCreateRafflePrizeConfigDto dto,
@RequestParam("userId") Long userId) {
rafflePrizeConfigApplicationService.create(dto.trans2Domain());
}
@ApiOperation("用户编辑抽奖奖品配置")
@PostMapping("edit/raffle-prize-config")
public void userEditRafflePrizeConfig(@RequestBody @Valid UserEditRafflePrizeConfigDto dto,
@RequestParam("userId") Long userId) {
rafflePrizeConfigApplicationService.edit(dto.trans2Domain());
}
@ApiOperation("用户删除抽奖奖品配置")
@PostMapping("delete/raffle-prize-config")
public void userDeleteRafflePrizeConfig(@RequestBody @Valid UserDeleteRafflePrizeConfigDto dto,
@RequestParam("userId") Long userId) {
rafflePrizeConfigApplicationService.delete(dto.getId());
}
}

34
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpc/user/request/UserCreateRafflePrizeConfigDto.java

@ -0,0 +1,34 @@
package com.qniao.dam.api.command.rpc.user.request;
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig;
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeCategoryEnum;
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeTypeEnum;
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 UserCreateRafflePrizeConfigDto implements Trans2DomainAssembler<RafflePrizeConfig> {
@ApiModelProperty("奖品类型")
private PrizeTypeEnum prizeType;
@ApiModelProperty("奖品分类")
private PrizeCategoryEnum prizeCategory;
@ApiModelProperty("奖品名称")
private String prizeName;
@ApiModelProperty("奖品占比")
private BigDecimal prizePct;
@ApiModelProperty("备注")
private String remark;
@Override
public RafflePrizeConfig trans2Domain() {
return TypeConvertUtils.convert(this, RafflePrizeConfig.class);
}
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpc/user/request/UserDeleteRafflePrizeConfigDto.java

@ -0,0 +1,12 @@
package com.qniao.dam.api.command.rpc.user.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class UserDeleteRafflePrizeConfigDto {
@ApiModelProperty("唯一标识")
private Long id;
}

43
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/rpc/user/request/UserEditRafflePrizeConfigDto.java

@ -0,0 +1,43 @@
package com.qniao.dam.api.command.rpc.user.request;
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig;
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeCategoryEnum;
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeTypeEnum;
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 UserEditRafflePrizeConfigDto implements Trans2DomainAssembler<RafflePrizeConfig> {
@ApiModelProperty("唯一标识")
@NotNull
private Long id;
@ApiModelProperty("奖品类型")
private PrizeTypeEnum prizeType;
@ApiModelProperty("奖品分类")
private PrizeCategoryEnum prizeCategory;
@ApiModelProperty("奖品名称")
private String prizeName;
@ApiModelProperty("奖品占比")
private BigDecimal prizePct;
@ApiModelProperty("备注")
private String remark;
@Override
public RafflePrizeConfig trans2Domain() {
return TypeConvertUtils.convert(this, RafflePrizeConfig.class);
}
}

29
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpc/user/RafflePrizeConfigUserQueryController.java

@ -0,0 +1,29 @@
package com.qniao.dam.api.query.rpc.user;
import com.qniao.dam.api.query.rpc.user.request.UserPageRafflePrizeConfigQueryParams;
import com.qniao.dam.api.query.rpc.user.response.RafflePrizeConfigVo;
import com.qniao.dam.query.rpc.RafflePrizeConfigQueryService;
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 RafflePrizeConfigUserQueryController {
@Resource
private RafflePrizeConfigQueryService rafflePrizeConfigQueryService;
@GetMapping("page/raffle-prize-config")
@ApiOperation("用户获取抽奖奖品配置分页")
public QnPage<RafflePrizeConfigVo> userPageRafflePrizeConfig(PageUtil pageUtil,
UserPageRafflePrizeConfigQueryParams queryParams) {
return PageUtil.convert(rafflePrizeConfigQueryService.page(queryParams, pageUtil), RafflePrizeConfigVo.class);
}
}

15
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpc/user/request/UserPageRafflePrizeConfigQueryParams.java

@ -0,0 +1,15 @@
package com.qniao.dam.api.query.rpc.user.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class UserPageRafflePrizeConfigQueryParams {
@ApiModelProperty("奖品类型")
private Integer prizeType;
@ApiModelProperty("奖品分类")
private Integer prizeCategory;
}

33
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpc/user/response/RafflePrizeConfigVo.java

@ -0,0 +1,33 @@
package com.qniao.dam.api.query.rpc.user.response;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeCategoryEnum;
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class RafflePrizeConfigVo {
@ApiModelProperty("唯一标识")
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
@ApiModelProperty("奖品类型")
private PrizeTypeEnum prizeType;
@ApiModelProperty("奖品分类")
private PrizeCategoryEnum prizeCategory;
@ApiModelProperty("奖品名称")
private String prizeName;
@ApiModelProperty("奖品占比")
private BigDecimal prizePct;
@ApiModelProperty("备注")
private String remark;
}

26
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rpc/RafflePrizeConfigApplicationService.java

@ -0,0 +1,26 @@
package com.qniao.dam.application.service.rpc;
import com.qniao.dam.domain.aggregate.rpc.RafflePrizeConfigAggregate;
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class RafflePrizeConfigApplicationService {
@Resource
private RafflePrizeConfigAggregate rafflePrizeConfigAggregate;
public void create(RafflePrizeConfig rafflePrizeConfig) {
rafflePrizeConfigAggregate.create(rafflePrizeConfig);
}
public void edit(RafflePrizeConfig rafflePrizeConfig) {
rafflePrizeConfigAggregate.edit(rafflePrizeConfig);
}
public void delete(Long id) {
rafflePrizeConfigAggregate.delete(id);
}
}

31
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpc/RafflePrizeConfigAggregate.java

@ -0,0 +1,31 @@
package com.qniao.dam.domain.aggregate.rpc;
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig;
import com.qniao.dam.domain.aggregate.rpc.repository.RafflePrizeConfigRepository;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 抽奖奖品配置
*
* @date 2025/01/13
*/
@Service
public class RafflePrizeConfigAggregate {
@Resource
private RafflePrizeConfigRepository repository;
public void create(RafflePrizeConfig entity) {
repository.save(entity);
}
public void edit(RafflePrizeConfig entity) {
repository.save(entity);
}
public void delete(Long id) {
repository.delete(id);
}
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpc/repository/RafflePrizeConfigRepository.java

@ -0,0 +1,12 @@
package com.qniao.dam.domain.aggregate.rpc.repository;
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig;
import com.qniao.domain.Repository;
/**
* 抽奖奖品配置
*
* @date 2025/01/13
*/
public interface RafflePrizeConfigRepository extends Repository<RafflePrizeConfig, Long> {
}

21
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/rpc/RafflePrizeConfigDao.java

@ -0,0 +1,21 @@
package com.qniao.dam.infrastructure.persistent.dao.rpc;
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.rpc.user.request.UserPageRafflePrizeConfigQueryParams;
import com.qniao.dam.api.query.rpc.user.response.RafflePrizeConfigVo;
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig;
import org.apache.ibatis.annotations.Param;
/**
* 抽奖奖品配置
*
* @date 2025/01/13
*/
public interface RafflePrizeConfigDao extends BaseMapper<RafflePrizeConfig> {
IPage<RafflePrizeConfigVo> page(Page<Object> pageWithoutOrders,
@Param("queryParams") UserPageRafflePrizeConfigQueryParams queryParams);
}

41
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RafflePrizeConfigRepositoryImpl.java

@ -0,0 +1,41 @@
package com.qniao.dam.infrastructure.persistent.repository.impl;
import com.qniao.dam.domain.aggregate.rpc.entity.RafflePrizeConfig;
import com.qniao.dam.domain.aggregate.rpc.repository.RafflePrizeConfigRepository;
import com.qniao.dam.infrastructure.persistent.dao.rpc.RafflePrizeConfigDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Objects;
/**
* 抽奖奖品配置
*
* @date 2025/01/13
*/
@Service
public class RafflePrizeConfigRepositoryImpl implements RafflePrizeConfigRepository {
@Resource
private RafflePrizeConfigDao dao;
@Override
public RafflePrizeConfig load(Long id) {
return dao.selectById(id);
}
@Override
public Long save(RafflePrizeConfig 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);
}
}

11
dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpc/RafflePrizeConfigQueryService.java

@ -0,0 +1,11 @@
package com.qniao.dam.query.rpc;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qniao.dam.api.query.rpc.user.request.UserPageRafflePrizeConfigQueryParams;
import com.qniao.dam.api.query.rpc.user.response.RafflePrizeConfigVo;
import com.qniao.framework.utils.PageUtil;
public interface RafflePrizeConfigQueryService {
IPage<RafflePrizeConfigVo> page(UserPageRafflePrizeConfigQueryParams queryParam, PageUtil pageUtil);
}

23
dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpc/impl/RafflePrizeConfigQueryServiceImpl.java

@ -0,0 +1,23 @@
package com.qniao.dam.query.rpc.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qniao.dam.api.query.rpc.user.request.UserPageRafflePrizeConfigQueryParams;
import com.qniao.dam.api.query.rpc.user.response.RafflePrizeConfigVo;
import com.qniao.dam.infrastructure.persistent.dao.rpc.RafflePrizeConfigDao;
import com.qniao.dam.query.rpc.RafflePrizeConfigQueryService;
import com.qniao.framework.utils.PageUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class RafflePrizeConfigQueryServiceImpl implements RafflePrizeConfigQueryService {
@Resource
private RafflePrizeConfigDao rafflePrizeConfigDao;
@Override
public IPage<RafflePrizeConfigVo> page(UserPageRafflePrizeConfigQueryParams queryParams, PageUtil pageUtil) {
return rafflePrizeConfigDao.page(pageUtil.toPageWithoutOrders(), queryParams);
}
}

25
dating-agency-mall-server/src/main/resources/mapper/rpc/RafflePrizeConfigMapper.xml

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qniao.dam.infrastructure.persistent.dao.rpc.RafflePrizeConfigDao">
<select id="page" resultType="com.qniao.dam.api.query.rpc.user.response.RafflePrizeConfigVo">
SELECT
id,
prize_type,
prize_category,
prize_name,
prize_pct,
remark
FROM
da_raffle_prize_config
where is_delete=0
<if test="queryParams.prizeType != null">
AND prize_type = #{queryParams.prizeType}
</if>
<if test="queryParams.prizeCategory != null">
AND prize_category = #{queryParams.prizeCategory}
</if>
ORDER BY create_time desc
</select>
</mapper>
Loading…
Cancel
Save