Browse Source

基础配置

release
张彭杰 2 years ago
parent
commit
1e42f30ef0
10 changed files with 134 additions and 2 deletions
  1. 10
      dating-agency-mal-sdk/src/main/java/com/qniao/dam/application/MallServerApplicationService.java
  2. 12
      dating-agency-mal-sdk/src/main/java/com/qniao/dam/application/request/UserSendBackBightBySdkDto.java
  3. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/right/user/RightUserCommandController.java
  4. 14
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/right/user/request/UserSendBackBightBySdkDto.java
  5. 50
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/right/RightApplicationService.java
  6. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/right/RightAggregate.java
  7. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rightconsumerel/RightConsumeRelAggregate.java
  8. 25
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/service/right/ReturnRightDomainService.java
  9. 3
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/rightconsumerel/RightConsumeRelQueryService.java
  10. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/rightconsumerel/impl/RightConsumeRelQueryServiceImpl.java

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

@ -2,6 +2,7 @@ package com.qniao.dam.application;
import com.qniao.dam.application.request.UserCheckEnableRightBySdkQueryParam;
import com.qniao.dam.application.request.UserConsumeRightBySdkDto;
import com.qniao.dam.application.request.UserSendBackBightBySdkDto;
import com.qniao.dam.application.response.UserCheckEnableRightBySdkVo;
import com.qniao.dam.application.response.UserConsumeRightBySdkVo;
import org.springframework.cloud.openfeign.FeignClient;
@ -9,6 +10,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 {
@ -25,4 +28,11 @@ public interface MallServerApplicationService {
@PostMapping("/user/consume/right/by/sdk")
UserConsumeRightBySdkVo userConsumeRightBySdk(@RequestBody UserConsumeRightBySdkDto dto);
/**
* 通过SDK退回消费过的权益
*/
@PostMapping("/user/send-back/right/by/sdk")
void userSendBackRightBySdk(@RequestBody UserSendBackBightBySdkDto dto);
}

12
dating-agency-mal-sdk/src/main/java/com/qniao/dam/application/request/UserSendBackBightBySdkDto.java

@ -0,0 +1,12 @@
package com.qniao.dam.application.request;
import lombok.Data;
@Data
public class UserSendBackBightBySdkDto {
/**
* 关联标识
*/
private Long associatedId;
}

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

@ -1,6 +1,7 @@
package com.qniao.dam.api.command.right.user;
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;
import com.qniao.dam.application.service.right.RightApplicationService;
import com.qniao.framework.annotation.IgnoreResponseAdvice;
@ -26,4 +27,10 @@ public class RightUserCommandController {
return rightApplicationService.consumeRight(dto);
}
@ApiOperation("通过SDK退回消费过的权益")
@PostMapping("send-back/right/by/sdk")
@IgnoreResponseAdvice
public void userSendBackRightBySdk(@RequestBody @Valid UserSendBackBightBySdkDto dto) {
rightApplicationService.sendBackRight(dto.getAssociatedId());
}
}

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

@ -0,0 +1,14 @@
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 UserSendBackBightBySdkDto {
@ApiModelProperty("关联标识 目前针对审核")
@NotNull(message = "关联标识不能为空")
private Long associatedId;
}

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

