Bläddra i källkod

后端: 重写港信通提醒待办任务接口。调试前需通知管控中心,3月26日以当前代码测试时公司全员收到测试信息!有度客服反馈传参无问题。

baichengfei 4 år sedan
förälder
incheckning
bf030b0e82

+ 46 - 0
src/dashoo.cn/backend/api/business/iam/IamService.go

@@ -0,0 +1,46 @@
+package iam
+
+import (
+	"dashoo.cn/utils"
+	"log"
+	"net/http"
+	"strings"
+
+	//"dashoo.cn/business2/userRole"
+	. "dashoo.cn/utils/db"
+	"github.com/go-xorm/xorm"
+)
+
+type IamService struct {
+	ServiceBase
+}
+
+func GetIamService(xormEngine *xorm.Engine) *IamService {
+	s := new(IamService)
+	s.DBE = xormEngine
+	return s
+}
+
+type iam struct {
+	Msg    string    `json:"msg"`
+	Code   int       `json:"code"`
+	Result iamResult `json:"result"`
+}
+type iamResult struct {
+	UserAD string `json:"accountName"`
+	UserNo string `json:"userName"`
+}
+
+func (this *IamService) PostSendSysMsg(url string, params string, token string) *http.Response {
+	client := &http.Client{}
+	ip := utils.Cfg.MustValue("iam", "SendSysMsg")
+	req, err := http.NewRequest("POST", ip+url, strings.NewReader(params))
+	req.Header.Add("Content-Type", "application/json")
+	req.Header.Add("Authorization", "Bearer "+token)
+	resp, err := client.Do(req)
+	if err != nil {
+		log.Println("err= ", err)
+	}
+	log.Println("resp= ", resp)
+	return resp
+}

+ 9 - 0
src/dashoo.cn/backend/api/business/iam/iam.go

@@ -0,0 +1,9 @@
+package iam
+
+//"time"
+
+type Msg struct {
+	UserName string `json:"userName"`
+	ToMobile string `json:"toMobile"`
+	Msg      string `json:"msg"`
+}

+ 3 - 1
src/dashoo.cn/backend/api/conf/app.conf

@@ -77,12 +77,14 @@ goodsPdfHost=http://weed1.labsop.cn:9390/1,363c179f05a5
 basisPdfHost=http://weed1.labsop.cn:9390/5,363a63175da9
 techPdfHost=http://weed1.labsop.cn:9390/4,363bbbd2d097
 OriginUrl=http://localhost:8081/api
-ToDu=http://localhost:8090/api
 AposeUrl=http://localhost:8081/api/apose
 BaseUrl=http://localhost:8081/api/acti
 
 ContrastExcel=http://weed1.labsop.cn:9390/1,03eb5b7a97b8b0
 
+[iam]
+# SendSysMsg=http://localhost:8090/api
+
 [bank]
 callbackHost=http://localhost:10091/api
 

+ 60 - 9
src/dashoo.cn/backend/api/controllers/oilsupplier/todolist.go

