Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
so-operation-api
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
smart-operation
so-operation-api
Commits
41f46a55
You need to sign in or sign up before continuing.
Commit
41f46a55
authored
Jul 21, 2023
by
陈子龙
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev-czl' into dev
parents
58c8e0c3
bc71375f
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
56 additions
and
12 deletions
+56
-12
src/common/conf/options.go
src/common/conf/options.go
+1
-0
src/main.go
src/main.go
+1
-0
src/router/workorderrouter.go
src/router/workorderrouter.go
+1
-0
src/service/task_manage.go
src/service/task_manage.go
+1
-2
src/service/work_order.go
src/service/work_order.go
+52
-10
No files found.
src/common/conf/options.go
View file @
41f46a55
...
@@ -42,6 +42,7 @@ type Config struct {
...
@@ -42,6 +42,7 @@ type Config struct {
SmsAccessKeyId
string
SmsAccessKeyId
string
SmsAccessSecret
string
SmsAccessSecret
string
SmsTemplateLogin
string
SmsTemplateLogin
string
SmsWorkOrderTemplate
string
SmsSignName
string
SmsSignName
string
AweRestURL
string
AweRestURL
string
...
...
src/main.go
View file @
41f46a55
...
@@ -83,6 +83,7 @@ func initConfig() {
...
@@ -83,6 +83,7 @@ func initConfig() {
SmsAccessKeyId
:
util
.
SetEnvStr
(
"SMS_ACCESS_KEY"
,
"LTAI4GBcVubRjzX7ABPcHnhB"
),
// 短信key
SmsAccessKeyId
:
util
.
SetEnvStr
(
"SMS_ACCESS_KEY"
,
"LTAI4GBcVubRjzX7ABPcHnhB"
),
// 短信key
SmsAccessSecret
:
util
.
SetEnvStr
(
"SMS_ACCESS_SECRET"
,
"dYE2dtABFOqYtK1ijcrits0yedHkw7"
),
// 短信secret
SmsAccessSecret
:
util
.
SetEnvStr
(
"SMS_ACCESS_SECRET"
,
"dYE2dtABFOqYtK1ijcrits0yedHkw7"
),
// 短信secret
SmsTemplateLogin
:
util
.
SetEnvStr
(
"SMS_TEMPLATE_LOGIN"
,
"SMS_212925130"
),
// 短信验证码模板
SmsTemplateLogin
:
util
.
SetEnvStr
(
"SMS_TEMPLATE_LOGIN"
,
"SMS_212925130"
),
// 短信验证码模板
SmsWorkOrderTemplate
:
util
.
SetEnvStr
(
"SMS_TEMPLATE_LOGIN"
,
"SMS_462020767"
),
// 短信工单下发模板
SmsSignName
:
util
.
SetEnvStr
(
"SMS_SIGN_NAME"
,
"比格数据"
),
// 签名
SmsSignName
:
util
.
SetEnvStr
(
"SMS_SIGN_NAME"
,
"比格数据"
),
// 签名
AweRestURL
:
util
.
SetEnvStr
(
"AWE_REST_URL"
,
"http://awecloud-rest/awecloud/rest"
),
// awecloud-rest
AweRestURL
:
util
.
SetEnvStr
(
"AWE_REST_URL"
,
"http://awecloud-rest/awecloud/rest"
),
// awecloud-rest
KubernetesToken
:
util
.
SetEnvStr
(
"AWE_REST_K8S_TOKEN"
,
"eyJhbGciOiJSUzI1NiIsImtpZCI6InJ1alJzNEVGamN5UC0wRU1rS1BKQ0JZVUtNNWpzR0t2bmlrSlJhY2Q3R00ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJiZWFnbGUtc3lzdGVtIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6InJvb3QiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoicm9vdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjRlMDM0OTI3LTc0ZTMtNDQ5Yy1hN2RlLWExMGE3MjU1NGYyMCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpiZWFnbGUtc3lzdGVtOnJvb3QifQ.YPLE_E2kIeo-YFQtKScBt5p4KhnniJF9n3iWN2i9UMYS06lIsq2-2wBrgON-YsJihWJupYyDQRiZ9h8bUWTrQzhnpsnuJ_aUclKyAw3QOT9rjvZhJp7qP--27dmdspSHncKtvIiprWE7UTUKzvF33WsMB0fSYFqYXOggNFMoT-fXmWwUXjgar3op0iOl3c3deJ_GeBzFyLSHEuGM7OVdjU8032aUmTen0Kji_P1yB4-O3Iqd0OdVs33BQy_tycjbxhQ8TDEpqrqhLnXjAwJCprLDEpFMx7ODZbjB9Wmuns8yJhaRDxTO47rTME7ZIAxjZ-zLR_QybtW97rlwnUTaNw"
),
// k8s token
KubernetesToken
:
util
.
SetEnvStr
(
"AWE_REST_K8S_TOKEN"
,
"eyJhbGciOiJSUzI1NiIsImtpZCI6InJ1alJzNEVGamN5UC0wRU1rS1BKQ0JZVUtNNWpzR0t2bmlrSlJhY2Q3R00ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJiZWFnbGUtc3lzdGVtIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6InJvb3QiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoicm9vdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjRlMDM0OTI3LTc0ZTMtNDQ5Yy1hN2RlLWExMGE3MjU1NGYyMCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpiZWFnbGUtc3lzdGVtOnJvb3QifQ.YPLE_E2kIeo-YFQtKScBt5p4KhnniJF9n3iWN2i9UMYS06lIsq2-2wBrgON-YsJihWJupYyDQRiZ9h8bUWTrQzhnpsnuJ_aUclKyAw3QOT9rjvZhJp7qP--27dmdspSHncKtvIiprWE7UTUKzvF33WsMB0fSYFqYXOggNFMoT-fXmWwUXjgar3op0iOl3c3deJ_GeBzFyLSHEuGM7OVdjU8032aUmTen0Kji_P1yB4-O3Iqd0OdVs33BQy_tycjbxhQ8TDEpqrqhLnXjAwJCprLDEpFMx7ODZbjB9Wmuns8yJhaRDxTO47rTME7ZIAxjZ-zLR_QybtW97rlwnUTaNw"
),
// k8s token
...
...
src/router/workorderrouter.go
View file @
41f46a55
...
@@ -29,6 +29,7 @@ func InitWorkOrderRouter(e *gin.Engine) {
...
@@ -29,6 +29,7 @@ func InitWorkOrderRouter(e *gin.Engine) {
manage
.
GET
(
"/details"
,
controller
.
DetailsWorkOrderManage
)
// 详情
manage
.
GET
(
"/details"
,
controller
.
DetailsWorkOrderManage
)
// 详情
manage
.
GET
(
"/list"
,
controller
.
ListWorkOrderManage
)
// 列表
manage
.
GET
(
"/list"
,
controller
.
ListWorkOrderManage
)
// 列表
manage
.
POST
(
"/push"
,
controller
.
PushWorkOrderManage
)
// 手动下发
manage
.
POST
(
"/push"
,
controller
.
PushWorkOrderManage
)
// 手动下发
}
}
//业务工单列表
//业务工单列表
...
...
src/service/task_manage.go
View file @
41f46a55
...
@@ -468,8 +468,7 @@ func ExecAnsible(id, taskId int, value string) {
...
@@ -468,8 +468,7 @@ func ExecAnsible(id, taskId int, value string) {
//return
//return
}
}
}
}
err
=
redis
.
HDel
(
conf
.
TaskExecLog
,
strconv
.
Itoa
(
id
))
redis
.
HDel
(
conf
.
TaskExecLog
,
strconv
.
Itoa
(
id
))
conf
.
Logger
.
Error
(
"del redis err"
,
zap
.
Error
(
err
))
redis
.
HDel
(
conf
.
AutoExecHistory
,
strconv
.
Itoa
(
id
))
redis
.
HDel
(
conf
.
AutoExecHistory
,
strconv
.
Itoa
(
id
))
}
}
src/service/work_order.go
View file @
41f46a55
...
@@ -3,6 +3,7 @@ package service
...
@@ -3,6 +3,7 @@ package service
import
(
import
(
"errors"
"errors"
"fmt"
"fmt"
"github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi"
json
"github.com/json-iterator/go"
json
"github.com/json-iterator/go"
"github.com/wanghuiyt/ding"
"github.com/wanghuiyt/ding"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/entity"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/entity"
...
@@ -11,6 +12,8 @@ import (
...
@@ -11,6 +12,8 @@ import (
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/client"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/client"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/conf"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/conf"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/resp"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/resp"
"go.uber.org/zap"
"strings"
"time"
"time"
)
)
...
@@ -356,25 +359,29 @@ func (w *WorkOrderManageSvc) PushWorkOrderManage(req request.PushWorkOrderReq) (
...
@@ -356,25 +359,29 @@ func (w *WorkOrderManageSvc) PushWorkOrderManage(req request.PushWorkOrderReq) (
switch
req
.
PushObj
.
PushMethod
{
switch
req
.
PushObj
.
PushMethod
{
case
1
:
case
1
:
//发送钉钉消息
//发送钉钉消息
err
=
WorkOrderPushDingTalkMsg
(
workOrder
.
OrderName
,
workOrder
.
OrderLevel
,
phones
)
err
=
w
.
WorkOrderPushDingTalkMsg
(
workOrder
.
OrderName
,
workOrder
.
OrderLevel
,
phones
)
if
err
!=
nil
{
if
err
!=
nil
{
session
.
Rollback
()
return
return
}
}
case
2
:
case
2
:
//发送短信
//发送短信
err
=
WorkOrderPushNoteMsg
(
workOrder
.
OrderName
,
workOrder
.
OrderLevel
,
phones
)
err
=
w
.
WorkOrderPushNoteMsg
(
workOrder
.
OrderName
,
phones
,
workOrder
.
OrderLevel
)
if
err
!=
nil
{
if
err
!=
nil
{
session
.
Rollback
()
return
return
}
}
case
3
:
case
3
:
//发送钉钉消息
//发送钉钉消息
err
=
WorkOrderPushDingTalkMsg
(
workOrder
.
OrderName
,
workOrder
.
OrderLevel
,
phones
)
err
=
w
.
WorkOrderPushDingTalkMsg
(
workOrder
.
OrderName
,
workOrder
.
OrderLevel
,
phones
)
if
err
!=
nil
{
if
err
!=
nil
{
session
.
Rollback
()
return
return
}
}
//发送短信
//发送短信
err
=
WorkOrderPushNoteMsg
(
workOrder
.
OrderName
,
workOrder
.
OrderLevel
,
phones
)
err
=
w
.
WorkOrderPushNoteMsg
(
workOrder
.
OrderName
,
phones
,
workOrder
.
OrderLevel
)
if
err
!=
nil
{
if
err
!=
nil
{
session
.
Rollback
()
return
return
}
}
}
}
...
@@ -641,7 +648,7 @@ func (w *WorkOrderManageSvc) ListWorkOrderMe(req request.ListWorkOrderReq) (tota
...
@@ -641,7 +648,7 @@ func (w *WorkOrderManageSvc) ListWorkOrderMe(req request.ListWorkOrderReq) (tota
}
}
// WorkOrderPushDingTalkMsg 推送钉钉消息
// WorkOrderPushDingTalkMsg 推送钉钉消息
func
WorkOrderPushDingTalkMsg
(
orderName
string
,
orderLevel
int
,
phones
[]
string
)
(
err
error
)
{
func
(
w
*
WorkOrderManageSvc
)
WorkOrderPushDingTalkMsg
(
orderName
string
,
orderLevel
int
,
phones
[]
string
)
(
err
error
)
{
d
:=
ding
.
Webhook
{
d
:=
ding
.
Webhook
{
AccessToken
:
conf
.
Options
.
OrderDingTalkAccessToken
,
//"203fe1644b446bba0a34e6e622c523d39ee9916fdad94b9c64224449f659e20b",
AccessToken
:
conf
.
Options
.
OrderDingTalkAccessToken
,
//"203fe1644b446bba0a34e6e622c523d39ee9916fdad94b9c64224449f659e20b",
Secret
:
conf
.
Options
.
OrderDingTalkSecret
,
//"SECa73d8372e336451c9daf29a99f750ee1bdd170c1dab910eab9cd06d729a831b7",
Secret
:
conf
.
Options
.
OrderDingTalkSecret
,
//"SECa73d8372e336451c9daf29a99f750ee1bdd170c1dab910eab9cd06d729a831b7",
...
@@ -658,16 +665,51 @@ func WorkOrderPushDingTalkMsg(orderName string, orderLevel int, phones []string)
...
@@ -658,16 +665,51 @@ func WorkOrderPushDingTalkMsg(orderName string, orderLevel int, phones []string)
}
}
//有一条工单需要您处理:工单类型:【业务工单】 工单名称:【$工单名称】 工单等级:【$工单等级】
//有一条工单需要您处理:工单类型:【业务工单】 工单名称:【$工单名称】 工单等级:【$工单等级】
err
=
d
.
SendMessageText
(
"
有一条工单需要您处理:
\n
工单类型:【业务工单】
\n
工单名称:【"
+
orderName
+
"】
\n
工单等级:【"
+
orderLevels
+
"】
"
,
phones
...
)
err
=
d
.
SendMessageText
(
"
您有一条业务工单需要处理:工单名称:"
+
orderName
+
",工单等级:"
+
orderLevels
+
",请及时前往智能运维平台处理!
"
,
phones
...
)
if
err
!=
nil
{
if
err
!=
nil
{
err
=
resp
.
FAIL
.
ErrorDetail
(
err
)
return
return
}
}
return
return
}
}
// WorkOrderPushNoteMsg 推送短信消息
// WorkOrderPushNoteMsg 推送工单短信消息
func
WorkOrderPushNoteMsg
(
orderName
string
,
orderLevel
int
,
phone
[]
string
)
(
err
error
)
{
func
(
w
*
WorkOrderManageSvc
)
WorkOrderPushNoteMsg
(
orderName
string
,
phone
[]
string
,
orderLevel
int
)
(
err
error
)
{
smsClient
,
err
:=
dysmsapi
.
NewClientWithAccessKey
(
"cn-hangzhou"
,
conf
.
Options
.
SmsAccessKeyId
,
conf
.
Options
.
SmsAccessSecret
)
if
err
!=
nil
{
conf
.
Logger
.
Error
(
"dysmsapi client error"
,
zap
.
Error
(
err
))
err
=
resp
.
FAIL
.
ErrorDetail
(
err
)
return
}
var
orderLevels
string
switch
orderLevel
{
case
1
:
orderLevels
=
"紧急任务"
case
2
:
orderLevels
=
"重要任务"
case
3
:
orderLevels
=
"一般任务"
}
tickettype
:=
"业务工单"
params
:=
map
[
string
]
interface
{}{
"tickettype"
:
tickettype
,
"ticketname"
:
orderName
,
"ticketlevel"
:
orderLevels
}
templateParam
,
err
:=
json
.
Marshal
(
params
)
if
err
!=
nil
{
conf
.
Logger
.
Error
(
"序列化模板失败!"
,
zap
.
Error
(
err
))
err
=
resp
.
FAIL
.
ErrorDetail
(
err
)
return
}
return
nil
request
:=
dysmsapi
.
CreateSendSmsRequest
()
request
.
Scheme
=
"https"
request
.
PhoneNumbers
=
strings
.
Join
(
phone
,
","
)
request
.
TemplateCode
=
conf
.
Options
.
SmsWorkOrderTemplate
request
.
SignName
=
conf
.
Options
.
SmsSignName
request
.
TemplateParam
=
string
(
templateParam
)
req
,
err
:=
smsClient
.
SendSms
(
request
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
ErrorDetail
(
err
)
return
}
fmt
.
Printf
(
"response is %#v
\n
"
,
req
)
return
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment