guoshilong
2023-07-18 6aa1ef804ab91c4d9d6b069fb22f8f0ca81e13c7
push添加测试接口
3 files modified
88 ■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java 6 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java 9 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java 73 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java
@@ -27,13 +27,13 @@
    }
    /**
     * 消息推送
     * 通过用户id推送消息,用于测试
     * @param pushVO
     * @return
     */
    @PostMapping("/pushMessage")
    @PostMapping("/pushMessageByUserId")
    public R pushMessage(PushVO pushVO){
        return R.data(pushService.pushMessage(pushVO));
        return R.data(pushService.pushMessageByUserId(pushVO));
    }
    /**
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java
@@ -20,7 +20,7 @@
     * @param pushVO
     * @return
     */
    UniCloudReturnRes pushMessage(PushVO pushVO);
    Boolean pushMessage(PushVO pushVO);
    /**
     * 推送消息
@@ -42,4 +42,11 @@
     * @return
     */
    Boolean pushMessageOnLaunch(String userId);
    /**
     * 根据用户id推送消息
     * @param pushVO
     * @return
     */
    Boolean pushMessageByUserId(PushVO pushVO);
}
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
@@ -6,10 +6,13 @@
import cn.gistack.sm.message.entity.MessageRecord;
import cn.gistack.sm.message.feign.IMessageClient;
import lombok.AllArgsConstructor;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.utils.Func;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -30,31 +33,20 @@
    }
    @Override
    public UniCloudReturnRes pushMessage(PushVO pushVO) {
        RestTemplate template = new RestTemplate();
        Map<String, Object> params = new LinkedHashMap<>();
        params.put("push_clientid",pushVO.getCIds());
        params.put("title",pushVO.getTitle());
        params.put("content",pushVO.getContent());
        UniCloudReturnRes uniCloudReturnRes = template.getForObject(UNI_CLOUD_PUSH_URL,UniCloudReturnRes.class,params);
        return uniCloudReturnRes;
    }
    @Override
    public Boolean pushMessageList(List<MessageRecord> messageRecordList) {
        PushVO pushVO = new PushVO();
        List<String> cIdList = new ArrayList<>();
        //相同的消息推送给多用户
        messageRecordList.forEach(messageRecord -> {
            //获取用户cId
            String clientId = getClientIdByUserId(messageRecord.getRecipient());
            pushVO.getCIds().add(clientId);
            pushVO.setTitle(messageRecord.getTheme());
            pushVO.setContent(messageRecord.getContent());
            cIdList.add(clientId);
        });
        UniCloudReturnRes uniCloudReturnRes = pushMessage(pushVO);
        return uniCloudReturnRes.getErrCode().equals(0)?true:false;
        pushVO.setCIds(cIdList);
        pushVO.setTitle(messageRecordList.get(0).getTheme());
        pushVO.setContent(messageRecordList.get(0).getContent());
        return pushMessage(pushVO);
    }
    @Override
@@ -69,10 +61,11 @@
        List<MessageRecord> notReadList = messageClient.getNotReadList(userId);
        PushVO pushVO = new PushVO();
        List<String> cIdList = new ArrayList<>();
        //设置cId
        pushVO.getCIds().add(getClientIdByUserId(userId));
        cIdList.add(getClientIdByUserId(userId));
        pushVO.setCIds(cIdList);
        //设置标题和内容
        notReadList.forEach(messageRecord -> {
            pushVO.setTitle(messageRecord.getTheme());
@@ -84,6 +77,21 @@
        return true;
    }
    @Override
    public Boolean pushMessageByUserId(PushVO pushVO) {
        if (Func.isEmpty(pushVO.getUserId())){
            throw new ServiceException("请填写用户id!");
        }
        String clientIdByUserId = getClientIdByUserId(pushVO.getUserId());
        List<String> cIdList = new ArrayList<>();
        cIdList.add(clientIdByUserId);
        pushVO.setCIds(cIdList);
        return pushMessage(pushVO);
    }
    /**
     * 根据用户id从redis中获取cid
     * @param userId
@@ -92,4 +100,25 @@
    public String getClientIdByUserId(String userId){
        return bladeRedis.get(PUSH_CLIENT_ID+userId);
    }
    /**
     * 消息推送
     * @param pushVO
     * @return
     */
    public Boolean pushMessage(PushVO pushVO){
        RestTemplate template = new RestTemplate();
        Map<String, Object> params = new LinkedHashMap<>();
        //用户cId,可数组,可字符串
        params.put("push_clientid",pushVO.getCIds());
        //标题
        params.put("title",pushVO.getTitle());
        //内容
        params.put("content",pushVO.getContent());
//        UniCloudReturnRes uniCloudReturnRes = template.getForObject(UNI_CLOUD_PUSH_URL,UniCloudReturnRes.class,params);
        UniCloudReturnRes uniCloudReturnRes = template.postForObject(UNI_CLOUD_PUSH_URL,params,UniCloudReturnRes.class);
        return uniCloudReturnRes.getErrCode().equals(0)?true:false;
    }
}