renjiaojiao hai 3 meses
pai
achega
de9bc8529f
Modificáronse 5 ficheiros con 53 adicións e 21 borrados
  1. 5 3
      config.yaml
  2. 25 14
      config/db.go
  3. 2 0
      main.go
  4. 13 1
      service/kbService.go
  5. 8 3
      timeTask/kbTask.go

+ 5 - 3
config.yaml

@@ -9,6 +9,11 @@ kbMySql:
   user: kanboard
   password: K99b3e9qa9d
   dbname: kanboard
+gfastv2:
+  host: 172.20.45.129:3366
+  user: worker
+  password: OKfe25Jt0411
+  dbname: gfast-v2
 filePath: ./upload/
 wechatWorkUrl: https://qyapi.weixin.qq.com/cgi-bin/webhook/send
 wechatWorkKey: 39d428d4-f35c-4651-a064-147c27e7bed0
@@ -27,7 +32,4 @@ project:
   todoColumnId: 3283
   finishColumnId: 3286
   swimlaneId: 1338
-userId:
-  rjj: RenJiaoJiao
-  jly: JiaLuYao
 timeTaskCron: 0 */5 * * * *

+ 25 - 14
config/db.go

@@ -14,22 +14,24 @@ var SysConfig Config
 var Db *sql.DB
 
 var KbDb *mysql.Mysql
+var GfastDb *mysql.Mysql
+var QywxUserIdMap map[string]string
 
 type Config struct {
-	Port           string            `yaml:"port"`
-	Database       DatabaseConfig    `yaml:"database"`
-	FilePath       string            `yaml:"filePath"`
-	WechatWorkUrl  string            `yaml:"wechatWorkUrl"`
-	KbMySql        DatabaseConfig    `yaml:"kbMySql"`
-	WechatWorkKey  string            `yaml:"wechatWorkKey"`
-	WechatRemind   []string          `yaml:"wechatRemind"`
-	WorkflowsUrl   string            `yaml:"workflowsUrl"`
-	WorkflowsUser  string            `yaml:"workflowsUser"`
-	WorkPrivateMsg WorkPrivateMsg    `yaml:"workPrivateMsg"`
-	RedisServer    string            `yaml:"redisServer"`
-	Project        Project           `yaml:"project"`
-	UserIdMap      map[string]string `yaml:"userId"`
-	TimeTaskCron   string            `yaml:"timeTaskCron"`
+	Port           string         `yaml:"port"`
+	Database       DatabaseConfig `yaml:"database"`
+	FilePath       string         `yaml:"filePath"`
+	WechatWorkUrl  string         `yaml:"wechatWorkUrl"`
+	KbMySql        DatabaseConfig `yaml:"kbMySql"`
+	WechatWorkKey  string         `yaml:"wechatWorkKey"`
+	WechatRemind   []string       `yaml:"wechatRemind"`
+	WorkflowsUrl   string         `yaml:"workflowsUrl"`
+	WorkflowsUser  string         `yaml:"workflowsUser"`
+	WorkPrivateMsg WorkPrivateMsg `yaml:"workPrivateMsg"`
+	RedisServer    string         `yaml:"redisServer"`
+	Project        Project        `yaml:"project"`
+	TimeTaskCron   string         `yaml:"timeTaskCron"`
+	Gfastv2        DatabaseConfig `yaml:"gfastv2"`
 }
 
 type DatabaseConfig struct {
@@ -89,6 +91,15 @@ func InitDB() {
 		MaxIdleConns: 5,
 	}
 	KbDb.Init()
+	GfastDb = &mysql.Mysql{
+		Address:      SysConfig.Gfastv2.Host,
+		UserName:     SysConfig.Gfastv2.User,
+		PassWord:     SysConfig.Gfastv2.Password,
+		DBName:       SysConfig.Gfastv2.DBName,
+		MaxOpenConns: 5,
+		MaxIdleConns: 5,
+	}
+	GfastDb.Init()
 
 	redis.InitRedis(SysConfig.RedisServer)
 }

