hi,大家好,我是恰恰
閱讀本文需要2分鐘~
最近利用企業(yè)微信群機器人做的需求主要有
1.返獎率通知與告警:抽獎箱能抽出垃圾也能抽出大貨,每隔5分鐘查詢一下這個返獎率,如果用戶頻繁抽出大貨,這個抽獎箱的返獎率已經(jīng)高出了閾值,那么我們就將其下架。
2.自動發(fā)送導表文件:關(guān)于運營每天都需要導表,我已儼然成為了一名導表俠,迫在眉睫我必須自我解放,所以可以利用機器人每天早上十點給運營們發(fā)送導表文件。
以自動發(fā)送導表文件為例 我需要把新注冊的用戶在平臺消費大于等于50元的用戶ID給到運營同學
開始寫代碼~
- 新建一個類 把URL信息填充好
/** 企業(yè)微信群上傳文件url */ public static final String UPLOAD_FILE_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=填你的機器人的key&type=file"; /** 發(fā)送群消息url */ public static final String SEND_MESSAGE_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=填你的機器人的key";
1.先篩選出消費大于等于50元用戶的List,組裝數(shù)據(jù)保存到電腦D盤(EasyUtil是一個把List導出到本地的工具)
-
List<NewRegistrationUser> collect = resultList.stream().filter(r -> r.getOpenBoxAmount() + r.getDirectPurAmount() >= 50).collect(Collectors.toList()); List<Map<String, Object>> list = new ArrayList<>(); for (int i = 0; i < collect.size(); i++) { LinkedHashMap<String, Object> map = new LinkedHashMap<>(); NewRegistrationUser user = collect.get(i); map.put("用戶ID ", user.getUserId()); map.put("付費金額", user.getOpenBoxAmount()+user.getDirectPurAmount()); list.add(map); } List<String> arrayList = new ArrayList(list.get(0).keySet()); //表頭信息 String head =date+"消費大于等于50元名單"; EasyUtil.easyUtil(arrayList, head, list);
?2.先將文件上傳到企微的文件上傳接口里去,使用hutool發(fā)送Post請求,他會返回一個media_id,
String path = "D:\\導表\\" + head + ".xlsx";
// 上傳文件
HashMap<String, Object> sendMap = new HashMap<>();
sendMap.put("file", FileUtil.file(path));
String result = cn.hutool.http.HttpUtil.post(UPLOAD_FILE_URL,sendMap);
JSONObject jsonObject = JSON.parseObject(result);
Integer errcode = Integer.valueOf(jsonObject.get("errcode").toString());
3.如果code返回0說明文件上傳成功,進行下一步把文件推送到企微
if (errcode.equals(0)) {
// 推送消息
String mediaid = (String) jsonObject.get("media_id");
Map<String,Object> mediaMap = new HashMap<>();
mediaMap.put("media_id",mediaid);
Map<String,Object> msgMap = new HashMap<>();
msgMap.put("msgtype","file");
msgMap.put("file",mediaMap);
cn.hutool.http.HttpUtil.post(SEND_MESSAGE_URL, JSON.toJSONString(paramMap));
4.再發(fā)送一句文字消息
HashMap<String, Object> paramMap = new HashMap<>();
HashMap<String, Object> aMap = new HashMap<>();
String format = String.format("%s | %s | %d ", date, newRegistrationUser.size(), collect.size());
aMap.put("content", "導表小助手來咯~"+"\n"+"時間 | 新注冊人數(shù) | 消費大于等于50人數(shù) \n" + String.join("\n", format));
msgMap.put("text",aMap);
paramMap.put("msgtype", "text");
paramMap.put("text", aMap);
cn.hutool.http.HttpUtil.post(SEND_MESSAGE_URL, JSON.toJSONString(paramMap));
}
效果就是這樣的
5.如果是通知告警信息是個LIst就把文字組裝成這樣
List<String> warnTexts = recordsList.stream().map(wi -> String.format("%s | %s | %d | %.2f%%", wi.getComboBoxId(), wi.getAdminUserName(),wi.getProfit(),wi.getProfitRate()).collect(Collectors.toList());
HashMap<String, Object> paramMap = new HashMap<>();
HashMap<String, Object> aMap = new HashMap<>();
aMap.put("content", LocalDateTime.now() + "\n"+ "自動下架通知(請相關(guān)人員注意)~"+"\n" + "ID | 負責人 | 利潤 | 利潤率 \n" + String.join("\n", warnTexts));
paramMap.put("msgtype", "text");
paramMap.put("text", aMap);
cn.hutool.http.HttpUtil.post(SEND_MESSAGE_URL, JSON.toJSONString(paramMap));
6.再寫一個定時任務(wù)調(diào)一下咱們寫的這個方法~就可以定時啦文章來源:http://www.zghlxwxcb.cn/news/detail-484715.html
//每天上午10點執(zhí)行任務(wù)
@Scheduled(cron = "0 0 10 * * ?")
public void NewUserAmount(){
//拉取前一天的數(shù)據(jù)
newUserAmountService.NewUserAmount(LocalDate.now().minusDays(1));
}
?ok,能幫助到你的話,給我點個贊哦!文章來源地址http://www.zghlxwxcb.cn/news/detail-484715.html
到了這里,關(guān)于工作隨記-Java利用企業(yè)微信群機器人定時發(fā)送消息的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!