记得上下班打卡 | git大法好,push需谨慎

Commit c3dfa3bf authored by jiangxiulong's avatar jiangxiulong

feignStone

parent ab365096
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-bus-feign</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-api-feign-stone</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-stone-do</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.liquidnet.service.feign.stone.api;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.stone.dto.StoneScoreListDto;
import feign.hystrix.FallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
/**
* <p>
* 积分接口
* </p>
*
* @author jiangxiulong
* @since 2021-11-02
*/
@Component
@FeignClient(
name = "liquidnet-service-stone",
contextId = "FeignStoneIntegralClient",
path = "",
url = "${liquidnet.service.stone.url}",
fallback = FallbackFactory.Default.class
)
public interface FeignStoneIntegralClient {
@GetMapping("user/info")
ResponseDto<StoneScoreListDto> stoneUserInfo();
}
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
<module>liquidnet-api-feign-platform</module> <module>liquidnet-api-feign-platform</module>
<module>liquidnet-api-feign-sweet</module> <module>liquidnet-api-feign-sweet</module>
<module>liquidnet-api-feign-chime</module> <module>liquidnet-api-feign-chime</module>
<module>liquidnet-api-feign-stone</module>
<!-- <module>liquidnet-api-feign-sequence</module>--> <!-- <module>liquidnet-api-feign-sequence</module>-->
<!-- <module>liquidnet-api-feign-example</module>--> <!-- <module>liquidnet-api-feign-example</module>-->
<!-- <module>liquidnet-api-feign-account</module>--> <!-- <module>liquidnet-api-feign-account</module>-->
......
...@@ -85,6 +85,11 @@ ...@@ -85,6 +85,11 @@
<groupId>org.springframework.data</groupId> <groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId> <artifactId>spring-data-mongodb</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-stone</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.liquidnet.service.sweet.config;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 解决feign调用传递header问题
* @class: SecuringRequestInterceptor
*/
@Component
public class SecuringRequestInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
Enumeration<String> headerNames = request.getHeaderNames();
if (headerNames != null) {
while (headerNames.hasMoreElements()) {
String name = headerNames.nextElement();
String values = request.getHeader(name);
requestTemplate.header(name, values);
}
}
}
}
\ No newline at end of file
...@@ -52,7 +52,7 @@ public class SweetIntegralActivityDrawController { ...@@ -52,7 +52,7 @@ public class SweetIntegralActivityDrawController {
@RequestParam("type") Integer type, @RequestParam("type") Integer type,
@RequestParam("integralActivityId") String integralActivityId, @RequestParam("integralActivityId") String integralActivityId,
@RequestParam("pageNum") Integer pageNum @RequestParam("pageNum") Integer pageNum
) { ) {
return activityDrawService.drawList(type, integralActivityId, pageNum); return activityDrawService.drawList(type, integralActivityId, pageNum);
} }
......
...@@ -9,6 +9,8 @@ import com.liquidnet.service.base.PagedResult; ...@@ -9,6 +9,8 @@ import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.feign.stone.api.FeignStoneIntegralClient;
import com.liquidnet.service.stone.dto.StoneScoreListDto;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo; import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo; import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo; import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo;
...@@ -55,6 +57,9 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg ...@@ -55,6 +57,9 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
@Autowired @Autowired
private QueueUtils queueUtils; private QueueUtils queueUtils;
@Autowired
private FeignStoneIntegralClient feignStoneIntegralClient;
@Override @Override
public ResponseDto<SweetIntegralActivityPrizeVo> create(String integralActivityId) { public ResponseDto<SweetIntegralActivityPrizeVo> create(String integralActivityId) {
// TODO: 2021/10/26 看情况是否加锁 一个用户整个逻辑单进程 // TODO: 2021/10/26 看情况是否加锁 一个用户整个逻辑单进程
...@@ -78,7 +83,21 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg ...@@ -78,7 +83,21 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
} }
} }
// TODO: 2021/10/27 判断用户积分是否>=integralActivity.setActivityNum(); // 判断用户积分是否>=integralActivity.setActivityNum();
ResponseDto<StoneScoreListDto> userInfoRes = feignStoneIntegralClient.stoneUserInfo();
if (!userInfoRes.getCode().equals(0)) {
return ResponseDto.failure("获取用户积分数据失败");
} else {
StoneScoreListDto userInfoData = userInfoRes.getData();
if (userInfoData.getStatus() == 2) {
return ResponseDto.failure("您的积分账户已被冻结!");
} else {
BigDecimal scoreRest = userInfoData.getScoreRest();
if (scoreRest.compareTo(BigDecimal.valueOf(integralActivity.getActivityNum())) == -1) {
return ResponseDto.failure("您的积分账户余额不足!");
}
}
}
// 如果库存没了 限制的中奖人数到了就从列表剔出 列表为空就都没有库存了 // 如果库存没了 限制的中奖人数到了就从列表剔出 列表为空就都没有库存了
List<SweetIntegralActivityPrize> prizeList = integralActivity.getPrizeList(); List<SweetIntegralActivityPrize> prizeList = integralActivity.getPrizeList();
...@@ -101,7 +120,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg ...@@ -101,7 +120,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
long activityPrizeNum = redisDataUtils.setIntegralActivityPrizeNum(integralActivityId, sweetIntegralActivityPrizeVo.getPrizeId(), 1); long activityPrizeNum = redisDataUtils.setIntegralActivityPrizeNum(integralActivityId, sweetIntegralActivityPrizeVo.getPrizeId(), 1);
long activityPrizeWinnersNum = redisDataUtils.setIntegralActivityPrizeWinnersNum(integralActivityId, sweetIntegralActivityPrizeVo.getPrizeId(), 1); long activityPrizeWinnersNum = redisDataUtils.setIntegralActivityPrizeWinnersNum(integralActivityId, sweetIntegralActivityPrizeVo.getPrizeId(), 1);
if (activityPrizeNum < 0 || activityPrizeWinnersNum < 0) {// 库存不够了 if (activityPrizeNum < 0 || activityPrizeWinnersNum < 0) {// 库存不够了
return ResponseDto.failure("活动太火爆了,请稍后再试"); return ResponseDto.failure("活动太火爆了,奖品已经没有库存啦!");
} }
String drawId = IDGenerator.nextSnowId(); String drawId = IDGenerator.nextSnowId();
IntegralActivityDrawVo integralActivityDrawVo = IntegralActivityDrawVo.getNew(); IntegralActivityDrawVo integralActivityDrawVo = IntegralActivityDrawVo.getNew();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment