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

活动

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