Jelajahi Sumber

feat:钉钉扩展增加JSAPI相关接口

Cheng Jian 3 tahun lalu
induk
melakukan
0035d14707

+ 13 - 5
opms_libary/plugin/dingtalk/client.go

@@ -5,8 +5,10 @@ import (
 	"dashoo.cn/opms_libary/plugin/dingtalk/calendar"
 	"dashoo.cn/opms_libary/plugin/dingtalk/contact"
 	"dashoo.cn/opms_libary/plugin/dingtalk/context"
+	"dashoo.cn/opms_libary/plugin/dingtalk/jsapi"
 	"dashoo.cn/opms_libary/plugin/dingtalk/message"
 	"dashoo.cn/opms_libary/plugin/dingtalk/workflow"
+	"github.com/gogf/gf/frame/g"
 	"github.com/gogf/gf/os/gcache"
 	"sync"
 )
@@ -26,11 +28,12 @@ func init() {
 
 func NewClient() *ClientImpl {
 	var config = context.Config{
-		//微信公众平台,需要填写的信息
-		AppKey:    "dinguytykawticadfoht",                                             //g.Config().GetString("dingtalk.app-key"),     //"your app id",
-		AppSecret: "zPlj4ZpITsUbeq2C0GrwJ78-e8knH_kIeyvznaNQacqtrSb9zbeZcOajgBKdolky", //g.Config().GetString("dingtalk.app-secret"), //"your app secret",
-		AESKey:    "oUjmeWea8Ow1jsdK4UHoDthy6EMQKq3RGbM2rEeTgnm",
-		Token:     "WaasHsYk8V3wqwN5xRGsCmiiRDB",
+		CorpId:    g.Config().GetString("dingtalk.corp-id"),    //"dinga8b316209f5ee42435c2f4657eb6378f",
+		AgentId:   g.Config().GetString("dingtalk.agent-id"),   //"2384115071",
+		AppKey:    g.Config().GetString("dingtalk.app-key"),    //"dinguytykawticadfoht",
+		AppSecret: g.Config().GetString("dingtalk.app-secret"), //"zPlj4ZpITsUbeq2C0GrwJ78-e8knH_kIeyvznaNQacqtrSb9zbeZcOajgBKdolky",
+		AESKey:    g.Config().GetString("dingtalk.aes-key"),    //"oUjmeWea8Ow1jsdK4UHoDthy6EMQKq3RGbM2rEeTgnm",
+		Token:     g.Config().GetString("dingtalk.token"),      //"WaasHsYk8V3wqwN5xRGsCmiiRDB",
 	}
 	return newClient(config)
 }
@@ -58,6 +61,11 @@ func (c *ClientImpl) GetAccessToken() (string, error) {
 	return c.Context.GetAccessToken()
 }
 
+//GetJsapi 获取Jsapi
+func (c *ClientImpl) GetJsapi() *jsapi.Jsapi {
+	return jsapi.NewJsapi(c.Context)
+}
+
 //GetContact 通讯录
 func (c *ClientImpl) GetContact() *contact.Contact {
 	return contact.NewContact(c.Context)

+ 45 - 35
opms_libary/plugin/dingtalk/client_test.go

@@ -1,59 +1,69 @@
 package dingtalk
 
 import (
+	"dashoo.cn/opms_libary/plugin/dingtalk/workflow"
+	"dashoo.cn/opms_libary/utils"
 	"fmt"
 	"testing"
 )
 
 func TestQuerySchemaByProcessCode(t *testing.T) {
 	client := NewClient()
+
 	w := client.GetWorkflow()
 	s, _ := w.QuerySchemaByProcessCode("PROC-7A5F6215-A8CF-4DD1-AB2C-5B1AB84C4E19")
 
 	fmt.Println(s)
 }
 
+func TestSign(t *testing.T) {
+	client := NewClient()
+	s := client.GetJsapi()
+	//s.Sign("", "")
+
+	fmt.Println(s)
+}
+
 func TestStartProcessInstance(t *testing.T) {
-	//client := NewClient()
-	//w := client.GetWorkflow()
-	////formComponentValues0Details0Details0 := &workflow.StartProcessInstanceRequestFormComponentValuesDetailsDetails{
-	////	Id:            tea.String("PhoneField_IZI2LP8QF6O0"),
-	////	BizAlias:      tea.String("Phone"),
-	////	Name:          tea.String("PhoneField"),
-	////	Value:         tea.String("123xxxxxxxx"),
-	////	ExtValue:      tea.String("总个数:1"),
-	////	ComponentType: tea.String("PhoneField"),
-	////}
-	////formComponentValues0Details0 := &workflow.StartProcessInstanceRequestFormComponentValuesDetails{
-	////	Id:       tea.String("PhoneField_IZI2LP8QF6O0"),
-	////	BizAlias: tea.String("Phone"),
-	////	Name:     tea.String("PhoneField"),
-	////	Value:    tea.String("123xxxxxxxx"),
-	////	ExtValue: tea.String("总个数:1"),
-	////	Details:  []*workflow.StartProcessInstanceRequestFormComponentValuesDetailsDetails{formComponentValues0Details0Details0},
-	////}
-	////表单信息
-	//TextField_1RC8GZWYGO4G0 := &workflow.StartProcessInstanceRequestFormComponentValues{
-	//	Id:    tea.String("TextField_1RC8GZWYGO4G0"),
-	//	Name:  tea.String("单行输入框"),
-	//	Value: tea.String("123xxxxxxxx"),
-	//}
-	//
+	client := NewClient()
+	w := client.GetWorkflow()
+
+	TextField_1QEXO83G7GDC0 := &workflow.StartProcessInstanceRequestFormComponentValues{
+		Id:    utils.String("TextField_1QEXO83G7GDC0"),
+		Name:  utils.String("客户编码"),
+		Value: utils.String("CT00001"),
+	}
+	TextField_13MDZ97RV16K0 := &workflow.StartProcessInstanceRequestFormComponentValues{
+		Id:    utils.String("TextField_13MDZ97RV16K0"),
+		Name:  utils.String("客户名称"),
+		Value: utils.String("测试客户"),
+	}
+	TextField_1ZY48VZY6WG00 := &workflow.StartProcessInstanceRequestFormComponentValues{
+		Id:    utils.String("TextField_1ZY48VZY6WG00"),
+		Name:  utils.String("申请人"),
+		Value: utils.String("系统管理员"),
+	}
+	TextareaField_5U6VKA6N1VK0 := &workflow.StartProcessInstanceRequestFormComponentValues{
+		Id:    utils.String("TextareaField_5U6VKA6N1VK0"),
+		Name:  utils.String("申请说明"),
+		Value: utils.String("申请说明"),
+	}
+
 	//DDAttachment_17PC5KQBVEM80 := &workflow.StartProcessInstanceRequestFormComponentValues{
 	//	Id:    tea.String("DDAttachment_17PC5KQBVEM80"),
 	//	Name:  tea.String("附件"),
 	//	Value: tea.String("123xxxxxxxx"),
 	//}
-	//
-	//startProcessInstanceRequest := &workflow.StartProcessInstanceRequest{
-	//	OriginatorUserId:    tea.String("47073111989114"),
-	//	ProcessCode:         tea.String("PROC-7A5F6215-A8CF-4DD1-AB2C-5B1AB84C4E19"),
-	//	DeptId:              tea.Int64(435711466),
-	//	FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{TextField_1RC8GZWYGO4G0, DDAttachment_17PC5KQBVEM80},
-	//}
-	////w.StartProcessInstance("47073111989114", "PROC-7A5F6215-A8CF-4DD1-AB2C-5B1AB84C4E19", 435711466) 8xljy04PZiS9iPxp5PhDnUzQiEiE
-	//resp, _ := w.StartProcessInstance(startProcessInstanceRequest)
-	//fmt.Println(resp)
+
+	startProcessInstanceRequest := &workflow.StartProcessInstanceRequest{
+		OriginatorUserId:    utils.String("47073111989114"),
+		ProcessCode:         utils.String("PROC-FE42B2D1-6097-4DE8-8AC5-23541B7D5C8A"),
+		DeptId:              utils.Int64(435711466),
+		FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{TextField_1QEXO83G7GDC0, TextField_13MDZ97RV16K0, TextField_1ZY48VZY6WG00, TextareaField_5U6VKA6N1VK0},
+	}
+	//w.StartProcessInstance("47073111989114", "PROC-7A5F6215-A8CF-4DD1-AB2C-5B1AB84C4E19", 435711466) 8xljy04PZiS9iPxp5PhDnUzQiEiE
+	resp, _ := w.StartProcessInstance(startProcessInstanceRequest)
+	fmt.Println(resp)
 }
 
 func TestQueryUserInfoByPhone(t *testing.T) {

+ 2 - 0
opms_libary/plugin/dingtalk/context/config.go

@@ -4,6 +4,8 @@ import "github.com/gogf/gf/os/gcache"
 
 // Config for user
 type Config struct {
+	CorpId    string //企业ID
+	AgentId   string //应用ID
 	AppKey    string
 	AppSecret string
 	AESKey    string

+ 21 - 0
opms_libary/plugin/dingtalk/jsapi/jsapi.go

@@ -0,0 +1,21 @@
+package jsapi
+
+import "dashoo.cn/opms_libary/plugin/dingtalk/base"
+import "dashoo.cn/opms_libary/plugin/dingtalk/context"
+
+//Jsapi 包装
+type Jsapi struct {
+	base.Base
+}
+
+//NewJsapi init
+func NewJsapi(context *context.Context) *Jsapi {
+	jsapi := new(Jsapi)
+	jsapi.Context = context
+	return jsapi
+}
+
+func (s *Jsapi) Sign(jsticket, nonceStr, url string, timeStamp int64) (result string, err error) {
+
+	return
+}