@@ -2,6 +2,7 @@ package oilsupplier
 
 import (
 	"dashoo.cn/backend/api/business/auditsetting"
+	"dashoo.cn/backend/api/business/iam"
 	"dashoo.cn/backend/api/business/invoiceinfo"
 	"dashoo.cn/backend/api/business/oilcontract/contract"
 	"dashoo.cn/backend/api/business/oilcontract/contractReview"
@@ -15,11 +16,12 @@ import (
 	"dashoo.cn/backend/api/business/register"
 	"dashoo.cn/backend/api/business/todolist"
 	"dashoo.cn/backend/api/business/workflow"
-	"dashoo.cn/business2/userRole"
 	. "dashoo.cn/backend/api/controllers"
+	"dashoo.cn/business2/userRole"
 	"dashoo.cn/utils"
 	"encoding/json"
 	"fmt"
+	"log"
 	"sort"
 	"strconv"
 	"strings"
@@ -596,10 +598,6 @@ func (this *TodoListController) GetMyTaskFinishedList() {
 	this.ServeJSON()
 }
 
-// @Title 获取待办-发港信通提醒
-// @Description get user by token
-// @Success 200 {object} []supplier.OilSupplierView
-// @router /getToDoSend [get]
 func (this *TodoListController) GetToDoSend() {
 	var pagingResult workflow.ActiMyPagingResultVM
 	actisvc := workflow.GetActivitiService(utils.DBE)
@@ -611,7 +609,7 @@ func (this *TodoListController) GetToDoSend() {
 	usvc.GetEntities(&settingList, "1=1")
 
 	tempstr := ""
-	for _,setting := range settingList {
+	for _, setting := range settingList {
 		ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId))
 		if len(ids) > 0 {
 			tempstr += "," + strings.Join(ids, ",")
@@ -626,15 +624,15 @@ func (this *TodoListController) GetToDoSend() {
 
 	userString := ""
 	i := 0
-	for index,user := range userList {
+	for index, user := range userList {
 		pagingResult = actisvc.GetMyAllTypePagingTasksWithTime(strconv.Itoa(user.Id), 0, 0, "", "", "")
 		if pagingResult.Total > 0 {
 			i++
 			userString += "|" + user.Username
 		}
-		if i == 1000 || index == len(userList)-1{
+		if i == 1000 || index == len(userList)-1 {
 			i = 0
-			fmt.Println("港信通发送人"+strings.TrimLeft(userString, "|"))
+			fmt.Println("港信通发送人" + strings.TrimLeft(userString, "|"))
 			if strings.TrimLeft(userString, "|") == "" {
 				continue
 			}
@@ -658,3 +656,56 @@ func (this *TodoListController) GetToDoSend() {
 	}
 
 }
+
+// @Title 获取待办-发港信通提醒
+// @Description get user by token
+// @Success 200 {object} []supplier.OilSupplierView
+// @router /getToDoSend [get]
+func (this *TodoListController) PushMsgForTodoUser() {
+	actiSvc := workflow.GetActivitiService(utils.DBE)
+	userSvc := userRole.GetUserService(utils.DBE)
+	iamSvc := iam.GetIamService(utils.DBE)
+
+	var userList []userRole.Base_User
+	log.Println("开始请求工作流获取代办人")
+	allUserIdsStr := actiSvc.GetAllTodoTasksUserId()
+	log.Println("请求到的待办人: " + allUserIdsStr)
+	if allUserIdsStr != "" {
+		where := "Id in (" + allUserIdsStr + ") and UserName != ''"
+		userSvc.GetEntities(&userList, where)
+	}
+
+	userNoString := ""
+	i := 0
+	for index, userEntity := range userList {
+		if userEntity.Username != "" {
+			i++
+			if userNoString != "" {
+				userNoString += "|" + userEntity.Username
+			} else {
+				userNoString = userEntity.Username
+			}
+			if i == 1000 || index == len(userList)-1 {
+				var sendVM todolist.SendVM
+				sendVM.Title = "市场管理信息系统"
+				sendVM.ToUser = "yuedefeng" // userNoString
+				sendVM.ToDept = "0"
+				sendVM.Content = "您有未处理的待办任务,请及时审批"
+				sendVM.Secret = "20dGytG*xt@21mSg"
+				sendVM.AppKey = "scgl"
+				sendVM.PopDuration = "6"
+				sendVM.MsgType = "sysMsg"
+				jsonParam, err := json.Marshal(sendVM)
+				if err != nil {
+					fmt.Println(err, "生成json字符串错误")
+				}
+				params := string(jsonParam)
+				iamSvc.PostSendSysMsg("/jcfw/duanxin/v1.0/send-sys-msg", params, "")
+
+				i = 0
+				userNoString = ""
+			}
+		}
+	}
+
+}

+ 4 - 5
src/dashoo.cn/backend/api/controllers/toolbox/toolbox.go

@@ -10,7 +10,7 @@ import (
 //	BaseController
 //}
 
-func TimingTask(){
+func TimingTask() {
 	c := new(oilsupplier.OilSupplierCertController)
 	invoice := new(invoice.OilInvoiceController)
 	todo := new(oilsupplier.TodoListController)
@@ -46,7 +46,6 @@ func TimingTask(){
 	} */
 	toolbox.AddTask("myTaskSupplierFile", tkSupplierFile)
 
-
 	//  资质到期,年审到期 企业改为暂停
 	tkSupplierStatus := toolbox.NewTask("myTaskSupplierStatus", "0 0 2 * * *", func() error {
 		c.ChangeSupplierStatus()
@@ -70,8 +69,8 @@ func TimingTask(){
 	toolbox.AddTask("myTaskInvoiceStatus", tkInvoiceStatus)
 
 	// 有待办调港信通
-	tkToDo := toolbox.NewTask("myTaskToDo", "0 0 8 * * *", func() error {
-		todo.GetToDoSend()
+	tkToDo := toolbox.NewTask("myTaskToDo", "0 0 8 * * *", func() error { // 0 */2 * * * *	每两分钟一次
+		todo.PushMsgForTodoUser()
 		return nil
 	})
 	toolbox.AddTask("myTaskToDo", tkToDo)
@@ -81,4 +80,4 @@ func TimingTask(){
 	//toolbox.StopTask()
 	//beego.Run()
 
-}
+}