提交 44d19908 authored 作者: Whispa's avatar Whispa

commit

上级 06ea64ad
package com.example.afrishop_v3.controllers;
import com.example.afrishop_v3.base.Result;
import com.example.afrishop_v3.enums.OrderStatusEnum;
import com.example.afrishop_v3.enums.ResultCodeEnum;
import com.example.afrishop_v3.models.*;
import com.example.afrishop_v3.repository.*;
import com.example.afrishop_v3.security.services.AuthenticationUser;
......@@ -8,8 +11,6 @@ import org.springframework.web.bind.annotation.*;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
......@@ -24,8 +25,9 @@ public class BonusController extends Controller {
private final NetworkRepository networkRepository;
private final EntityManager entityManager;
private final AuthenticationUser user;
private final TbCfOrderRepository orderRepository;
public BonusController(BonusRepository repository, TbCfStationItemRepository itemRepository, UserRepository userRepository, PostRepository postRepository, NetworkRepository networkRepository, EntityManager entityManager, AuthenticationUser user) {
public BonusController(BonusRepository repository, TbCfStationItemRepository itemRepository, UserRepository userRepository, PostRepository postRepository, NetworkRepository networkRepository, EntityManager entityManager, AuthenticationUser user, TbCfOrderRepository orderRepository) {
this.repository = repository;
this.itemRepository = itemRepository;
this.userRepository = userRepository;
......@@ -33,6 +35,7 @@ public class BonusController extends Controller {
this.networkRepository = networkRepository;
this.entityManager = entityManager;
this.user = user;
this.orderRepository = orderRepository;
}
@Deprecated
......@@ -169,12 +172,33 @@ public class BonusController extends Controller {
}
@PostMapping(value = "/saveNetworkMarketing")
public Bonus saveNetworkMarketing(@ModelAttribute("Bonus") Bonus bonus) {
public Result saveNetworkMarketing(@ModelAttribute("Bonus") Bonus bonus) {
TbCfUserInfo info = user.user();
Optional<String> userIdOptional = bonus.userId();
String orderId = bonus.getOrderId();
if( orderId == null )
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Order is missing !!!");
Optional<TbCfOrder> orderOptional = orderRepository.findById(orderId);
if( !orderOptional.isPresent() )
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Order is missing !!!");
TbCfOrder order = orderOptional.get();
if( !OrderStatusEnum.PAID.getValue().equals(order.getPayStatus()) ){
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Invalid order status");
}
if( repository.existsById(orderId) ){
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Transaction already done !!!");
}
double amount = bonus.getAmount();
if (userIdOptional.isPresent()) {
......@@ -210,13 +234,13 @@ public class BonusController extends Controller {
}
TbCfUserInfo bonusInc = runBonusInc(user, amount, 5,false,bonus.getOrderId());
runBonusInc(sharer.orElseGet(() -> postOptional.isPresent() ? postOptional.get().getRealUser() : bonusInc), amount, 5,postOptional.isPresent() || sharer.isPresent(),bonus.getOrderId());
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 bonus;
return new Result<>(bonus);
}
private TbCfUserInfo runBonusInc(TbCfUserInfo user, double amount, int percent,boolean direct,String orderId) {
......
......@@ -23,6 +23,8 @@ public interface BonusRepository extends JpaRepository<Bonus,String> {
@Transactional
void removeByPost_Id(@Param("post") String post_id);
boolean existsByOrderId(String orderId);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论