Browse Source

基础配置

master
张彭杰 2 years ago
parent
commit
ca47e5046f
16 changed files with 326 additions and 31 deletions
  1. 30
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rightconsumerel/entity/RightConsumeRel.java
  2. 29
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/right/user/RightUserCommandController.java
  3. 26
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/right/user/request/UserConsumeRightBySdkDto.java
  4. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/right/user/respose/UserConsumeRightBySdkVo.java
  5. 1
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/request/UserListRightByCustomerQueryParam.java
  6. 58
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/right/RightApplicationService.java
  7. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/right/RightAggregate.java
  8. 18
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rightconsumerel/RightConsumeRelAggregate.java
  9. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rightconsumerel/repository/RightConsumeRelRepository.java
  10. 24
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/service/right/ConsumeRightDomainService.java
  11. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/RightConsumeRelDao.java
  12. 31
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RightConsumeRelRepositoryImpl.java
  13. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/impl/OrderQueryServiceImpl.java
  14. 13
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/RightQueryService.java
  15. 76
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/impl/RightQueryServiceImpl.java
  16. 19
      dating-agency-mall-server/src/main/resources/mapper/right/RightMapper.xml

30
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rightconsumerel/entity/RightConsumeRel.java

@ -0,0 +1,30 @@
package com.qniao.dam.domain.aggregate.rightconsumerel.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qniao.domain.Entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("da_right_consume_rel")
public class RightConsumeRel extends Entity<RightConsumeRel> {
@ApiModelProperty("权益标识")
private Long rightId;
@ApiModelProperty("关联标识")
private Long associatedId;
@ApiModelProperty("状态")
private Boolean enable;
public static RightConsumeRel build(Long rightId, Long associatedId) {
RightConsumeRel rightConsumeRel = new RightConsumeRel();
rightConsumeRel.setRightId(rightId);
rightConsumeRel.setAssociatedId(associatedId);
rightConsumeRel.setEnable(true);
return rightConsumeRel;
}
}

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

@ -0,0 +1,29 @@
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.respose.UserConsumeRightBySdkVo;
import com.qniao.dam.application.service.right.RightApplicationService;
import com.qniao.framework.annotation.IgnoreResponseAdvice;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
@RestController
@RequestMapping("user")
@Api(tags = "权益")
public class RightUserCommandController {
@Resource
private RightApplicationService rightApplicationService;
@ApiOperation("通过SDK消费权益")
@PostMapping("consume/right/by/sdk")
@IgnoreResponseAdvice
public UserConsumeRightBySdkVo userConsumeRightBySdk(@RequestBody @Valid UserConsumeRightBySdkDto dto) {
return rightApplicationService.consumeRight(dto);
}
}

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

