Browse Source

积分奖励配置

master
张彭杰 1 year ago
parent
commit
a361c44bbf
19 changed files with 518 additions and 0 deletions
  1. 37
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigAttributeEnum.java
  2. 49
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/prc/constant/PointRewardConfigTypeEnum.java
  3. 36
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/prc/entity/PointRewardConfig.java
  4. 47
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/PointRewardConfigUserCommandController.java
  5. 30
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserCreatePointRewardConfigDto.java
  6. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserDeletePointRewardConfigDto.java
  7. 33
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserEditPointRewardConfigDto.java
  8. 11
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/prc/user/request/UserEnablePointRewardConfigDto.java
  9. 28
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/PointRewardConfigUserQueryController.java
  10. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/request/UserPagePointRewardConfigByOperatorQueryParams.java
  11. 31
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/prc/user/response/UserPagePointRewardConfigByOperatorVo.java
  12. 38
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/prc/PointRewardConfigApplicationService.java
  13. 32
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/prc/PointRewardConfigAggregate.java
  14. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/prc/repository/PointRewardConfigRepository.java
  15. 19
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/prc/PointRewardConfigDao.java
  16. 41
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/PointRewardConfigRepositoryImpl.java
  17. 11
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/PointRewardConfigQueryService.java
  18. 24
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/prc/impl/PointRewardConfigQueryServiceImpl.java
  19. 20
      dating-agency-mall-server/src/main/resources/mapper/prc/PointRewardConfigMapper.xml

37
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;
}
}

49
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;
}
}

36
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<PointRewardConfig> {
@ApiModelProperty("类型")
private PointRewardConfigTypeEnum type;
@ApiModelProperty("属性")
private PointRewardConfigAttributeEnum attribute;
@ApiModelProperty("数量")
private String num;
@ApiModelProperty("启用状态")
private Boolean enable;
@ApiModelProperty("备注")
private String remark;
}

47
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());
}
}

30
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<PointRewardConfig> {
@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);
}
}

12
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;
}

33
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<PointRewardConfig> {
@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);
}
}

11
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;
}

28
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<UserPagePointRewardConfigByOperatorVo> userPagePointRewardConfigByOperator(PageUtil pageUtil,
UserPagePointRewardConfigByOperatorQueryParams queryParams) {
return PageUtil.convert(pointRewardConfigQueryService.pageByOperator(pageUtil, queryParams), UserPagePointRewardConfigByOperatorVo.class);
}
}

7
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 {
}

31
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;
}

38
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);
}
}
}

32
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);
}
}

12
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<PointRewardConfig, Long> {
}

19
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<PointRewardConfig> {
IPage<UserPagePointRewardConfigByOperatorVo> pageByOperator(Page<Object> pageWithoutOrders,
@Param("queryParams") UserPagePointRewardConfigByOperatorQueryParams queryParams);
}

41
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);
}
}

11
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<UserPagePointRewardConfigByOperatorVo> pageByOperator(PageUtil pageUtil, UserPagePointRewardConfigByOperatorQueryParams queryParams);
}

24
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<UserPagePointRewardConfigByOperatorVo> pageByOperator(PageUtil pageUtil,
UserPagePointRewardConfigByOperatorQueryParams queryParams) {
return pointRewardConfigDao.pageByOperator(pageUtil.toPageWithoutOrders(), queryParams);
}
}

20
dating-agency-mall-server/src/main/resources/mapper/prc/PointRewardConfigMapper.xml

@ -0,0 +1,20 @@
<?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.prc.PointRewardConfigDao">
<select id="pageByOperator"
resultType="com.qniao.dam.api.query.prc.user.response.UserPagePointRewardConfigByOperatorVo">
SELECT
id,
create_time,
update_time,
type,
attribute,
num,
`enable`,
remark
FROM
da_point_reward_config
</select>
</mapper>
Loading…
Cancel
Save