diff --git a/src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java b/src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java index b66f0f53..601a3b10 100644 --- a/src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java +++ b/src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java @@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.sqx.modules.app.entity.UserMoney; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.math.BigDecimal; @Mapper public interface UserMoneyDao extends BaseMapper { @@ -14,4 +17,11 @@ public interface UserMoneyDao extends BaseMapper { void updateSysMoney(@Param("type") Integer type, @Param("sysUserId")Long sysUserId, @Param("money") Double money); void updateSysAmount(@Param("type") Integer type, @Param("sysUserId")Long sysUserId, @Param("amount") Double amount); + + @Select("select sum(money) from user_money_details where user_id=#{userId} and classify in (6,1) and (content like '%额外奖励金币%' or content like '获取金币')") + BigDecimal sumMoney(Long userId); + + @Select("select sum(money) from user_money_details where user_id=#{userId} and classify=6 and content like '%额外奖励现金红包%'") + BigDecimal sumMoney2(Long userId); + } diff --git a/src/test/java/com/sqx/Tets.java b/src/test/java/com/sqx/Tets.java index ba5ce494..875a5e89 100644 --- a/src/test/java/com/sqx/Tets.java +++ b/src/test/java/com/sqx/Tets.java @@ -13,9 +13,12 @@ import com.aliyun.tea.TeaException; import com.aliyun.teaopenapi.models.Config; import com.aliyun.dytnsapi20200217.Client; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.sqx.modules.app.dao.UserDao; +import com.sqx.modules.app.dao.UserMoneyDao; import com.sqx.modules.app.dao.UserMoneyDetailsDao; import com.sqx.modules.app.entity.InviteAchievement; import com.sqx.modules.app.entity.UserEntity; +import com.sqx.modules.app.entity.UserMoney; import com.sqx.modules.app.entity.UserMoneyDetails; import com.sqx.modules.app.service.InviteAchievementService; import com.sqx.modules.app.service.UserService; @@ -27,6 +30,8 @@ import com.sqx.modules.pay.service.PayDetailsService; import com.sqx.modules.pay.wuyou.BaseResp; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.ApplicationContext; @@ -36,14 +41,13 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; @ActiveProfiles("dev") @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class Tets { + private static final Logger log = LoggerFactory.getLogger(Tets.class); @Autowired ApplicationContext applicationContext; @Autowired @@ -58,6 +62,33 @@ public class Tets { PayDetailsDao payDetailsDao; @Autowired UserMoneyDetailsDao userMoneyDetailsDao; + @Autowired + UserMoneyDao userMoneyDao; + @Autowired + private UserDao userDao; + + @Test + public void test4() { + UserEntity userEntity = userDao.selectById(1072962203591784209L); + UserEntity userEntity2 = userDao.selectById(1072640875319932689L); + tempOrdersTask.activities(userEntity, userEntity2); + } + + @Test + public void test3() { + Set useridList = userMoneyDetailsDao.selectList(new LambdaQueryWrapper().eq(UserMoneyDetails::getClassify, 6).groupBy(UserMoneyDetails::getUserId).select(UserMoneyDetails::getUserId)).stream().map(UserMoneyDetails::getUserId).collect(Collectors.toSet()); + List userMoneyDetailsList = userMoneyDao.selectList(new LambdaQueryWrapper().in(UserMoney::getUserId, useridList)); + userMoneyDetailsList.forEach(userMoney -> { + BigDecimal coin = userMoneyDao.sumMoney(userMoney.getUserId()); + BigDecimal money = userMoneyDao.sumMoney2(userMoney.getUserId()); + log.info("用户: {}, 金币: {}, 金额: {}", userMoney.getUserId(), coin, money); + userMoney.setInviteIncomeCoin(coin); + userMoney.setInviteIncomeMoney(money); + userMoneyDao.update(userMoney, new LambdaQueryWrapper().eq(UserMoney::getUserId, userMoney.getUserId()) + .eq(UserMoney::getId, userMoney.getId())); + }); + + } @Test public void test2() {