+ 2 - 0
main.go

@@ -2,6 +2,7 @@ package main
 
 import (
 	"biBackService/controller"
+	"biBackService/service"
 	"biBackService/timeTask"
 	"html/template"
 	"log"
@@ -37,6 +38,7 @@ func main() {
 	router.POST("/biBackService/kb/getTitle", controller.GetTitle)
 	router.POST("/biBackService/kb/workWeChatPrivateMsg", controller.WorkWeChatPrivateMsg)
 
+	service.GetQywxUserId()
 	timeTask.Task()
 	log.Println("服务器启动在", SysConfig.Port)
 	router.Run(SysConfig.Port)

+ 13 - 1
service/kbService.go

@@ -53,7 +53,7 @@ func CheckCreateUserAccount(name string) (accountId int, err error) {
 		fullNamePy, username := public.ConvertToPinyin(name)
 		in := KbDb.Insert("users", map[string]interface{}{
 			"username":     username,
-			"password":     "$10$pZhH7qLlW2bh1Qk.UjOkgekVPkpCjG1KfRhv3H0FXidx51a1ZntB2",
+			"password":     "$2y$10$pZhH7qLlW2bh1Qk.UjOkgekVPkpCjG1KfRhv3H0FXidx51a1ZntB2",
 			"is_ldap_user": 0,
 			"name":         name,
 			"email":        fmt.Sprintf("%s@topnet.net.cn", fullNamePy),
@@ -189,3 +189,15 @@ func GetTitleByContent(content string) (toTitle string, err error) {
 	//toTitle = string(body)
 	return
 }
+
+func GetQywxUserId() {
+	userIdMap := map[string]string{}
+	data := GfastDb.SelectBySql("select userid,email from jy_qywx_user where status = 1")
+	if data != nil && len(*data) > 0 {
+		for _, v := range *data {
+			userIdMap[common.InterfaceToStr(v["email"])] = common.InterfaceToStr(v["userid"])
+		}
+	}
+
+	QywxUserIdMap = userIdMap
+}

+ 8 - 3
timeTask/kbTask.go

@@ -21,15 +21,20 @@ func kbTaskWechatPrivateMsg() {
 	log.Println("start cron ......")
 	//查询已完成工单
 	fiveMinutesAgo := time.Now().Local().Add(-5 * time.Minute).Unix()
-	data := KbDb.SelectBySql("SELECT t.id,t.title,u.name,u.username FROM `tasks` t LEFT JOIN users u ON t.creator_id = u.id WHERE date_moved > ? AND date_moved <= NOW() AND t.column_id = ? AND t.project_id = ?", fiveMinutesAgo, SysConfig.Project.FinishColumnId, SysConfig.Project.ProjectId)
+	data := KbDb.SelectBySql("SELECT t.id,t.title,u.name,u.username,u.email FROM `tasks` t LEFT JOIN users u ON t.creator_id = u.id WHERE date_moved > ? AND date_moved <= NOW() AND t.column_id = ? AND t.project_id = ?", fiveMinutesAgo, SysConfig.Project.FinishColumnId, SysConfig.Project.ProjectId)
 	if data != nil && len(*data) > 0 {
 		for _, v := range *data {
 			log.Println("task id ", v["id"])
-			createUser := common.InterfaceToStr(v["username"])
+			//createUser := common.InterfaceToStr(v["username"])
 			title := common.InterfaceToStr(v["title"])
+			email := common.InterfaceToStr(v["email"])
 			msg := fmt.Sprintf("您反馈的“%s”的问题已解决", title)
-			userId := SysConfig.UserIdMap[createUser]
+			userId := QywxUserIdMap[email]
 			//发送企业微信
+			if userId == "" {
+				log.Println("未找到创建人企业微信userid ", common.InterfaceToStr(v["username"]), email)
+				continue
+			}
 			ok, err := public.SendMsg(userId, msg)
 			if !ok && err != nil {
 				log.Printf("工单id:%v发送企业微信消息出错:%s", common.IntAll(v["id"]), err)