@ -0,0 +1,26 @@
package com.qniao.dam.api.command.right.user.request;
import com.qniao.dam.domian.aggregate.right.constant.RightTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class UserConsumeRightBySdkDto {
@ApiModelProperty("用户标识")
@NotNull(message = "用户标识不能为空")
private Long userId;
@ApiModelProperty("征婚资料标识")
@NotNull(message = "征婚资料标识不能为空")
private Long miId;
@ApiModelProperty("权益类型")
@NotNull(message = "权益类型不能为空")
private RightTypeEnum type;
@ApiModelProperty("关联标识 目前针对审核")
private Long associatedId;
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/right/user/respose/UserConsumeRightBySdkVo.java

@ -0,0 +1,12 @@
package com.qniao.dam.api.command.right.user.respose;
import lombok.Data;
@Data
public class UserConsumeRightBySdkVo {
private Boolean flag = false;
private String failReason;
}

1
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/request/UserListRightByCustomerQueryParam.java

@ -1,6 +1,5 @@
package com.qniao.dam.api.query.right.user.request; package com.qniao.dam.api.query.right.user.request;
import com.qniao.dam.domian.aggregate.right.constant.RightTypeEnum;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;

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

@ -1,12 +1,17 @@
package com.qniao.dam.application.service.right; package com.qniao.dam.application.service.right;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Tuple; import cn.hutool.core.lang.Tuple;
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.order.entity.Order;
import com.qniao.dam.domain.aggregate.product.entity.Product; 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.entity.ProductSpec;
import com.qniao.dam.domain.aggregate.productspec.valueobj.ProductSpecTerm; 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.Right;
import com.qniao.dam.domain.aggregate.right.entity.RightTerm; import com.qniao.dam.domain.aggregate.right.entity.RightTerm;
import com.qniao.dam.domain.aggregate.rightconsumerel.entity.RightConsumeRel;
import com.qniao.dam.domain.service.right.ConsumeRightDomainService;
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; 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.ProductSpecTermNameEnum;
import com.qniao.dam.domian.aggregate.productspec.constant.ProductSpecTermUnitEnum; import com.qniao.dam.domian.aggregate.productspec.constant.ProductSpecTermUnitEnum;
@ -16,6 +21,7 @@ import com.qniao.dam.domian.aggregate.right.constant.RightUnitEnum;
import com.qniao.dam.infrastructure.utils.CompareEntityUtil; import com.qniao.dam.infrastructure.utils.CompareEntityUtil;
import com.qniao.dam.query.product.ProductQueryService; import com.qniao.dam.query.product.ProductQueryService;
import com.qniao.dam.query.right.RightQueryService; import com.qniao.dam.query.right.RightQueryService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -25,12 +31,15 @@ import java.util.List;
import java.util.Objects; import java.util.Objects;
@Service @Service
@Slf4j
public class RightApplicationService { public class RightApplicationService {
@Resource @Resource
private RightQueryService rightQueryService; private RightQueryService rightQueryService;
@Resource @Resource
private ProductQueryService productQueryService; private ProductQueryService productQueryService;
@Resource
private ConsumeRightDomainService consumeRightDomainService;
/** /**
* 权益基本信息组织 * 权益基本信息组织
@ -50,7 +59,7 @@ public class RightApplicationService {
right.setMiId(order.getMiId()); right.setMiId(order.getMiId());
right.setType(type); right.setType(type);
//寻找用户未过期的且规格属于周期的权益 //寻找用户未过期的且规格属于周期的权益
Right oldSpecPeriodRight = rightQueryService.getEnableSpecPeriodRight(order.getUserId(), order.getMiId(), type);
Right oldSpecPeriodRight = rightQueryService.getEnableRight(order.getUserId(), order.getMiId(), type, RightUnitEnum.SPEC_PERIOD);
if (Objects.nonNull(oldSpecPeriodRight)) { if (Objects.nonNull(oldSpecPeriodRight)) {
right.setId(oldSpecPeriodRight.getId()); right.setId(oldSpecPeriodRight.getId());
} }
@ -142,4 +151,51 @@ public class RightApplicationService {
return null; return null;
} }
} }
/**
* todo 检查今日使用次数
*/
public UserConsumeRightBySdkVo consumeRight(UserConsumeRightBySdkDto dto) {
UserConsumeRightBySdkVo vo = new UserConsumeRightBySdkVo();
try {
List<Right> rightList = rightQueryService.listEnableRightBy(dto.getUserId(), dto.getMiId(), dto.getType());
if (CollUtil.isNotEmpty(rightList)) {
for (Right right : rightList) {
if (rightQueryService.checkEnable(right)) {
executeConsumeRight(right, dto.getAssociatedId());
vo.setFlag(true);
}
}
}
if (!vo.getFlag()) {
vo.setFailReason("您剩余的权益已过期或已用完");
}
} catch (Exception e) {
vo.setFailReason("权益使用异常");
log.error("用户消费权益失败", e);
}
return vo;
}
/**
* 执行权益消费
*
* @param right
* @param associatedId 关联标识 -- 审核标识
*/
private void executeConsumeRight(Right right, Long associatedId) {
RightTerm rightCountRightTerm = rightQueryService.getRightTermByName(right, RightNameEnum.RIGHT_COUNT);
if (Objects.nonNull(rightCountRightTerm)) {
int rightCount = Integer.parseInt(rightCountRightTerm.getValue());
rightCount--;
rightCountRightTerm.setValue(String.valueOf(rightCount));
}
//判断权益是否失效
if (!rightQueryService.checkEnable(right)) {
right.setEnable(false);
}
//组装权益消费关联实体
RightConsumeRel rightConsumeRel = RightConsumeRel.build(right.getId(), associatedId);
consumeRightDomainService.handle(right, rightConsumeRel);
}
} }

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

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

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

@ -0,0 +1,18 @@
package com.qniao.dam.domain.aggregate.rightconsumerel;
import com.qniao.dam.domain.aggregate.rightconsumerel.entity.RightConsumeRel;
import com.qniao.dam.domain.aggregate.rightconsumerel.repository.RightConsumeRelRepository;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class RightConsumeRelAggregate {
@Resource
private RightConsumeRelRepository rightConsumeRelRepository;
public void create(RightConsumeRel rightConsumeRel) {
rightConsumeRelRepository.save(rightConsumeRel);
}
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rightconsumerel/repository/RightConsumeRelRepository.java

@ -0,0 +1,7 @@
package com.qniao.dam.domain.aggregate.rightconsumerel.repository;
import com.qniao.dam.domain.aggregate.rightconsumerel.entity.RightConsumeRel;
import com.qniao.domain.Repository;
public interface RightConsumeRelRepository extends Repository<RightConsumeRel, Long> {
}

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

@ -0,0 +1,24 @@
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 ConsumeRightDomainService {
@Resource
private RightAggregate rightAggregate;
@Resource
private RightConsumeRelAggregate rightConsumeRelAggregate;
@Transactional(rollbackFor = Exception.class)
public void handle(Right right, RightConsumeRel rightConsumeRel) {
rightAggregate.consume(right);
rightConsumeRelAggregate.create(rightConsumeRel);
}
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/RightConsumeRelDao.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.rightconsumerel.entity.RightConsumeRel;
public interface RightConsumeRelDao extends BaseMapper<RightConsumeRel> {
}

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

@ -0,0 +1,31 @@
package com.qniao.dam.infrastructure.persistent.repository.impl;
import com.qniao.dam.domain.aggregate.rightconsumerel.entity.RightConsumeRel;
import com.qniao.dam.domain.aggregate.rightconsumerel.repository.RightConsumeRelRepository;
import com.qniao.dam.infrastructure.persistent.dao.domain.RightConsumeRelDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Objects;
@Service
public class RightConsumeRelRepositoryImpl implements RightConsumeRelRepository {
@Resource
private RightConsumeRelDao rightConsumeRelDao;
@Override
public RightConsumeRel load(Long id) {
return rightConsumeRelDao.selectById(id);
}
@Override
public Long save(RightConsumeRel entity) {
if (Objects.isNull(entity.getId()) || Objects.isNull(rightConsumeRelDao.selectById(entity.getId()))) {
rightConsumeRelDao.insert(entity);
} else {
rightConsumeRelDao.updateById(entity);
}
return entity.getId();
}
}

2
dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/impl/OrderQueryServiceImpl.java

@ -66,7 +66,7 @@ public class OrderQueryServiceImpl implements OrderQueryService {
ProductSpecTerm productSpecTerm = productQueryService.getTermByName(productSpec.getProductSpecTermList(), ProductSpecTermNameEnum.SPEC); ProductSpecTerm productSpecTerm = productQueryService.getTermByName(productSpec.getProductSpecTermList(), ProductSpecTermNameEnum.SPEC);
RightTypeEnum rightType = rightApplicationService.transformRightType(orderItem.getSubCategory()); RightTypeEnum rightType = rightApplicationService.transformRightType(orderItem.getSubCategory());
if (Objects.nonNull(rightType) && Objects.nonNull(productSpecTerm)) { if (Objects.nonNull(rightType) && Objects.nonNull(productSpecTerm)) {
Right right = rightQueryService.getEnableSpecPeriodRight(order.getUserId(), order.getMiId(), rightType);
Right right = rightQueryService.getEnableRight(order.getUserId(), order.getMiId(), rightType, null);
if (Objects.nonNull(right)) { if (Objects.nonNull(right)) {
RightTerm rightTerm = rightQueryService.getRightTermByName(right, RightNameEnum.SPEC); RightTerm rightTerm = rightQueryService.getRightTermByName(right, RightNameEnum.SPEC);
flag = !rightTerm.getUnit().getValue().equals(productSpecTerm.getUnit().getValue()); flag = !rightTerm.getUnit().getValue().equals(productSpecTerm.getUnit().getValue());

13
dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/RightQueryService.java

@ -6,13 +6,24 @@ 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.entity.RightTerm;
import com.qniao.dam.domian.aggregate.right.constant.RightNameEnum; 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.RightTypeEnum;
import com.qniao.dam.domian.aggregate.right.constant.RightUnitEnum;
import java.util.List; import java.util.List;
public interface RightQueryService { public interface RightQueryService {
List<UserListRightByCustomerVo> listRightByCustomer(UserListRightByCustomerQueryParam queryParam); List<UserListRightByCustomerVo> listRightByCustomer(UserListRightByCustomerQueryParam queryParam);
Right getEnableSpecPeriodRight(Long userId, Long miId, RightTypeEnum type);
Right getEnableRight(Long userId, Long miId, RightTypeEnum type, RightUnitEnum unit);
RightTerm getRightTermByName(Right right, RightNameEnum name); RightTerm getRightTermByName(Right right, RightNameEnum name);
/**
* todo 检查今日使用次数
*/
boolean checkEnableRight(Long userId, Long miId, RightTypeEnum type);
List<Right> listEnableRightBy(Long userId, Long miId, RightTypeEnum type);
boolean checkEnable(Right right);
} }

76
dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/impl/RightQueryServiceImpl.java

@ -38,23 +38,8 @@ public class RightQueryServiceImpl implements RightQueryService {
public List<UserListRightByCustomerVo> listRightByCustomer(UserListRightByCustomerQueryParam queryParam) { public List<UserListRightByCustomerVo> listRightByCustomer(UserListRightByCustomerQueryParam queryParam) {
List<UserListRightByCustomerVo> customerVolist = new ArrayList<>(); List<UserListRightByCustomerVo> customerVolist = new ArrayList<>();
// 1 找出客户所有的权益 先到期先用 // 1 找出客户所有的权益 先到期先用
LambdaQueryWrapper<Right> rightWrapper = new LambdaQueryWrapper<>();
rightWrapper.eq(Right::getUserId, queryParam.getUserId());
rightWrapper.eq(Right::getMiId, queryParam.getMiId());
if (Objects.nonNull(queryParam.getType())) {
rightWrapper.eq(Right::getType, queryParam.getType());
}
rightWrapper.eq(Right::getEnable, true);
rightWrapper.ge(Right::getEndTime, LocalDateTime.now());
rightWrapper.orderByAsc(Right::getEndTime);
List<Right> allRightList = rightDao.selectList(rightWrapper);
List<Right> allRightList = listEnableRightBy(queryParam.getUserId(), queryParam.getMiId(), RightTypeEnum.get(queryParam.getType()));
if (CollUtil.isNotEmpty(allRightList)) { if (CollUtil.isNotEmpty(allRightList)) {
List<Long> rightIdList = allRightList.stream().map(Right::getId).collect(Collectors.toList());
List<RightTerm> allRightTermList = rightTermDao.selectList(new LambdaQueryWrapper<RightTerm>()
.in(RightTerm::getRightId, rightIdList));
Map<Long, List<RightTerm>> allRightTermMap = allRightTermList.stream().collect(Collectors.groupingBy(RightTerm::getRightId));
allRightList.forEach(right -> right.setRightTermList(allRightTermMap.get(right.getId())));
// 2.按照权益分类 // 2.按照权益分类
Map<RightTypeEnum, List<Right>> allRightMap = allRightList.stream().collect(Collectors.groupingBy(Right::getType)); Map<RightTypeEnum, List<Right>> allRightMap = allRightList.stream().collect(Collectors.groupingBy(Right::getType));
for (RightTypeEnum rightType : RightTypeEnum.values()) { for (RightTypeEnum rightType : RightTypeEnum.values()) {
@ -101,16 +86,68 @@ public class RightQueryServiceImpl implements RightQueryService {
return customerVo; return customerVo;
} }
@Override
public Right getEnableSpecPeriodRight(Long userId, Long miId, RightTypeEnum type) {
public Right getEnableRight(Long userId, Long miId, RightTypeEnum type, RightUnitEnum unit) {
Right right = null; Right right = null;
Long rightId = rightDao.getEnableSpecPeriodRightId(userId, miId, type, RightUnitEnum.SPEC_PERIOD);
Long rightId = rightDao.getEnableSpecPeriodRightId(userId, miId, type, unit);
if (Objects.nonNull(rightId)) { if (Objects.nonNull(rightId)) {
right = rightRepository.load(rightId); right = rightRepository.load(rightId);
} }
return right; return right;
} }
@Override
public boolean checkEnableRight(Long userId, Long miId, RightTypeEnum type) {
Long rightId = rightDao.getEnableSpecPeriodRightId(userId, miId, type, null);
return Objects.nonNull(rightId);
}
@Override
public List<Right> listEnableRightBy(Long userId, Long miId, RightTypeEnum type) {
LambdaQueryWrapper<Right> rightWrapper = new LambdaQueryWrapper<>();
rightWrapper.eq(Right::getUserId, userId);
rightWrapper.eq(Right::getMiId, miId);
if (Objects.nonNull(type)) {
rightWrapper.eq(Right::getType, type);
}
rightWrapper.eq(Right::getEnable, true);
rightWrapper.ge(Right::getEndTime, LocalDateTime.now());
rightWrapper.orderByAsc(Right::getEndTime);
List<Right> allRightList = rightDao.selectList(rightWrapper);
if (CollUtil.isNotEmpty(allRightList)) {
List<Long> rightIdList = allRightList.stream().map(Right::getId).collect(Collectors.toList());
List<RightTerm> allRightTermList = rightTermDao.selectList(new LambdaQueryWrapper<RightTerm>()
.in(RightTerm::getRightId, rightIdList));
Map<Long, List<RightTerm>> allRightTermMap = allRightTermList.stream().collect(Collectors.groupingBy(RightTerm::getRightId));
allRightList.forEach(right -> right.setRightTermList(allRightTermMap.get(right.getId())));
}
return allRightList;
}
@Override
public boolean checkEnable(Right right) {
//1.判断enable
if (!right.getEnable()) {
return false;
}
//2.判断有效期
if (Objects.nonNull(right.getStartTime()) && Objects.nonNull(right.getEndTime())) {
LocalDateTime now = LocalDateTime.now();
if (right.getStartTime().isAfter(now) || right.getEndTime().isBefore(now)) {
return false;
}
}
//3.判断剩余条数
RightTerm rightCountRightTerm = getRightTermByName(right, RightNameEnum.RIGHT_COUNT);
if (Objects.nonNull(rightCountRightTerm)) {
int rightCount = Integer.parseInt(rightCountRightTerm.getValue());
// rightCount==0 表示已用完 rightCount==-1 表示不限次数
if (rightCount == 0 || rightCount < -1) {
return false;
}
}
return true;
}
@Override @Override
public RightTerm getRightTermByName(Right right, RightNameEnum name) { public RightTerm getRightTermByName(Right right, RightNameEnum name) {
RightTerm rightTerm = null; RightTerm rightTerm = null;
@ -124,4 +161,5 @@ public class RightQueryServiceImpl implements RightQueryService {
} }
return rightTerm; return rightTerm;
} }
} }

19
dating-agency-mall-server/src/main/resources/mapper/right/RightMapper.xml

@ -6,14 +6,17 @@
<select id="getEnableSpecPeriodRightId" resultType="java.lang.Long"> <select id="getEnableSpecPeriodRightId" resultType="java.lang.Long">
select dar.id select dar.id
from da_right as dar from da_right as dar
INNER JOIN da_right_term as dart
on dart.right_id = dar.id and dart.unit = #{unit} and dart.is_delete = 0
INNER JOIN da_right_term as dart
on dart.right_id = dar.id and dart.is_delete = 0
where dar.is_delete = 0 where dar.is_delete = 0
and dar.user_id = #{userId}
and dar.mi_id = #{miId}
and dar.type = #{type}
and dar.`enable`=1
and dar.end_time > NOW()
limit 1
and dar.user_id = #{userId}
and dar.mi_id = #{miId}
and dar.type = #{type}
and dar.`enable`=1
and dar.end_time > NOW()
<if test="unit != null">
and dart.unit = #{unit}
</if>
limit 1
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save