Ver Fonte

用户佣金

licailing há 5 anos atrás
pai
commit
20f17ce7de

+ 3 - 2
src/main/java/com/izouma/jiashanxia/repo/CommissionRecordRepo.java

@@ -1,6 +1,7 @@
 package com.izouma.jiashanxia.repo;
 
 import com.izouma.jiashanxia.domain.CommissionRecord;
+import com.izouma.jiashanxia.enums.TransactionType;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
@@ -18,6 +19,6 @@ public interface CommissionRecordRepo extends JpaRepository<CommissionRecord, Lo
 
     List<CommissionRecord> findAllByUserId(Long userId);
 
-    @Query("select sum(c.amount) from CommissionRecord c where c.userId = ?1")
-    BigDecimal sumByUserId(Long userId);
+    @Query("select sum(c.amount) from CommissionRecord c where c.userId = ?1 and c.transactionType = ?2")
+    BigDecimal sumByUserId(Long userId, TransactionType type);
 }

+ 12 - 1
src/main/java/com/izouma/jiashanxia/service/UserService.java

@@ -6,10 +6,12 @@ import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
 import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
 import cn.hutool.core.util.ObjectUtil;
 import com.izouma.jiashanxia.config.Constants;
+import com.izouma.jiashanxia.domain.CommissionRecord;
 import com.izouma.jiashanxia.domain.User;
 import com.izouma.jiashanxia.dto.PageQuery;
 import com.izouma.jiashanxia.dto.UserRegister;
 import com.izouma.jiashanxia.enums.AuthorityName;
+import com.izouma.jiashanxia.enums.TransactionType;
 import com.izouma.jiashanxia.exception.BusinessException;
 import com.izouma.jiashanxia.repo.CommissionRecordRepo;
 import com.izouma.jiashanxia.repo.OrderInfoRepo;
@@ -293,7 +295,16 @@ public class UserService {
     public Map<String, Object> overview(Long userId) {
         Map<String, Object> map = new HashMap<>();
         map.put("orderCount", orderInfoRepo.countByUserId(userId));
-        map.put("commission", commissionRecordRepo.sumByUserId(userId));
+        BigDecimal empPromote = commissionRecordRepo.sumByUserId(userId, TransactionType.EMPLOYEES_PROMOTE);
+        BigDecimal promote = commissionRecordRepo.sumByUserId(userId, TransactionType.PROMOTE);
+        if (ObjectUtil.isNull(empPromote)) {
+            empPromote = BigDecimal.ZERO;
+        }
+        if (ObjectUtil.isNull(promote)) {
+            promote = BigDecimal.ZERO;
+        }
+        map.put("commission", empPromote.add(promote));
+        map.put("withdraw", commissionRecordRepo.sumByUserId(userId, TransactionType.WITHDRAW));
         map.put("promote", userRepo.countByParent(userId));
         return map;
     }

+ 21 - 0
src/test/java/com/izouma/jiashanxia/repo/CommissionRecordRepoTest.java

@@ -0,0 +1,21 @@
+package com.izouma.jiashanxia.repo;
+
+import com.izouma.jiashanxia.enums.TransactionType;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@SpringBootTest
+@RunWith(SpringRunner.class)
+public class CommissionRecordRepoTest {
+
+    @Autowired
+    private CommissionRecordRepo commissionRecordRepo;
+
+    @Test
+    public void sumByUserId() {
+        System.out.println(commissionRecordRepo.sumByUserId(40L, TransactionType.WITHDRAW));
+    }
+}

+ 6 - 1
src/test/java/com/izouma/jiashanxia/service/UserServiceTest.java

@@ -19,7 +19,7 @@ public class UserServiceTest {
     @Autowired
     private UserService userService;
     @Autowired
-    private UserRepo userRepo;
+    private UserRepo    userRepo;
 
     @Test
     public void myPromotion() {
@@ -32,4 +32,9 @@ public class UserServiceTest {
         User user = userRepo.findById(1L).orElseThrow(new BusinessException("无用户"));
         System.out.println(userService.myEmployee(new PageQuery(), user).getContent());
     }
+
+    @Test
+    public void test2() {
+        System.out.println(userService.overview(102L));
+    }
 }