admin
2022-01-12 4a7367a869ef12375ea6678ca44e102b8919c624
service-push/src/main/java/com/ks/push/manager/PushExcuteResultManager.java
@@ -6,6 +6,8 @@
import com.ks.push.pojo.DO.BPushTask;
import com.ks.push.pojo.DO.BPushTaskExcuteResult;
import com.ks.push.pojo.DO.PushPlatform;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -16,11 +18,15 @@
@Component
public class PushExcuteResultManager {
    private Logger logger = LoggerFactory.getLogger(PushExcuteResultManager.class);
    @Resource
    private BPushTaskExcuteResultMapper bPushTaskExcuteResultMapper;
    @Resource
    private RedisTemplate<String, Object> redisTemplate;
    private RedisTemplate<String, String> redisTemplate;
    @Resource
    private BPushTaskDao bPushTaskDao;
@@ -37,7 +43,6 @@
        result.setId(BPushTaskExcuteResult.createId(taskId, pushPlatform));
        //初始化
        bPushTaskExcuteResultMapper.insertSelective(result);
        String key = getRedisKey(taskId, pushPlatform);
        redisTemplate.delete(key);
        return result;
@@ -70,10 +75,12 @@
     */
    public void batchPushFinish(BPushDeviceDataSet dataSet, PushPlatform pushPlatform) {
        String key = getRedisKey(dataSet.getTaskId(), pushPlatform);
        redisTemplate.opsForSet().remove(key, dataSet.getBatchId());
        Long size = redisTemplate.opsForSet().size(key);
        redisTemplate.opsForSet().remove(key, dataSet.getBatchId());
        Long afterSize = redisTemplate.opsForSet().size(key);
        logger.info("{}推送剩余数量 taskId-{} size-{} afterSize-{}", pushPlatform.name(), dataSet.getTaskId(), size + "", afterSize + "");
        //判断是否推送完成
        if (size == null || size == 0L) {
        if (afterSize == null || afterSize == 0L) {
            //已经推送完了
            String id = BPushTaskExcuteResult.createId(dataSet.getTaskId(), pushPlatform);
            BPushTaskExcuteResult update = new BPushTaskExcuteResult();
@@ -92,6 +99,7 @@
                updateTask.setStateDesc("推送完成");
                updateTask.setUpdateTime(new Date());
                bPushTaskDao.updateSelective(updateTask);
                logger.info("{}推送完成 taskId-{}", pushPlatform.name(), dataSet.getTaskId());
            }
        }
    }
@@ -153,5 +161,18 @@
        bPushTaskExcuteResultMapper.updateByPrimaryKeySelective(update);
    }
    /**
     * 根据任务ID查询推送结果
     *
     * @param taskId
     * @return
     */
    public List<BPushTaskExcuteResult> listByTaskId(String taskId) {
        BPushTaskExcuteResultMapper.DaoQuery daoQuery = new BPushTaskExcuteResultMapper.DaoQuery();
        daoQuery.taskId = taskId;
        daoQuery.count = 100;
        return bPushTaskExcuteResultMapper.list(daoQuery);
    }
}