提交 3a86dab3 编写于 作者: zhouweidong's avatar zhouweidong

钉钉待办发多人

上级 fb5969af
......@@ -33,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
......@@ -124,6 +125,10 @@ public class NotifyCoreService {
@Lazy
IMsgUserAccountService userAccountService;
@Autowired
@Lazy
NotifyCoreService notifyCoreService;
/**
* 获取钉钉token
* @param openAccess
......@@ -529,27 +534,42 @@ public class NotifyCoreService {
* @return
*/
@SneakyThrows
public String createWorkRecord(Msg msg){
public Boolean createWorkRecord(Msg msg){
String authUserId=getAuthUserId(msg.getUserids(),MsgType.dingtalk);
MsgTemplate template=templateService.getById(msg.getTemplateid());
if(template==null){
throw new BadRequestAlertException(String.format("创建待办失败,无法获取到[%s]对应的rt模板",msg.getTemplateid()),"","");
}
MsgOpenAccess openAccess =template.getOpenaccess();
OapiWorkrecordAddRequest req = new OapiWorkrecordAddRequest();
req.setUserid(authUserId);
req.setCreateTime(new Date().getTime());
req.setTitle(StringUtils.isEmpty(msg.getTitle())?template.getTemplateName():msg.getTitle());
req.setUrl(StringUtils.isEmpty(msg.getUrl())?template.getTemplateUrl():msg.getUrl());
List<OapiWorkrecordAddRequest.FormItemVo> list2 = new ArrayList<>();
OapiWorkrecordAddRequest.FormItemVo obj3 = new OapiWorkrecordAddRequest.FormItemVo();
list2.add(obj3);
obj3.setTitle(StringUtils.isEmpty(msg.getTitle())?template.getTemplateName():msg.getTitle());
obj3.setContent(StringUtils.isEmpty(msg.getContent())?template.getContent():msg.getContent());
req.setFormItemList(list2);
OapiWorkrecordAddResponse rsp = createWorkRecordClient.execute(req, openAccess.getAccessToken());
getResult(rsp.getBody());
return rsp.getRecordId();
notifyCoreService.createWorkRecordByUserIds(authUserId,msg,template,openAccess);
return true;
}
/**
* 异步创建待办
* @param userIds
* @param msg
* @param template
* @param openAccess
*/
@Async
@SneakyThrows
public void createWorkRecordByUserIds(String userIds,Msg msg,MsgTemplate template,MsgOpenAccess openAccess){
for(String userId:userIds.split(",")){
OapiWorkrecordAddRequest req = new OapiWorkrecordAddRequest();
req.setUserid(userId);
req.setCreateTime(new Date().getTime());
req.setTitle(StringUtils.isEmpty(msg.getTitle())?template.getTemplateName():msg.getTitle());
req.setUrl(StringUtils.isEmpty(msg.getUrl())?template.getTemplateUrl():msg.getUrl());
List<OapiWorkrecordAddRequest.FormItemVo> list2 = new ArrayList<>();
OapiWorkrecordAddRequest.FormItemVo obj3 = new OapiWorkrecordAddRequest.FormItemVo();
list2.add(obj3);
obj3.setTitle(StringUtils.isEmpty(msg.getTitle())?template.getTemplateName():msg.getTitle());
obj3.setContent(StringUtils.isEmpty(msg.getContent())?template.getContent():msg.getContent());
req.setFormItemList(list2);
OapiWorkrecordAddResponse rsp = createWorkRecordClient.execute(req, openAccess.getAccessToken());
getResult(rsp.getBody());
}
}
/**
......
......@@ -48,7 +48,7 @@ public class NotifyCoreResource {
* @return
*/
@RequestMapping(method = RequestMethod.POST,value = "/dingtalk/createworkrecord")
public ResponseEntity<String> createDingTalkWorkRecord(@RequestBody Msg msg){
public ResponseEntity<Boolean> createDingTalkWorkRecord(@RequestBody Msg msg){
return ResponseEntity.status(HttpStatus.OK).body(notifyCoreService.createWorkRecord(msg));
}
/**
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册