Selaa lähdekoodia

周分红改为整条线

dos 2 kuukautta sitten
vanhempi
commit
feb3e91e02

+ 4 - 0
game-business/src/main/java/com/game/business/mapper/AppUserMapper.java

@@ -3,6 +3,7 @@ package com.game.business.mapper;
 import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.game.business.domain.AppUser;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * app用户Mapper接口
@@ -60,4 +61,7 @@ public interface AppUserMapper extends BaseMapper<AppUser> {
     public int deleteAppUserByUserids(Long[] userids);
 
     Long nextId();
+
+    @Select("select * from app_user where pid = 0 and and agent_flag = 1")
+    public List<AppUser> selectTeamUserList();
 }

+ 2 - 0
game-business/src/main/java/com/game/business/service/IAppUserAgentService.java

@@ -95,4 +95,6 @@ public interface IAppUserAgentService extends IService<AppUserAgent> {
      * 递归查询所有下级代理
      * */
     public List<AppUserAgent> selectAllAgentList(Long pid,Long userId);
+
+    public AppUserAgent selectInfo(Long userId);
 }

+ 8 - 0
game-business/src/main/java/com/game/business/service/IAppUserService.java

@@ -27,6 +27,14 @@ public interface IAppUserService extends IService<AppUser> {
      */
     public List<AppUser> selectAppUserList(AppUser appUser);
 
+    /**
+     * 查询总代理用户
+     *
+     * @param appUser app用户
+     * @return app用户集合
+     */
+    public List<AppUser> selectTeamUserList();
+
     /**
      * 新增app用户
      *

+ 8 - 0
game-business/src/main/java/com/game/business/service/impl/AppUserAgentServiceImpl.java

@@ -248,4 +248,12 @@ public class AppUserAgentServiceImpl extends ServiceImpl<AppUserAgentMapper, App
         return appUserAgentMapper.selectAllAgentList(pid,userId);
     }
 
+    @Override
+    public AppUserAgent selectInfo(Long userId) {
+        LambdaQueryWrapper<AppUserAgent> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AppUserAgent::getUserId,userId);
+        queryWrapper.eq(AppUserAgent::getAuditStatus,1);
+        return appUserAgentMapper.selectOne(queryWrapper);
+    }
+
 }

+ 6 - 0
game-business/src/main/java/com/game/business/service/impl/AppUserServiceImpl.java

@@ -53,6 +53,12 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
         return appUserMapper.selectAppUserList(appUser);
     }
 
+    @Override
+    @DataSource(DataSourceType.SLAVE)
+    public List<AppUser> selectTeamUserList() {
+        return appUserMapper.selectTeamUserList();
+    }
+
     /**
      * 新增app用户
      *

+ 14 - 10
game-business/src/main/java/com/game/business/task/AppUserCountTask.java

@@ -2,6 +2,7 @@ package com.game.business.task;
 
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.game.business.domain.*;
 import com.game.business.service.*;
@@ -240,6 +241,7 @@ public class AppUserCountTask {
      * 计算分红
      * @param dateTime 格式yyyy-MM-dd
      * */
+    @DSTransactional
     public void calculateDividends(String dateTime){
         try {
             log.info("开始每周代理分红");
@@ -251,10 +253,11 @@ public class AppUserCountTask {
             }
             Date beginTime = DateUtil.beginOfWeek(curDate);
             Date endTime = DateUtil.endOfWeek(curDate);
-            //查询所有代理用户
-            AppUser queryUser = new AppUser();
+            //查询所有代理用户
+            /*AppUser queryUser = new AppUser();
             queryUser.setAgentFlag(1);
-            List<AppUser> list = appUserService.selectAppUserList(queryUser);
+            List<AppUser> list = appUserService.selectAppUserList(queryUser);*/
+            List<AppUser> list = appUserService.selectTeamUserList();
             if (null != list && list.size() > 0) {
                 list.forEach(appUser -> {
                     //查询用户所有下级本周盈亏
@@ -284,13 +287,14 @@ public class AppUserCountTask {
                         if (money > 0) {
                             //金额大于0 满足分红
 
-                            //查询用户所有下级
-                            LambdaQueryWrapper<AppUserAgent> userAgentLambdaQueryWrapper = new LambdaQueryWrapper<>();
-                            userAgentLambdaQueryWrapper.eq(AppUserAgent::getPid, appUser.getUserid());
-                            userAgentLambdaQueryWrapper.eq(AppUserAgent::getAuditStatus, 1);
-                            List<AppUserAgent> appUserAgentList = appUserAgentService.list(userAgentLambdaQueryWrapper);
-                            if (null != appUserAgentList && appUserAgentList.size() > 0) {
-                                appUserAgentList.forEach(userAgent -> {
+                            if (null != appUserCountList && appUserCountList.size() > 0) {
+                                appUserCountList.forEach(userCount -> {
+                                    //查询用户代理信息
+                                    AppUserAgent userAgent = appUserAgentService.selectInfo(userCount.getUserId());
+                                    if(null == userAgent) {
+                                        log.info("用户{},不是代理或者代理信息为空,停止分红",userCount.getUserId());
+                                        return;
+                                    }
                                     if (userAgent.getDividendGuaranteeRate() <= 0.00) {
                                         log.info("用户{},团队亏损{},或未设置分红比例,停止分红", userAgent.getUserId(), money);
                                         return;