增加企业微信获取用户信息和发起审批的方法
This commit is contained in:
parent
24333d23cf
commit
1a48086d5c
@ -32,8 +32,12 @@ export class ChainTaskClass extends BaseModule {
|
||||
public name: string
|
||||
@prop()
|
||||
public desc: string
|
||||
// 谁发起的
|
||||
@prop()
|
||||
public starter: string
|
||||
// 发起人的名称
|
||||
@prop()
|
||||
public starterName: string
|
||||
|
||||
@prop({ type: mongoose.Schema.Types.Mixed })
|
||||
public taskData: any
|
||||
@ -128,9 +132,9 @@ export class ChainTaskClass extends BaseModule {
|
||||
/**
|
||||
* 解析企业微信审批信息
|
||||
*/
|
||||
public static async parseWxApprovalInfo({ taskId, name, desc, data, starter }) {
|
||||
public static async parseWxApprovalInfo({ taskId, name, desc, data, starter, starterName }) {
|
||||
let maxTryCount = parseInt(process.env.CHAIN_MAX_TRY)
|
||||
let chainTask = await ChainTask.insertOrUpdate({ taskId }, { name, desc, starter, data })
|
||||
let chainTask = await ChainTask.insertOrUpdate({ taskId }, { name, desc, starter, starterName, data })
|
||||
let subTasks: any = []
|
||||
if (chainTask.newRecord) {
|
||||
let subTask
|
||||
|
@ -90,6 +90,108 @@ export class WechatWorkService {
|
||||
})
|
||||
return response
|
||||
}
|
||||
/**
|
||||
* 获取用户信息
|
||||
* @param userid
|
||||
*/
|
||||
public async fetchUserInfo(userid: string) {
|
||||
const url = `${WX_API_HOST}/cgi-bin/user/get`
|
||||
const access_token = await this.getAccessToken()
|
||||
let config: AxiosRequestConfig = {
|
||||
method: 'get',
|
||||
url,
|
||||
params: {
|
||||
access_token,
|
||||
userid,
|
||||
},
|
||||
}
|
||||
let response = await axios.request(config).then(response => {
|
||||
return response.data
|
||||
})
|
||||
if (response.errcode) {
|
||||
throw new Error(response.errmsg)
|
||||
}
|
||||
return response
|
||||
}
|
||||
|
||||
/**
|
||||
* 发起一个审核, 用于流程结束时的通知
|
||||
* @param userid
|
||||
* @returns
|
||||
*/
|
||||
public async beginApproval({
|
||||
userid,
|
||||
title,
|
||||
desc,
|
||||
info,
|
||||
}: {
|
||||
userid: string
|
||||
title: string
|
||||
desc: string
|
||||
info: string
|
||||
}) {
|
||||
const url = `${WX_API_HOST}/cgi-bin/oa/applyevent`
|
||||
const access_token = await this.getAccessToken()
|
||||
let config: AxiosRequestConfig = {
|
||||
method: 'post',
|
||||
url,
|
||||
params: {
|
||||
access_token,
|
||||
},
|
||||
data: {
|
||||
creator_userid: userid,
|
||||
template_id: process.env.WX_NOTIFY_TEMPLATE_ID,
|
||||
use_template_approver: 0,
|
||||
approver: [
|
||||
{
|
||||
userid: userid,
|
||||
attr: 1,
|
||||
},
|
||||
],
|
||||
apply_data: {
|
||||
contents: [
|
||||
{
|
||||
control: 'Text',
|
||||
id: process.env.WX_NOTIFY_TEXT_ID,
|
||||
value: {
|
||||
text: title,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
summary_list: [
|
||||
{
|
||||
summary_info: [
|
||||
{
|
||||
text: title,
|
||||
lang: 'zh_CN',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
summary_info: [
|
||||
{
|
||||
text: desc,
|
||||
lang: 'zh_CN',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
summary_info: [
|
||||
{
|
||||
text: info,
|
||||
lang: 'zh_CN',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
let response = await axios.request(config).then(response => {
|
||||
return response.data
|
||||
})
|
||||
return response
|
||||
}
|
||||
/**
|
||||
* 调用企业微信审核详情接口, 并处理返回数据
|
||||
* @param spNo 审批单号
|
||||
@ -122,9 +224,11 @@ export class WechatWorkService {
|
||||
if (!fileId) {
|
||||
throw new Error('no file')
|
||||
}
|
||||
let userInfo = await this.fetchUserInfo(starter)
|
||||
let starterName = userInfo.name
|
||||
let filePath = await this.fetchFile(fileId)
|
||||
let data = excelToJson(filePath)
|
||||
return { taskId: spNo, name, desc, data, starter }
|
||||
return { taskId: spNo, name, desc, data, starter, starterName }
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user