提交 14514056 authored 作者: 吴德鹏's avatar 吴德鹏

活动

上级 788ec253
......@@ -28,6 +28,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.locks.ReentrantLock;
@RestController
@RequestMapping("/dpo")
......@@ -44,6 +45,7 @@ public class DpoPayController extends Controller {
private final PostRepository postRepository;
private final TbCfOrderRepository orderRepository;
public DpoPayController(TbCfOrderRepository repository, UserRepository userRepository, TbCfFinanceRepository financeRepository, AuthenticationUser user, DpoConfiguration config, NetworkRepository networkRepository, BonusRepository bonusRepository, PostRepository postRepository, TbCfOrderRepository orderRepository) {
this.repository = repository;
this.userRepository = userRepository;
......@@ -336,7 +338,7 @@ public class DpoPayController extends Controller {
tranMap.put("CompanyRefUnique", 0);
// logger.info("getOrderSource---------->>>>>>>>>>>>" + order.getOrderSource());
//回调地址
if ("2".equals(order.getOrderSource().toString())||"3".equals(order.getOrderSource().toString())) {
if ("2".equals(order.getOrderSource().toString()) || "3".equals(order.getOrderSource().toString())) {
tranMap.put("RedirectURL", config.getNotifyUrl() + "/web");
} else {
tranMap.put("RedirectURL", config.getNotifyUrl());
......@@ -360,36 +362,35 @@ public class DpoPayController extends Controller {
}
public Result saveNetworkMarketing(Bonus bonus, String userId) {
TbCfUserInfo info = user.user();
public void saveNetworkMarketing(Bonus bonus, String userId) {
// Optional<String> userIdOptional = userId;
System.out.println("userId==" + userId);
String orderId = bonus.getOrderId();
if (orderId == null)
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Order is missing !!!");
logger.info("佣金:orderId为空");
Optional<TbCfOrder> orderOptional = orderRepository.findById(orderId);
if (!orderOptional.isPresent())
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Order is missing !!!");
logger.info("佣金:订单不存在");
TbCfOrder order = orderOptional.get();
if (!OrderStatusEnum.PAID.getValue().equals(order.getPayStatus())) {
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Invalid order status");
logger.info("佣金:订单未支付");
}
if (bonusRepository.existsByOrderId(orderId)) {
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Transaction already done !!!");
}
boolean condition = orderId != null && orderOptional.isPresent() && OrderStatusEnum.PAID.getValue().equals(order.getPayStatus()) && !StringUtils.isBlank(userId);
// if (bonusRepository.existsByOrderId(orderId)) {
// return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Transaction already done !!!");
// }
BigDecimal amount = bonus.getAmount();
if (!StringUtils.isBlank(userId)) {
if (condition) {
Optional<TbCfUserInfo> optionalUser = userRepository.findById(userId);
......@@ -408,27 +409,28 @@ public class DpoPayController extends Controller {
if (productSharer != null) {
sharer = userRepository.findByCode(productSharer);
}
if (user.invited()) {
BigDecimal v = amount.multiply(BigDecimal.valueOf(10)).divide(BigDecimal.valueOf(100), RoundingMode.CEILING);
bonus.setAmount(v);
bonus.setUserInfo(user);
bonus.setPercentage(10);
bonus = bonusRepository.save(bonus);
if (user.hasFcm()) {
sendNotification(user.getFcm(), "Bonus alert !!", user.display() + ", You received bonus of $" + formatter.format(v) + " in your account");
synchronized (this) {
boolean exists = bonusRepository.existsByOrderId(orderId);
if (!exists && user.invited()) {
BigDecimal v = amount.multiply(BigDecimal.valueOf(10)).divide(BigDecimal.valueOf(100), RoundingMode.CEILING);
bonus.setAmount(v);
bonus.setUserInfo(user);
bonus.setPercentage(10);
bonus = bonusRepository.save(bonus);
if (user.hasFcm()) {
sendNotification(user.getFcm(), "Bonus alert !!", user.display() + ", You received bonus of $" + formatter.format(v) + " in your account");
}
}
}
TbCfUserInfo bonusInc = runBonusInc(user, amount, 5, false, orderId);
runBonusInc(sharer.orElseGet(() -> postOptional.isPresent() ? postOptional.get().getRealUser() : bonusInc), amount, 5, postOptional.isPresent() || sharer.isPresent(), orderId);
//runBonusInc(bonusInc, amount, 0);
}
}
return new Result<>(bonus);
}
private TbCfUserInfo runBonusInc(TbCfUserInfo user, BigDecimal amount, int percent, boolean direct, String orderId) {
......@@ -443,7 +445,7 @@ public class DpoPayController extends Controller {
bonus.setAmount(v);
bonus.setPercentage(percent);
bonus.setOrderId(orderId);
if (userInfo!=null&&userInfo.invited()&&!"000000".equals(userInfo.getCode())) {
if (userInfo != null && userInfo.invited() && !"000000".equals(userInfo.getCode())) {
bonusRepository.save(bonus);
// bonus = repository.save(bonus);
if (userInfo.hasFcm()) {
......
......@@ -81,7 +81,7 @@ public class FlutterWaveController extends Controller {
public ResponseEntity<String> payForOrderByCard(@RequestParam("orderId") String orderId, @RequestBody FlutterWaveCard flutterWaveCard) {
RaveConstant.PUBLIC_KEY = PUBLIC_KEY;
RaveConstant.SECRET_KEY = SECRET_KEY;
RaveConstant.ENVIRONMENT = Environment.LIVE; //or live
RaveConstant.ENVIRONMENT = Environment.STAGING; //or live
// Result result = new Result();
Optional<TbCfOrder> byId = repository.findById(orderId);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论