renjiaojiao 3 місяців тому
батько
коміт
fd1fa08283
4 змінених файлів з 62 додано та 33 видалено
  1. 7 4
      config.yaml
  2. 2 0
      config/db.go
  3. 27 6
      controller/kbController.go
  4. 26 23
      service/kbService.go

+ 7 - 4
config.yaml

@@ -5,9 +5,12 @@ database:
   password: Topnet123
   dbname: jy_resume
 kbMySql:
-  host: 172.20.45.129:4000
-  user: jianyu
-  password: Topnet123
+  host: 127.0.0.1:3399
+  user: kanboard
+  password: K99b3e9qa9d
   dbname: kanboard
 filePath: ./upload/
-WechatWorkUrl: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=f195c32d-aed7-4070-8aa2-190eeebab00c
+wechatWorkUrl: https://qyapi.weixin.qq.com/cgi-bin/webhook/send
+wechatWorkKey: f195c32d-aed7-4070-8aa2-190eeebab00c
+wechatRemind:
+  - 15038701380

+ 2 - 0
config/db.go

@@ -20,6 +20,8 @@ type Config struct {
 	FilePath      string         `yaml:"filePath"`
 	WechatWorkUrl string         `yaml:"wechatWorkUrl"`
 	KbMySql       DatabaseConfig `yaml:"kbMySql"`
+	WechatWorkKey string         `yaml:"wechatWorkKey"`
+	WechatRemind  []string       `yaml:"wechatRemind"`
 }
 
 type DatabaseConfig struct {

+ 27 - 6
controller/kbController.go

@@ -4,8 +4,10 @@ import (
 	cm "app.yhyue.com/moapp/jybase/common"
 	. "bindresume/config"
 	"bindresume/service"
+	"encoding/json"
 	"fmt"
 	"github.com/gin-gonic/gin"
+	"io/ioutil"
 	"log"
 	"math/rand"
 	"mime/multipart"
@@ -85,31 +87,50 @@ func UploadFile(r *gin.Context) {
 }
 
 func WorkTaskSave(r *gin.Context) {
+	str, _ := ioutil.ReadAll(r.Request.Body)
+	var param map[string]interface{}
+	err := json.Unmarshal([]byte(string(str)), &param)
+	if err != nil {
+		r.JSON(http.StatusOK, gin.H{
+			"error": err.Error(),
+		})
+		return
+	}
 	//创建人在kb时候有账号
-	name := r.Query("name")
+	name := cm.ObjToString(param["name"])
 	kbUserId, err := service.CheckCreateUserAccount(name)
 	if err != nil {
-		r.JSON(http.StatusOK, err)
+		r.JSON(http.StatusOK, gin.H{
+			"error": err.Error(),
+		})
+		return
 	}
 	//插入工单
 	task := &service.WordTask{
-		Title:       r.Query("title"),
-		Description: r.Query("description"),
+		Title:       cm.ObjToString(param["title"]),
+		Description: cm.ObjToString(param["description"]),
 		Color_id:    "green",
 		Project_id:  784,
 		Column_id:   3283,
 		Position:    1,
 		Score:       0,
 		Creator_id:  kbUserId,
+		Swimlane_id: 1338,
 	}
 	err = task.WordTaskSave()
 	if err != nil {
-		r.JSON(http.StatusOK, err)
+		r.JSON(http.StatusOK, gin.H{
+			"error": err.Error(),
+		})
+		return
 	}
 	//创建成功发送企微消息
 	err = service.SendWechatWorkMessage()
 	if err != nil {
-		r.JSON(http.StatusOK, err)
+		r.JSON(http.StatusOK, gin.H{
+			"error": err.Error(),
+		})
+		return
 	}
 	r.JSON(http.StatusOK, gin.H{
 		"success": 1,

+ 26 - 23
service/kbService.go

@@ -10,6 +10,7 @@ import (
 	"fmt"
 	"io/ioutil"
 	"net/http"
+	"net/url"
 	"os"
 	"time"
 )
@@ -33,6 +34,7 @@ type WordTask struct {
 	Position    int    `json:"position"`
 	Score       int    `json:"score"`
 	Creator_id  int    `json:"creator_id"`
+	Swimlane_id int    `json:"swimlane_Id"`
 }
 
 // GetFilePath 获取文件路径、名称
@@ -46,22 +48,18 @@ func GetFilePath(fm, types string) (s string) {
 // SendWechatWorkMessage 发送企业微信消息
 func SendWechatWorkMessage() error {
 	// 构造请求URL
-	fullURL := SysConfig.WechatWorkUrl
-	//params := url.Values{}
-	//params.Add("key", webhookKey)
-	//fullURL := fmt.Sprintf("%s?%s", baseURL, params.Encode())
-	message := &WechatWorkMessage{
-		MsgType: "text",
-		Text: TextContent{
-			Content: "今日天气:31度,大部分晴,降雨概率:0%",
-		},
-	}
-	/*messages := map[string]interface{}{
+	baseURL := SysConfig.WechatWorkUrl
+	params := url.Values{}
+	params.Add("key", SysConfig.WechatWorkKey)
+	fullURL := fmt.Sprintf("%s?%s", baseURL, params.Encode())
+	//log.Println(fullURL)
+	message := map[string]interface{}{
 		"msgtype": "text",
 		"text": map[string]interface{}{
-			"content": "今日天气:31度,大部分晴,降雨概率:0%",
+			"content":               "您有一个新工单,请及时处理",
+			"mentioned_mobile_list": SysConfig.WechatRemind,
 		},
-	}*/
+	}
 	payload, err := json.Marshal(message)
 	if err != nil {
 		return fmt.Errorf("JSON序列化失败: %v", err)
@@ -101,14 +99,17 @@ func SendWechatWorkMessage() error {
 }
 
 func CheckCreateUserAccount(name string) (accountId int, err error) {
-	res := KbDb.FindOne("users", map[string]interface{}{"name": name}, `"id"`, "id DESC")
+	if name == "" {
+		return 0, errors.New("名字不能为空")
+	}
+	res := KbDb.FindOne("users", map[string]interface{}{"name": name}, "id", "id DESC")
 	if res != nil && len(*res) > 0 {
 		accountId = common.IntAll((*res)["id"])
 	} else {
 		fullNamePy, username := public.ConvertToPinyin(name)
 		in := KbDb.Insert("users", map[string]interface{}{
 			"username":     username,
-			"password":     "$2y$10$HiZaBYTxhppdxmm259JcoO1NW4dWDkEZnPNC74ExRtj0sPFE7FB7m",
+			"password":     "$10$pZhH7qLlW2bh1Qk.UjOkgekVPkpCjG1KfRhv3H0FXidx51a1ZntB2",
 			"is_ldap_user": 0,
 			"name":         name,
 			"email":        fmt.Sprintf("%s@topnet.net.cn", fullNamePy),
@@ -124,14 +125,16 @@ func CheckCreateUserAccount(name string) (accountId int, err error) {
 
 func (t *WordTask) WordTaskSave() error {
 	in := KbDb.Insert("tasks", map[string]interface{}{
-		"title":       t.Title,
-		"description": t.Description,
-		"color_id":    t.Color_id,
-		"project_id":  t.Project_id,
-		"column_Id":   t.Column_id,
-		"position":    t.Position,
-		"score":       t.Score,
-		"creator_id":  t.Creator_id,
+		"title":         t.Title,
+		"description":   t.Description,
+		"color_id":      t.Color_id,
+		"project_id":    t.Project_id,
+		"column_Id":     t.Column_id,
+		"position":      t.Position,
+		"score":         t.Score,
+		"creator_id":    t.Creator_id,
+		"swimlane_id":   t.Swimlane_id,
+		"date_creation": time.Now().Unix(),
 	})
 	if in < 0 {
 		return errors.New("创建任务失败")