Helius
2021-04-01 451f88585ce56b852ceba3a7f20c62bf6fa9f8fe
modify
2 files modified
22 ■■■■ changed files
src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java 7 ●●●●● patch | view | raw | blame | history
src/test/java/com/xcong/excoin/RedisTest.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/documentary/service/impl/FollowOrderOperationServiceImpl.java
@@ -121,17 +121,16 @@
        BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(holdOrderEntity.getSymbol());
        Long tradeMemberId = holdOrderEntity.getMemberId();
        if (CollUtil.isNotEmpty(followerSettings)) {
            List<Long> hasExists = new ArrayList<>();
            List<Object> followerMemberId =  redisUtils.lGet(AppContants.MEMBER_HAS_FOLLOW, 0, -1);
            for (FollowFollowerSettingEntity followerSetting : followerSettings) {
                // 加redis锁,同一个用户不能同时触发两个跟单任务,否则会出现金额问题
                while(true) {
                    List<Object> followerMemberId =  redisUtils.lGet(AppContants.MEMBER_HAS_FOLLOW, 0, -1);
                    log.info("#跟单用户任务已存在:{}, 当前:{}#", followerMemberId, followerSetting.getMemberId());
                    log.info("#------->{}#", followerMemberId.contains(followerSetting.getMemberId().intValue()));
                    if (CollUtil.isEmpty(followerMemberId) || !followerMemberId.contains(followerSetting.getMemberId().intValue())) {
                        log.info("跳出");
                        hasExists.add(followerSetting.getMemberId());
                        redisUtils.lSet(AppContants.MEMBER_HAS_FOLLOW, hasExists);
                        followerMemberId.add(followerSetting.getMemberId());
                        redisUtils.lSet(AppContants.MEMBER_HAS_FOLLOW, followerMemberId);
                        break;
                    }
                }
src/test/java/com/xcong/excoin/RedisTest.java
@@ -10,6 +10,8 @@
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
 * @author wzy
@@ -32,4 +34,17 @@
        redisUtils.set("app_21c8fb68f5de4bbfb91a03813833db8a", JSONObject.toJSONString(member), 36000);
    }
    @Test
    public void redisObjectTest() {
        List<Object> test_list = redisUtils.lGet("test_list", 0, -1);
        Long id = 13L;
        test_list.add(id);
        redisUtils.lSet("test_list", test_list);
        List<Object> test_list1 = redisUtils.lGet("test_list", 0, -1);
        log.info("--->{}", test_list1);
        System.out.println(test_list1.contains(id.intValue()));
    }
}