|
@@ -1,16 +1,24 @@
|
|
package bidCreditReport
|
|
package bidCreditReport
|
|
|
|
|
|
import (
|
|
import (
|
|
- "app.yhyue.com/moapp/jybase/encrypt"
|
|
|
|
- "app.yhyue.com/moapp/jybase/es"
|
|
|
|
- . "app.yhyue.com/moapp/jybase/mongodb"
|
|
|
|
- "bp.jydev.jianyu360.cn/BaseService/pushpkg/p"
|
|
|
|
- . "bp.jydev.jianyu360.cn/BaseService/userCenter/identity"
|
|
|
|
"bytes"
|
|
"bytes"
|
|
"encoding/csv"
|
|
"encoding/csv"
|
|
"encoding/json"
|
|
"encoding/json"
|
|
"errors"
|
|
"errors"
|
|
"fmt"
|
|
"fmt"
|
|
|
|
+ "io/ioutil"
|
|
|
|
+ "jy/src/jfw/modules/subscribepay/src/config"
|
|
|
|
+ "jy/src/jfw/modules/subscribepay/src/util"
|
|
|
|
+ "log"
|
|
|
|
+ "net/http"
|
|
|
|
+ "net/url"
|
|
|
|
+ "time"
|
|
|
|
+
|
|
|
|
+ "app.yhyue.com/moapp/jybase/encrypt"
|
|
|
|
+ "app.yhyue.com/moapp/jybase/es"
|
|
|
|
+ . "app.yhyue.com/moapp/jybase/mongodb"
|
|
|
|
+ "bp.jydev.jianyu360.cn/BaseService/pushpkg/p"
|
|
|
|
+ . "bp.jydev.jianyu360.cn/BaseService/userCenter/identity"
|
|
"github.com/gogf/gf/v2/container/garray"
|
|
"github.com/gogf/gf/v2/container/garray"
|
|
"github.com/gogf/gf/v2/container/gmap"
|
|
"github.com/gogf/gf/v2/container/gmap"
|
|
"github.com/gogf/gf/v2/crypto/gmd5"
|
|
"github.com/gogf/gf/v2/crypto/gmd5"
|
|
@@ -21,13 +29,6 @@ import (
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
"github.com/gogf/gf/v2/util/guid"
|
|
"github.com/gogf/gf/v2/util/guid"
|
|
"github.com/smartwalle/alipay/v3"
|
|
"github.com/smartwalle/alipay/v3"
|
|
- "io/ioutil"
|
|
|
|
- "jy/src/jfw/modules/subscribepay/src/config"
|
|
|
|
- "jy/src/jfw/modules/subscribepay/src/util"
|
|
|
|
- "log"
|
|
|
|
- "net/http"
|
|
|
|
- "net/url"
|
|
|
|
- "time"
|
|
|
|
)
|
|
)
|
|
|
|
|
|
const esQuery = `{"query":{"bool":{"must":[{"term":{"s_winner":"%s"}},{"range":{"lasttime":{"gt":%d}}},{"exists":{"field":"projectname"}},{"exists":{"field":"buyer"}},{"exists":{"field":"lasttime"}}]}},"_source":["id","projectname","buyer","area","city","district","sortprice","lasttime","list.infoid","topscopeclass"],"sort":{"sortprice":"desc"},"size":%d}`
|
|
const esQuery = `{"query":{"bool":{"must":[{"term":{"s_winner":"%s"}},{"range":{"lasttime":{"gt":%d}}},{"exists":{"field":"projectname"}},{"exists":{"field":"buyer"}},{"exists":{"field":"lasttime"}}]}},"_source":["id","projectname","buyer","area","city","district","sortprice","lasttime","list.infoid","topscopeclass"],"sort":{"sortprice":"desc"},"size":%d}`
|
|
@@ -202,8 +203,7 @@ func (b *bidCreditReport) ReportQuery(orderNo string) bool {
|
|
// 发邮件
|
|
// 发邮件
|
|
func (b *bidCreditReport) sendMail(userId, userMail, entName, buyer, downloadUrl, orderCode string) bool {
|
|
func (b *bidCreditReport) sendMail(userId, userMail, entName, buyer, downloadUrl, orderCode string) bool {
|
|
ctx := gctx.New()
|
|
ctx := gctx.New()
|
|
- previewUrl := fmt.Sprintf("%s/swordfish/page_big_pc/free/report/preview?url=%s", config.Config.WebDomain, url.QueryEscape(downloadUrl))
|
|
|
|
- content := fmt.Sprintf(g.Config().MustGet(ctx, "bidCreditReport.mailContent").String(), downloadUrl, config.Config.WebDomain, previewUrl, entName, buyer)
|
|
|
|
|
|
+ content := fmt.Sprintf(g.Config().MustGet(ctx, "bidCreditReport.mailContent").String(), downloadUrl, config.Config.WebDomain, config.Config.WebDomain, url.QueryEscape(downloadUrl), entName, buyer)
|
|
log.Println("开始给", userId, orderCode, userMail, "发送招投标企业信用报告邮件。。。")
|
|
log.Println("开始给", userId, orderCode, userMail, "发送招投标企业信用报告邮件。。。")
|
|
if util.SendRetryMail(g.Config().MustGet(ctx, "bidCreditReport.sendMailRetry").Int(), userMail, fmt.Sprintf(g.Config().MustGet(ctx, "bidCreditReport.mailSubject").String(), entName), content, "", nil, config.GmailAuth) {
|
|
if util.SendRetryMail(g.Config().MustGet(ctx, "bidCreditReport.sendMailRetry").Int(), userMail, fmt.Sprintf(g.Config().MustGet(ctx, "bidCreditReport.mailSubject").String(), entName), content, "", nil, config.GmailAuth) {
|
|
log.Println("给", userId, orderCode, userMail, "发送招投标企业信用报告邮件成功。。。")
|
|
log.Println("给", userId, orderCode, userMail, "发送招投标企业信用报告邮件成功。。。")
|
|
@@ -425,10 +425,10 @@ func (b *bidCreditReport) NewOrderWarn() {
|
|
}
|
|
}
|
|
log.Println("有新的投标企业信用报告订单给运维发邮件加载到数据", v.String())
|
|
log.Println("有新的投标企业信用报告订单给运维发邮件加载到数据", v.String())
|
|
v.Set("isNew", true)
|
|
v.Set("isNew", true)
|
|
- b.sendWarnNotice(v.GetVar("id").Int64(), v.GetVar("order_code").String(), v.GetVar("ent_name").String(), v.GetVar("buyer").String())
|
|
|
|
|
|
+ b.sendWarnNotice(v.GetVar("id").Int64(), v.GetVar("order_code").String(), v.GetVar("ent_name").String(), v.GetVar("cert_no").String(), v.GetVar("buyer").String())
|
|
all[id] = v
|
|
all[id] = v
|
|
return true
|
|
return true
|
|
- }, `select id,order_code,ent_name,buyer from jianyu.bid_credit_report where status=0`)
|
|
|
|
|
|
+ }, `select id,order_code,ent_name,cert_no,buyer from jianyu.bid_credit_report where status=0`)
|
|
if index < g.Config().MustGet(ctx, "bidCreditReport.warnIntervalMinute", 15).Int() {
|
|
if index < g.Config().MustGet(ctx, "bidCreditReport.warnIntervalMinute", 15).Int() {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -442,16 +442,17 @@ func (b *bidCreditReport) NewOrderWarn() {
|
|
v.Set("isNew", false)
|
|
v.Set("isNew", false)
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
- b.sendWarnNotice(v.GetVar("id").Int64(), v.GetVar("order_code").String(), v.GetVar("ent_name").String(), v.GetVar("buyer").String())
|
|
|
|
|
|
+ b.sendWarnNotice(v.GetVar("id").Int64(), v.GetVar("order_code").String(), v.GetVar("ent_name").String(), v.GetVar("cert_no").String(), v.GetVar("buyer").String())
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
// 发送企业微信机器人告警
|
|
// 发送企业微信机器人告警
|
|
-func (b *bidCreditReport) sendWarnNotice(id int64, orderCode, entName, buyer string) {
|
|
|
|
|
|
+func (b *bidCreditReport) sendWarnNotice(id int64, orderCode, entName, certNo, buyer string) {
|
|
ctx := gctx.New()
|
|
ctx := gctx.New()
|
|
message := `订单编号:%s
|
|
message := `订单编号:%s
|
|
投标企业名称:%s
|
|
投标企业名称:%s
|
|
|
|
+统一社会信用代码:%s
|
|
招标单位名称:%s
|
|
招标单位名称:%s
|
|
点击完善信息:%s/swordfish/page_big_pc/free/report/examine?id=%d`
|
|
点击完善信息:%s/swordfish/page_big_pc/free/report/examine?id=%d`
|
|
type WeixinMessage struct {
|
|
type WeixinMessage struct {
|
|
@@ -467,7 +468,7 @@ func (b *bidCreditReport) sendWarnNotice(id int64, orderCode, entName, buyer str
|
|
} `json:"text"`
|
|
} `json:"text"`
|
|
}
|
|
}
|
|
msg.MsgType = "text"
|
|
msg.MsgType = "text"
|
|
- msg.Text.Content = fmt.Sprintf(message, orderCode, entName, buyer, config.Config.WebDomain, id)
|
|
|
|
|
|
+ msg.Text.Content = fmt.Sprintf(message, orderCode, entName, certNo, buyer, config.Config.WebDomain, id)
|
|
data, _ := json.Marshal(msg)
|
|
data, _ := json.Marshal(msg)
|
|
resp, err := http.Post(g.Config().MustGet(gctx.New(), "bidCreditReport.webhook").String(), "application/json", bytes.NewReader(data))
|
|
resp, err := http.Post(g.Config().MustGet(gctx.New(), "bidCreditReport.webhook").String(), "application/json", bytes.NewReader(data))
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -481,7 +482,7 @@ func (b *bidCreditReport) sendWarnNotice(id int64, orderCode, entName, buyer str
|
|
}
|
|
}
|
|
log.Println(orderCode, entName, "投标企业信用报告订单 sendWebhook 成功")
|
|
log.Println(orderCode, entName, "投标企业信用报告订单 sendWebhook 成功")
|
|
//
|
|
//
|
|
- content := fmt.Sprintf(g.Config().MustGet(ctx, "bidCreditReport.warnMailContent").String(), config.Config.WebDomain, id, orderCode, entName, buyer)
|
|
|
|
|
|
+ content := fmt.Sprintf(g.Config().MustGet(ctx, "bidCreditReport.warnMailContent").String(), config.Config.WebDomain, id, orderCode, entName, certNo, buyer)
|
|
for _, v := range g.Config().MustGet(ctx, "bidCreditReport.warnUserMail").Strings() {
|
|
for _, v := range g.Config().MustGet(ctx, "bidCreditReport.warnUserMail").Strings() {
|
|
go func(vv string) {
|
|
go func(vv string) {
|
|
log.Println(orderCode, vv, "开始给运维发送有新的投标企业信用报告订单邮件。。。")
|
|
log.Println(orderCode, vv, "开始给运维发送有新的投标企业信用报告订单邮件。。。")
|