dcs 1 month ago
parent
commit
87de3c08cb

+ 0 - 15
virgo.api/src/main/java/com/bosshand/virgo/api/workark/controller/AccountBalanceController.java

@@ -5,7 +5,6 @@ import com.bosshand.virgo.core.response.Response;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
@@ -24,18 +23,4 @@ public class AccountBalanceController {
         return Response.ok(accountBalanceService.get());
         return Response.ok(accountBalanceService.get());
     }
     }
 
 
-    @ApiOperation("领取佣金")
-    @RequestMapping(value = "/{orderNo}", method = RequestMethod.GET)
-    public Response save(@PathVariable String orderNo) {
-        if (accountBalanceService.getUserId(orderNo)) {
-            return Response.fail(20000, "订单不属于你的邀请人,无法领取");
-        }
-        if (accountBalanceService.getOrderNo(orderNo)) {
-            accountBalanceService.saveAccountBalanceDetails(orderNo);
-            return Response.ok();
-        }
-        return Response.fail(20000, "订单佣金已经领取了");
-    }
-
-
 }
 }

+ 15 - 22
virgo.api/src/main/java/com/bosshand/virgo/api/workark/service/AccountBalanceService.java

@@ -15,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.math.RoundingMode;
-import java.util.List;
 
 
 @Service
 @Service
 public class AccountBalanceService {
 public class AccountBalanceService {
@@ -48,14 +47,25 @@ public class AccountBalanceService {
     @Transactional
     @Transactional
     public void saveAccountBalanceDetails(String orderNo) {
     public void saveAccountBalanceDetails(String orderNo) {
 
 
+        if(this.getOrderNo(orderNo)){
+            return;
+        }
+
+        OrderInfo info = orderInfoDao.getOrderNo(orderNo);
+
+        // 属于那个用户的邀请者
+        Invite invite = inviteDao.getInviteUserId(info.getUserId());
+        if(invite == null){
+            return;
+        }
+
         // 获取用户账号
         // 获取用户账号
-        long userId = ContextUtils.getUserContext().getUserId();
+        long userId = invite.getUserId();
         AccountBalance accountBalance = accountBalanceDao.getUserId(userId);
         AccountBalance accountBalance = accountBalanceDao.getUserId(userId);
 
 
         AccountBalanceDetails accountBalanceDetails = new AccountBalanceDetails();
         AccountBalanceDetails accountBalanceDetails = new AccountBalanceDetails();
         accountBalanceDetails.setAccountBalanceId(accountBalance.getId());
         accountBalanceDetails.setAccountBalanceId(accountBalance.getId());
 
 
-        OrderInfo info = orderInfoDao.getOrderNo(orderNo);
 
 
         accountBalanceDetails.setInviteUserId(info.getUserId());
         accountBalanceDetails.setInviteUserId(info.getUserId());
 
 
@@ -81,26 +91,9 @@ public class AccountBalanceService {
     public boolean getOrderNo(String orderNo) {
     public boolean getOrderNo(String orderNo) {
         AccountBalanceDetails accountBalanceDetails = accountBalanceDetailsDao.getOrderNo(orderNo);
         AccountBalanceDetails accountBalanceDetails = accountBalanceDetailsDao.getOrderNo(orderNo);
         if (accountBalanceDetails != null) {
         if (accountBalanceDetails != null) {
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * 判断订单是否属于当前用户的的邀请人的
-     */
-    public boolean getUserId(String orderNo) {
-        OrderInfo info = orderInfoDao.getOrderNo(orderNo);
-        long userId = ContextUtils.getUserContext().getUserId();
-        List<Invite> inviteList = inviteDao.getUserId(userId);
-        if (inviteList.size() > 0) {
-            for (Invite invite : inviteList) {
-                if (invite.getInviteUserId() == info.getUserId()) {
-                    return false;
-                }
-            }
+            return true;
         }
         }
-        return true;
+        return false;
     }
     }
 
 
 }
 }

+ 5 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/workark/service/WxPayService.java

@@ -61,6 +61,9 @@ public class WxPayService {
     @Resource
     @Resource
     private RefundService refundService;
     private RefundService refundService;
 
 
+    @Autowired
+    private AccountBalanceService accountBalanceService;
+
     private final ReentrantLock lock = new ReentrantLock();
     private final ReentrantLock lock = new ReentrantLock();
 
 
     private final static Log log = LogFactory.getLog(WxPayService.class);
     private final static Log log = LogFactory.getLog(WxPayService.class);
@@ -208,6 +211,8 @@ public class WxPayService {
 
 
         if (WxTradeState.SUCCESS.getType().equals(name)) {
         if (WxTradeState.SUCCESS.getType().equals(name)) {
             orderInfoService.updateStatusByOrderNo(orderNo, OrderStatus.SUCCESS);
             orderInfoService.updateStatusByOrderNo(orderNo, OrderStatus.SUCCESS);
+            //保存佣金
+            accountBalanceService.saveAccountBalanceDetails(orderNo);
         }
         }
         return name;
         return name;