@ -11,8 +11,10 @@ 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.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.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;
@ -22,6 +24,7 @@ import com.qniao.dam.domian.aggregate.right.constant.RightUnitEnum;
import com.qniao.dam.infrastructure.utils.CompareEntityUtil;
import com.qniao.dam.query.product.ProductQueryService;
import com.qniao.dam.query.right.RightQueryService;
import com.qniao.dam.query.rightconsumerel.RightConsumeRelQueryService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -41,6 +44,12 @@ public class RightApplicationService {
private ProductQueryService productQueryService;
@Resource
private ConsumeRightDomainService consumeRightDomainService;
@Resource
private ReturnRightDomainService returnRightDomainService;
@Resource
private RightConsumeRelQueryService rightConsumeRelQueryService;
@Resource
private RightRepository rightRepository;
/**
* 权益基本信息组织
@ -191,13 +200,15 @@ public class RightApplicationService {
*/
private void executeConsumeRight(Right right, Long associatedId) {
RightTerm rightCountRightTerm = rightQueryService.getRightTermByName(right, RightNameEnum.RIGHT_COUNT);
if (Objects.nonNull(rightCountRightTerm)) {
if (Objects.nonNull(rightCountRightTerm) && !"-1".equals(rightCountRightTerm.getValue())) {
int rightCount = Integer.parseInt(rightCountRightTerm.getValue());
rightCount--;
rightCountRightTerm.setValue(String.valueOf(rightCount));
}
//判断权益是否失效
if (!rightQueryService.checkEnable(right)) {
if (rightQueryService.checkEnable(right)) {
right.setEnable(true);
}else{
right.setEnable(false);
}
right.setUpdateRightTermList(right.getRightTermList());
@ -205,4 +216,39 @@ public class RightApplicationService {
RightConsumeRel rightConsumeRel = RightConsumeRel.build(right.getUserId(), right.getMiId(), right.getType(), right.getId(), associatedId);
consumeRightDomainService.handle(right, rightConsumeRel);
}
/**
* 退还权益
*
* @param associatedId 关联标识
*/
public void sendBackRight(Long associatedId) {
try {
RightConsumeRel rightConsumeRel = rightConsumeRelQueryService.queryByAssociatedId(associatedId);
if (Objects.nonNull(rightConsumeRel) && rightConsumeRel.getEnable()) {
Right right = rightRepository.load(rightConsumeRel.getRightId());
executeSendBackRight(right, rightConsumeRel);
}
} catch (Exception e) {
log.error("退回消费过的权益处理异常", e);
}
}
private void executeSendBackRight(Right right, RightConsumeRel rightConsumeRel) {
RightTerm rightCountRightTerm = rightQueryService.getRightTermByName(right, RightNameEnum.RIGHT_COUNT);
if (Objects.nonNull(rightCountRightTerm) && !"-1".equals(rightCountRightTerm.getValue())) {
int rightCount = Integer.parseInt(rightCountRightTerm.getValue());
rightCount++;
rightCountRightTerm.setValue(String.valueOf(rightCount));
}
//判断权益是否失效
if (rightQueryService.checkEnable(right)) {
right.setEnable(true);
}else{
right.setEnable(false);
}
right.setUpdateRightTermList(right.getRightTermList());
returnRightDomainService.handle(right, rightConsumeRel);
}
}

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

@ -19,4 +19,8 @@ public class RightAggregate {
public void consume(Right right) {
rightRepository.save(right);
}
public void sendBack(Right right) {
rightRepository.save(right);
}
}

4
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rightconsumerel/RightConsumeRelAggregate.java

@ -15,4 +15,8 @@ public class RightConsumeRelAggregate {
public void create(RightConsumeRel rightConsumeRel) {
rightConsumeRelRepository.save(rightConsumeRel);
}
public void save(RightConsumeRel rightConsumeRel) {
rightConsumeRelRepository.save(rightConsumeRel);
}
}

25
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/service/right/ReturnRightDomainService.java

@ -0,0 +1,25 @@
package com.qniao.dam.domain.service.right;
import com.qniao.dam.domain.aggregate.right.RightAggregate;
import com.qniao.dam.domain.aggregate.right.entity.Right;
import com.qniao.dam.domain.aggregate.rightconsumerel.RightConsumeRelAggregate;
import com.qniao.dam.domain.aggregate.rightconsumerel.entity.RightConsumeRel;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@Service
public class ReturnRightDomainService {
@Resource
private RightAggregate rightAggregate;
@Resource
private RightConsumeRelAggregate rightConsumeRelAggregate;
@Transactional(rollbackFor = Exception.class)
public void handle(Right right, RightConsumeRel rightConsumeRel) {
rightAggregate.sendBack(right);
rightConsumeRelAggregate.save(rightConsumeRel);
}
}

3
dating-agency-mall-server/src/main/java/com/qniao/dam/query/rightconsumerel/RightConsumeRelQueryService.java

@ -1,7 +1,10 @@
package com.qniao.dam.query.rightconsumerel;
import com.qniao.dam.domain.aggregate.rightconsumerel.entity.RightConsumeRel;
import com.qniao.dam.domian.aggregate.right.constant.RightTypeEnum;
public interface RightConsumeRelQueryService {
Integer countDailyUseBy(Long userId, Long miId, RightTypeEnum rightType);
RightConsumeRel queryByAssociatedId(Long associatedId);
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/query/rightconsumerel/impl/RightConsumeRelQueryServiceImpl.java

@ -26,4 +26,11 @@ public class RightConsumeRelQueryServiceImpl implements RightConsumeRelQueryServ
.eq(RightConsumeRel::getConsumeDate, LocalDate.now())
.eq(RightConsumeRel::getEnable, true));
}
@Override
public RightConsumeRel queryByAssociatedId(Long associatedId) {
return rightConsumeRelDao.selectOne(new LambdaQueryWrapper<RightConsumeRel>()
.eq(RightConsumeRel::getAssociatedId, associatedId)
.last("limit 1"));
}
}
Loading…
Cancel
Save