Browse Source

基础配置

master
张彭杰 2 years ago
parent
commit
28ccb0d26b
7 changed files with 109 additions and 12 deletions
  1. 9
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/RightUserQueryController.java
  2. 23
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/request/UserCheckEnableRightBySdkQueryParam.java
  3. 11
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/response/UserCheckEnableRightBySdkVo.java
  4. 24
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/right/RightApplicationService.java
  5. 6
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/RightQueryService.java
  6. 47
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/impl/RightQueryServiceImpl.java
  7. 1
      dating-agency-mall-server/src/main/resources/mapper/right/RightMapper.xml

9
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/RightUserQueryController.java

@ -1,8 +1,11 @@
package com.qniao.dam.api.query.right.user;
import com.qniao.dam.api.query.right.user.request.UserCheckEnableRightBySdkQueryParam;
import com.qniao.dam.api.query.right.user.request.UserListRightByCustomerQueryParam;
import com.qniao.dam.api.query.right.user.response.UserCheckEnableRightBySdkVo;
import com.qniao.dam.api.query.right.user.response.UserListRightByCustomerVo;
import com.qniao.dam.query.right.RightQueryService;
import com.qniao.framework.annotation.IgnoreResponseAdvice;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
@ -27,4 +30,10 @@ public class RightUserQueryController {
return rightQueryService.listRightByCustomer(queryParam);
}
@GetMapping("check/enable-right/by/sdk")
@ApiOperation("客户检查可用权益")
@IgnoreResponseAdvice
public UserCheckEnableRightBySdkVo userCheckEnableRightBySdk(@Validated UserCheckEnableRightBySdkQueryParam queryParam) {
return rightQueryService.checkEnableRight(queryParam);
}
}

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

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

11
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/response/UserCheckEnableRightBySdkVo.java

@ -0,0 +1,11 @@
package com.qniao.dam.api.query.right.user.response;
import lombok.Data;
@Data
public class UserCheckEnableRightBySdkVo {
private Boolean flag = false;
private String failReason;
}

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

@ -2,6 +2,7 @@ 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.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;
@ -154,24 +155,31 @@ public class RightApplicationService {
public UserConsumeRightBySdkVo consumeRight(UserConsumeRightBySdkDto dto) {
UserConsumeRightBySdkVo vo = new UserConsumeRightBySdkVo();
String failReason = null;
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);
break;
//1.判断今日使用权益次数
if (!rightQueryService.checkRightUseLimit(rightList.get(0))) {
failReason = "您的今日使用权益已达上限";
} else {
for (Right right : rightList) {
if (rightQueryService.checkEnable(right)) {
executeConsumeRight(right, dto.getAssociatedId());
vo.setFlag(true);
break;
}
}
}
}
if (!vo.getFlag()) {
vo.setFailReason("您剩余的权益已过期或已用完");
if (!vo.getFlag() && StrUtil.isBlank(failReason)) {
failReason = "您剩余的权益已过期或已用完";
}
} catch (Exception e) {
vo.setFailReason("权益使用异常");
failReason = "权益使用异常";
log.error("用户消费权益失败", e);
}
vo.setFailReason(failReason);
return vo;
}

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

@ -1,6 +1,8 @@
package com.qniao.dam.query.right;
import com.qniao.dam.api.query.right.user.request.UserCheckEnableRightBySdkQueryParam;
import com.qniao.dam.api.query.right.user.request.UserListRightByCustomerQueryParam;
import com.qniao.dam.api.query.right.user.response.UserCheckEnableRightBySdkVo;
import com.qniao.dam.api.query.right.user.response.UserListRightByCustomerVo;
import com.qniao.dam.domain.aggregate.right.entity.Right;
import com.qniao.dam.domain.aggregate.right.entity.RightTerm;
@ -21,9 +23,11 @@ public interface RightQueryService {
/**
* todo 检查今日使用次数
*/
boolean checkEnableRight(Long userId, Long miId, RightTypeEnum type);
UserCheckEnableRightBySdkVo checkEnableRight(UserCheckEnableRightBySdkQueryParam queryParam);
List<Right> listEnableRightBy(Long userId, Long miId, RightTypeEnum type);
boolean checkEnable(Right right);
Boolean checkRightUseLimit(Right right);
}

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

@ -1,8 +1,11 @@
package com.qniao.dam.query.right.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qniao.dam.api.query.right.user.request.UserCheckEnableRightBySdkQueryParam;
import com.qniao.dam.api.query.right.user.request.UserListRightByCustomerQueryParam;
import com.qniao.dam.api.query.right.user.response.UserCheckEnableRightBySdkVo;
import com.qniao.dam.api.query.right.user.response.UserListRightByCustomerVo;
import com.qniao.dam.domain.aggregate.right.entity.Right;
import com.qniao.dam.domain.aggregate.right.entity.RightTerm;
@ -14,6 +17,7 @@ import com.qniao.dam.infrastructure.persistent.dao.domain.RightDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.RightTermDao;
import com.qniao.dam.query.right.RightQueryService;
import com.qniao.dam.query.rightconsumerel.RightConsumeRelQueryService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -25,6 +29,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@Service
public class RightQueryServiceImpl implements RightQueryService {
@ -100,10 +105,46 @@ public class RightQueryServiceImpl implements RightQueryService {
return right;
}
public Boolean checkRightUseLimit(Right right) {
boolean flag = true;
RightTerm dailyUseLimitRightTerm = getRightTermByName(right, RightNameEnum.DAILY_USE_LIMIT);
if (Objects.nonNull(dailyUseLimitRightTerm)) {
int dailyUseLimit = Integer.parseInt(dailyUseLimitRightTerm.getValue());
if (dailyUseLimit != -1) {
flag = dailyUseLimit > rightConsumeRelQueryService.countDailyUseBy(right.getUserId(), right.getMiId(), right.getType());
}
}
return flag;
}
@Override
public boolean checkEnableRight(Long userId, Long miId, RightTypeEnum type) {
Long rightId = rightDao.getEnableSpecPeriodRightId(userId, miId, type, null);
return Objects.nonNull(rightId);
public UserCheckEnableRightBySdkVo checkEnableRight(UserCheckEnableRightBySdkQueryParam queryParam) {
UserCheckEnableRightBySdkVo vo = new UserCheckEnableRightBySdkVo();
String failReason = null;
try {
List<Right> rightList = listEnableRightBy(queryParam.getUserId(), queryParam.getMiId(), RightTypeEnum.get(queryParam.getType()));
if (CollUtil.isNotEmpty(rightList)) {
//1.判断今日使用权益次数
if (!checkRightUseLimit(rightList.get(0))) {
failReason = "您的今日使用权益已达上限";
} else {
for (Right right : rightList) {
if (checkEnable(right)) {
vo.setFlag(true);
break;
}
}
}
}
if (!vo.getFlag() && StrUtil.isBlank(failReason)) {
failReason = "您剩余的权益已过期或已用完";
}
} catch (Exception e) {
failReason = "权益使用异常";
log.error("用户消费权益失败", e);
}
vo.setFailReason(failReason);
return vo;
}
@Override

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

@ -17,6 +17,7 @@
<if test="unit != null">
and dart.unit = #{unit}
</if>
order by dar.end_time asc
limit 1
</select>
</mapper>
Loading…
Cancel
Save