Browse Source

基础配置

master
张彭杰 2 years ago
parent
commit
0f2374a3c1
11 changed files with 191 additions and 2 deletions
  1. 10
      dating-agency-mal-sdk/src/main/java/com/qniao/dam/application/MallServerApplicationService.java
  2. 13
      dating-agency-mal-sdk/src/main/java/com/qniao/dam/application/request/UserAcquireNewMIRightBySdkDto.java
  3. 36
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/right/constant/RightAcquireEnum.java
  4. 3
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/right/entity/Right.java
  5. 40
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/right/valueobj/RightAcquireRecord.java
  6. 10
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/right/user/RightUserCommandController.java
  7. 18
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/right/user/request/UserAcquireNewMIRightBySdkDto.java
  8. 43
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/right/RightApplicationService.java
  9. 5
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/right/RightAggregate.java
  10. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/RightAcquireRecordDao.java
  11. 8
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RightRepositoryImpl.java

10
dating-agency-mal-sdk/src/main/java/com/qniao/dam/application/MallServerApplicationService.java

@ -1,5 +1,6 @@
package com.qniao.dam.application;
import com.qniao.dam.application.request.UserAcquireNewMIRightBySdkDto;
import com.qniao.dam.application.request.UserCheckEnableRightBySdkQueryParam;
import com.qniao.dam.application.request.UserConsumeRightBySdkDto;
import com.qniao.dam.application.request.UserSendBackBightBySdkDto;
@ -10,6 +11,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.validation.Valid;
@FeignClient("eureka-client-dating-agency-mall")
@RequestMapping("dating-agency-mall")
public interface MallServerApplicationService {
@ -33,4 +36,11 @@ public interface MallServerApplicationService {
@PostMapping("/user/send-back/right/by/sdk")
void userSendBackRightBySdk(@RequestBody UserSendBackBightBySdkDto dto);
/**
* 新用户获取赠送的权益
*/
@PostMapping("/user/acquire/new-mi-right/by/sdk")
void userAcquireNewMIRight(@RequestBody @Valid UserAcquireNewMIRightBySdkDto dto);
}

13
dating-agency-mal-sdk/src/main/java/com/qniao/dam/application/request/UserAcquireNewMIRightBySdkDto.java

@ -0,0 +1,13 @@
package com.qniao.dam.application.request;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class UserAcquireNewMIRightBySdkDto {
private Long userId;
private Long miId;
}

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

@ -0,0 +1,36 @@
package com.qniao.dam.domian.aggregate.right.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 RightAcquireEnum {
GIFT(1, "赠送"),
PURCHASE(2, "购买");
@EnumValue
@JsonValue
private final Integer value;
private final String desc;
RightAcquireEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
@JsonCreator
public static RightAcquireEnum get(Object code) {
for (RightAcquireEnum e : RightAcquireEnum.values()) {
if (e.getValue().equals(code)) {
return e;
}
}
return null;
}
}

3
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/right/entity/Right.java

@ -1,6 +1,7 @@
package com.qniao.dam.domain.aggregate.right.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qniao.dam.domain.aggregate.right.valueobj.RightAcquireRecord;
import com.qniao.dam.domian.aggregate.right.constant.RightTypeEnum;
import com.qniao.domain.Entity;
import io.swagger.annotations.ApiModelProperty;
@ -38,4 +39,6 @@ public class Right extends Entity<Right> {
private transient List<RightTerm> insertRightTermList;
private transient List<RightTerm> updateRightTermList;
private transient List<RightTerm> deleteRightTermList;
private transient RightAcquireRecord rightAcquireRecord;
}

40
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/right/valueobj/RightAcquireRecord.java

@ -0,0 +1,40 @@
package com.qniao.dam.domain.aggregate.right.valueobj;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qniao.dam.domain.aggregate.right.entity.Right;
import com.qniao.dam.domian.aggregate.right.constant.RightAcquireEnum;
import com.qniao.dam.domian.aggregate.right.constant.RightTypeEnum;
import com.qniao.domain.ValueObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("da_right_term")
public class RightAcquireRecord extends ValueObject<RightAcquireRecord> {
@ApiModelProperty("用户标识")
private Long userId;
@ApiModelProperty("征婚资料标识")
private Long miId;
@ApiModelProperty("权益标识")
private Long rightId;
@ApiModelProperty("权益类型")
private RightTypeEnum rightType;
@ApiModelProperty("获取方式")
private RightAcquireEnum acquireType;
public static RightAcquireRecord build(Right right, RightAcquireEnum acquireType) {
RightAcquireRecord rightAcquireRecord = new RightAcquireRecord();
rightAcquireRecord.setUserId(right.getUserId());
rightAcquireRecord.setMiId(right.getMiId());
rightAcquireRecord.setRightType(right.getType());
rightAcquireRecord.setAcquireType(acquireType);
return rightAcquireRecord;
}
}

10
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/right/user/RightUserCommandController.java

@ -1,5 +1,6 @@
package com.qniao.dam.api.command.right.user;
import com.qniao.dam.api.command.right.user.request.UserAcquireNewMIRightBySdkDto;
import com.qniao.dam.api.command.right.user.request.UserConsumeRightBySdkDto;
import com.qniao.dam.api.command.right.user.request.UserSendBackBightBySdkDto;
import com.qniao.dam.api.command.right.user.respose.UserConsumeRightBySdkVo;
@ -33,4 +34,13 @@ public class RightUserCommandController {
public void userSendBackRightBySdk(@RequestBody @Valid UserSendBackBightBySdkDto dto) {
rightApplicationService.sendBackRight(dto.getAssociatedId());
}
/**
* 新用户首次送头像修改权益
*/
@ApiOperation("新用户获取赠送的权益")
@PostMapping("acquire/new-mi-right/by/sdk")
public void userAcquireNewMIRight(@RequestBody @Valid UserAcquireNewMIRightBySdkDto dto) {
rightApplicationService.acquireNewMIRight(dto.getUserId(), dto.getMiId());
}
}

18
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/right/user/request/UserAcquireNewMIRightBySdkDto.java

@ -0,0 +1,18 @@
package com.qniao.dam.api.command.right.user.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class UserAcquireNewMIRightBySdkDto {
@ApiModelProperty("用户标识")
@NotNull(message = "用户标识不能为空")
private Long userId;
@ApiModelProperty("征婚资料标识")
@NotNull(message = "征婚资料标识不能为空")
private Long miId;
}

43
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/right/RightApplicationService.java

@ -3,21 +3,25 @@ package com.qniao.dam.application.service.right;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Tuple;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.api.R;
import com.qniao.dam.api.command.right.user.request.UserConsumeRightBySdkDto;
import com.qniao.dam.api.command.right.user.respose.UserConsumeRightBySdkVo;
import com.qniao.dam.domain.aggregate.order.entity.Order;
import com.qniao.dam.domain.aggregate.product.entity.Product;
import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec;
import com.qniao.dam.domain.aggregate.productspec.valueobj.ProductSpecTerm;
import com.qniao.dam.domain.aggregate.right.RightAggregate;
import com.qniao.dam.domain.aggregate.right.entity.Right;
import com.qniao.dam.domain.aggregate.right.entity.RightTerm;
import com.qniao.dam.domain.aggregate.right.repository.RightRepository;
import com.qniao.dam.domain.aggregate.right.valueobj.RightAcquireRecord;
import com.qniao.dam.domain.aggregate.rightconsumerel.entity.RightConsumeRel;
import com.qniao.dam.domain.service.right.ConsumeRightDomainService;
import com.qniao.dam.domain.service.right.ReturnRightDomainService;
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.domian.aggregate.productspec.constant.ProductSpecTermNameEnum;
import com.qniao.dam.domian.aggregate.productspec.constant.ProductSpecTermUnitEnum;
import com.qniao.dam.domian.aggregate.right.constant.RightAcquireEnum;
import com.qniao.dam.domian.aggregate.right.constant.RightNameEnum;
import com.qniao.dam.domian.aggregate.right.constant.RightTypeEnum;
import com.qniao.dam.domian.aggregate.right.constant.RightUnitEnum;
@ -50,6 +54,8 @@ public class RightApplicationService {
private RightConsumeRelQueryService rightConsumeRelQueryService;
@Resource
private RightRepository rightRepository;
@Resource
private RightAggregate rightAggregate;
/**
* 权益基本信息组织
@ -114,6 +120,9 @@ public class RightApplicationService {
rightTermList.add(dailyUseLimitRightTerm);
}
right.setRightTermList(rightTermList);
//权益获得记录
RightAcquireRecord rightAcquireRecord = RightAcquireRecord.build(right, RightAcquireEnum.PURCHASE);
right.setRightAcquireRecord(rightAcquireRecord);
if (Objects.isNull(right.getId())) {
//新建
right.setInsertRightTermList(right.getRightTermList());
@ -208,7 +217,7 @@ public class RightApplicationService {
//判断权益是否失效
if (rightQueryService.checkEnable(right)) {
right.setEnable(true);
}else{
} else {
right.setEnable(false);
}
right.setUpdateRightTermList(right.getRightTermList());
@ -244,11 +253,41 @@ public class RightApplicationService {
//判断权益是否失效
if (rightQueryService.checkEnable(right)) {
right.setEnable(true);
}else{
} else {
right.setEnable(false);
}
right.setUpdateRightTermList(right.getRightTermList());
returnRightDomainService.handle(right, rightConsumeRel);
}
/**
* 新用户首次送头像修改权益 todo 配置化
*/
public void acquireNewMIRight(Long userId, Long miId) {
//赠送头像权益
Right right = new Right();
right.setUserId(userId);
right.setMiId(miId);
right.setType(RightTypeEnum.PROFILE_MODIFICATION);
right.setStartTime(LocalDateTime.now());
right.setEndTime(right.getStartTime().plusMonths(1));
//组装权益条款
//权益条款
List<RightTerm> rightTermList = new ArrayList<>();
//规格 周期次数
RightTerm specRightTerm = RightTerm.build(RightNameEnum.SPEC, RightUnitEnum.SPEC_TIME, null);
rightTermList.add(specRightTerm);
//条数
RightTerm rightLimitRightTerm = RightTerm.build(RightNameEnum.RIGHT_LIMIT, RightUnitEnum.COUNT, "1");
rightTermList.add(rightLimitRightTerm);
RightTerm rightCountRightTerm = RightTerm.build(RightNameEnum.RIGHT_COUNT, RightUnitEnum.COUNT, "1");
rightTermList.add(rightCountRightTerm);
right.setRightTermList(rightTermList);
right.setInsertRightTermList(rightTermList);
//权益获得记录
RightAcquireRecord rightAcquireRecord = RightAcquireRecord.build(right, RightAcquireEnum.GIFT);
right.setRightAcquireRecord(rightAcquireRecord);
rightAggregate.create(right);
}
}

5
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/right/RightAggregate.java

@ -12,6 +12,10 @@ public class RightAggregate {
@Resource
private RightRepository rightRepository;
public void create(Right right) {
rightRepository.save(right);
}
public void save(Right right) {
rightRepository.save(right);
}
@ -23,4 +27,5 @@ public class RightAggregate {
public void sendBack(Right right) {
rightRepository.save(right);
}
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/RightAcquireRecordDao.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.right.valueobj.RightAcquireRecord;
public interface RightAcquireRecordDao extends BaseMapper<RightAcquireRecord> {
}

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

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qniao.dam.domain.aggregate.right.entity.Right;
import com.qniao.dam.domain.aggregate.right.entity.RightTerm;
import com.qniao.dam.domain.aggregate.right.repository.RightRepository;
import com.qniao.dam.infrastructure.persistent.dao.domain.RightAcquireRecordDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.RightDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.RightTermDao;
import org.springframework.stereotype.Service;
@ -22,6 +23,9 @@ public class RightRepositoryImpl implements RightRepository {
@Resource
private RightTermDao rightTermDao;
@Resource
private RightAcquireRecordDao rightAcquireRecordDao;
@Override
public Right load(Long id) {
Right right = rightDao.selectById(id);
@ -55,6 +59,10 @@ public class RightRepositoryImpl implements RightRepository {
if (CollUtil.isNotEmpty(entity.getDeleteRightTermList())) {
rightTermDao.deleteBatchIds(entity.getDeleteRightTermList().stream().map(RightTerm::getId).collect(Collectors.toList()));
}
if (Objects.nonNull(entity.getRightAcquireRecord())) {
entity.getRightAcquireRecord().setRightId(entity.getId());
rightAcquireRecordDao.insert(entity.getRightAcquireRecord());
}
return entity.getId();
}
}
Loading…
Cancel
Save