287 lines
13 KiB
Go
287 lines
13 KiB
Go
package approval
|
|
|
|
import (
|
|
"context"
|
|
"dubbo.apache.org/dubbo-go/v3/common/logger"
|
|
"fmt"
|
|
account2 "github.com/fonchain_enterprise/fonchain-main/api/account"
|
|
"github.com/fonchain_enterprise/fonchain-main/api/approval"
|
|
"github.com/fonchain_enterprise/fonchain-main/api/chain"
|
|
"github.com/fonchain_enterprise/fonchain-main/pkg/config"
|
|
"github.com/fonchain_enterprise/fonchain-main/pkg/e"
|
|
"github.com/fonchain_enterprise/fonchain-main/pkg/service"
|
|
"github.com/fonchain_enterprise/fonchain-main/pkg/utils"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/gin-gonic/gin/binding"
|
|
"time"
|
|
)
|
|
|
|
func StoreBaiduChainApprovalFilePost(c *gin.Context) {
|
|
var req approval.DetailRequest
|
|
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
|
|
service.Error(c, e.Error, err)
|
|
return
|
|
}
|
|
res := approval.UpdatePromotionReq{}
|
|
|
|
detailReq := approval.DetailRequest{ID: req.ID}
|
|
detail, err := service.ApprovalProvider.Detail(context.Background(), &detailReq)
|
|
if err != nil {
|
|
fmt.Println("============= 查询 approval ========== 任命审批 ===============")
|
|
fmt.Println("err :", err)
|
|
logger.Errorf("查询 approval ========== 任命审批 err %+v\n", err)
|
|
fmt.Println("============= 查询 approval ========== 任命审批 ===============")
|
|
return
|
|
}
|
|
|
|
if detail.Promotion == nil {
|
|
fmt.Println("============= approval Promotion ========== 任命审批 ===============")
|
|
fmt.Printf("detail : %+v \n", detail)
|
|
logger.Errorf("approval Promotion ========== 任命审批 detail : %+v \n", detail)
|
|
fmt.Println("============= approval Promotion ========== 任命审批 ===============")
|
|
return
|
|
}
|
|
|
|
if detail.Status != e.ApprovalWorkStatusOk {
|
|
fmt.Printf("审批尚未通过 approval is %+v\n", detail)
|
|
return
|
|
}
|
|
|
|
// 获取 任命文件
|
|
file := utils.Get(detail.Promotion.FileUrl)
|
|
fmt.Println("============= Promotion baidu file ========== 任命审批 ===============")
|
|
fmt.Printf("file : %+v \n", file)
|
|
fmt.Println("============= Promotion baidu file ========== 任命审批 ===============")
|
|
|
|
fileHash := utils.SHA256V([]byte(file))
|
|
fmt.Println("============= Promotion baidu file hash ========== 任命审批 ===============")
|
|
fmt.Printf("file hash : %+v \n", fileHash)
|
|
fmt.Println("============= Promotion baidu file hash ========== 任命审批 ===============")
|
|
|
|
baiduReq := &chain.BaiduReq{
|
|
FileHash: fileHash,
|
|
FileName: detail.Promotion.FileName,
|
|
}
|
|
baiduRes, err := service.ChainProvider.CoBaiduChain(context.Background(), baiduReq)
|
|
if err != nil {
|
|
fmt.Println("============= Promotion baidu ========== 任命审批 ===============")
|
|
fmt.Printf("err : %+v \n", err)
|
|
logger.Errorf("Promotion baidu ========== 任命审批 err %+v\n", err)
|
|
fmt.Println("============= Promotion baidu ========== 任命审批 ===============")
|
|
return
|
|
}
|
|
|
|
go func(promotionID uint64, requestId string) {
|
|
for {
|
|
//if requestTimes == 0 {
|
|
// return
|
|
//}
|
|
time.Sleep(30 * time.Second)
|
|
queryBaiduChainInfoRes := new(chain.BaiduReqInfoResponse)
|
|
baiduReqInfoReq := &chain.BaiduReqInfoRequest{RequestId: requestId}
|
|
queryBaiduChainInfoRes, err = service.ChainProvider.BaiduReqInfo(context.Background(), baiduReqInfoReq)
|
|
if err != nil {
|
|
fmt.Println("============= Promotion baidu res err ========== 任命审批 ===============")
|
|
fmt.Printf("err : %+v \n", err)
|
|
logger.Errorf("Promotion baidu ========== 任命审批 err %+v\n", err)
|
|
fmt.Println("============= Promotion baidu res err ========== 任命审批 ===============")
|
|
return
|
|
}
|
|
//fmt.Println("============= Promotion baidu res 1 ========== 任命审批 ===============")
|
|
//fmt.Printf("queryBaiduChainInfores : %+v \n", queryBaiduChainInfoRes)
|
|
//logger.Errorf("Promotion baidu res ========== 任命审批 res %+v\n", queryBaiduChainInfoRes)
|
|
//fmt.Println("============= Promotion baidu res 1 ========== 任命审批 ===============")
|
|
if queryBaiduChainInfoRes.BlockId != "" && queryBaiduChainInfoRes.CertUrl != "" && queryBaiduChainInfoRes.TxId != "" {
|
|
fmt.Println("============= Promotion baidu res 2 ========== 任命审批 ===============")
|
|
fmt.Printf("queryBaiduChainInfores : %+v \n", queryBaiduChainInfoRes)
|
|
logger.Errorf("Promotion baidu res ========== 任命审批 res %+v\n", queryBaiduChainInfoRes)
|
|
fmt.Println("============= Promotion baidu res 2 ========== 任命审批 ===============")
|
|
updatePromotionReq := &approval.UpdatePromotionReq{
|
|
ID: promotionID,
|
|
RequestID: requestId,
|
|
TxId: queryBaiduChainInfoRes.TxId,
|
|
BlockId: queryBaiduChainInfoRes.BlockId,
|
|
BaiduCertUrl: queryBaiduChainInfoRes.CertUrl,
|
|
}
|
|
fmt.Println("============= Promotion updatePromotionReq ========== 任命审批 ===============")
|
|
fmt.Printf("updatePromotionReq : %+v \n", updatePromotionReq)
|
|
fmt.Println("============= Promotion updatePromotionReq ========== 任命审批 ===============")
|
|
_, err = service.ApprovalProvider.UpdatePromotionChainInfo(context.Background(), updatePromotionReq)
|
|
if err != nil {
|
|
fmt.Println("============= Promotion update ========== 任命审批 ===============")
|
|
fmt.Printf("err : %+v \n", err)
|
|
logger.Errorf(" Promotion update ========== 任命审批 err %+v\n", err)
|
|
fmt.Println("============= Promotion update ========== 任命审批 ===============")
|
|
}
|
|
userInfReq := &account2.InfoRequest{
|
|
ID: detail.Promotion.StaffUID,
|
|
}
|
|
userInfoRes, err := service.AccountProvider.Info(context.Background(), userInfReq)
|
|
if err != nil {
|
|
fmt.Println("============= account info ========== 任命审批 ===============")
|
|
fmt.Printf("err : %+v \n", err)
|
|
logger.Errorf(" account info ========== 任命审批 err %+v\n", err)
|
|
fmt.Println("============= account info ========== 任命审批 ===============")
|
|
return
|
|
}
|
|
|
|
msgReq := account2.SendCustomMsgRequest{
|
|
ID: detail.Promotion.StaffUID,
|
|
TelNum: userInfoRes.Info.TelNum,
|
|
Url: updatePromotionReq.BaiduCertUrl,
|
|
MId: 148561,
|
|
SigNo: uint32(config.DefaultSignNo),
|
|
}
|
|
fmt.Println("发送短信", msgReq)
|
|
mres, err := service.AccountProvider.SendCustomMsg(context.Background(), &msgReq)
|
|
fmt.Println("发送短信返回", mres, err)
|
|
return
|
|
}
|
|
}
|
|
|
|
}(detail.Promotion.ID, baiduRes.RequestId)
|
|
|
|
service.Success(c, res)
|
|
}
|
|
|
|
func SendSmsMsg(c *gin.Context) {
|
|
msgReq := account2.SendCustomMsgRequest{
|
|
TelNum: "13030633957",
|
|
Url: "https://xchain-image-res.bj.bcebos.com/saas_cert/20230830/c9adf6703104c028d78d1b455a2981a6.pdf?authorization=bce-auth-v1%2F162f503d1eaa4d62b5328bf114a62ff6%2F2023-08-30T14%3A08%3A36Z%2F-1%2Fhost%2F7eb2d5c5e8967469e5007fb93e3b1b776408ddf648ecabd3a3914c07a4d0c940",
|
|
MId: 148561,
|
|
SigNo: uint32(config.DefaultSignNo),
|
|
}
|
|
fmt.Println("发送短信", msgReq)
|
|
mres, err := service.AccountProvider.SendCustomMsg(context.Background(), &msgReq)
|
|
fmt.Println("发送短信返回", mres, err)
|
|
|
|
if err != nil {
|
|
msgReq.Url = "https://xchain-image-res.bj.bcebos.com/saas_cert/20230830/c9adf6703104c028d78d1b455a2981a6.pdf"
|
|
}
|
|
mres, err = service.AccountProvider.SendCustomMsg(context.Background(), &msgReq)
|
|
fmt.Println("发送短信返回", mres, err)
|
|
}
|
|
|
|
func StoreBaiduChainApprovalFile(approvalID uint64) {
|
|
|
|
detailReq := approval.DetailRequest{ID: approvalID}
|
|
detail, err := service.ApprovalProvider.Detail(context.Background(), &detailReq)
|
|
if err != nil {
|
|
fmt.Println("============= 查询 approval ========== 任命审批 ===============")
|
|
fmt.Println("err :", err)
|
|
logger.Errorf("查询 approval ========== 任命审批 err %+v\n", err)
|
|
fmt.Println("============= 查询 approval ========== 任命审批 ===============")
|
|
return
|
|
}
|
|
|
|
if detail.Promotion == nil {
|
|
fmt.Println("============= approval Promotion ========== 任命审批 ===============")
|
|
fmt.Printf("detail : %+v \n", detail)
|
|
logger.Errorf("approval Promotion ========== 任命审批 detail : %+v \n", detail)
|
|
fmt.Println("============= approval Promotion ========== 任命审批 ===============")
|
|
return
|
|
}
|
|
|
|
if detail.Status != e.ApprovalWorkStatusOk {
|
|
fmt.Printf("审批尚未通过 approval is %+v\n", detail)
|
|
return
|
|
}
|
|
|
|
// 获取 任命文件
|
|
file := utils.Get(detail.Promotion.FileUrl)
|
|
|
|
fileHash := utils.SHA256V([]byte(file))
|
|
|
|
baiduReq := &chain.BaiduReq{
|
|
FileHash: fileHash,
|
|
FileName: detail.Promotion.FileName,
|
|
}
|
|
baiduRes, err := service.ChainProvider.CoBaiduChain(context.Background(), baiduReq)
|
|
if err != nil {
|
|
fmt.Println("============= Promotion baidu ========== 任命审批 ===============")
|
|
fmt.Printf("err : %+v \n", err)
|
|
logger.Errorf("Promotion baidu ========== 任命审批 err %+v\n", err)
|
|
fmt.Println("============= Promotion baidu ========== 任命审批 ===============")
|
|
return
|
|
}
|
|
|
|
go func(promotion *approval.Promotion, requestId string) {
|
|
for {
|
|
//if requestTimes == 0 {
|
|
// return
|
|
//}
|
|
time.Sleep(30 * time.Second)
|
|
queryBaiduChainInfoRes := new(chain.BaiduReqInfoResponse)
|
|
baiduReqInfoReq := &chain.BaiduReqInfoRequest{RequestId: requestId}
|
|
queryBaiduChainInfoRes, err = service.ChainProvider.BaiduReqInfo(context.Background(), baiduReqInfoReq)
|
|
if err != nil {
|
|
fmt.Println("============= Promotion baidu res err ========== 任命审批 ===============")
|
|
fmt.Printf("err : %+v \n", err)
|
|
logger.Errorf("Promotion baidu ========== 任命审批 err %+v\n", err)
|
|
fmt.Println("============= Promotion baidu res err ========== 任命审批 ===============")
|
|
return
|
|
}
|
|
//fmt.Println("============= Promotion baidu res 1 ========== 任命审批 ===============")
|
|
//fmt.Printf("queryBaiduChainInfores : %+v \n", queryBaiduChainInfoRes)
|
|
//logger.Errorf("Promotion baidu res ========== 任命审批 res %+v\n", queryBaiduChainInfoRes)
|
|
//fmt.Println("============= Promotion baidu res 1 ========== 任命审批 ===============")
|
|
if queryBaiduChainInfoRes.BlockId != "" && queryBaiduChainInfoRes.CertUrl != "" && queryBaiduChainInfoRes.TxId != "" {
|
|
fmt.Println("============= Promotion baidu res 2 ========== 任命审批 ===============")
|
|
fmt.Printf("queryBaiduChainInfores : %+v \n", queryBaiduChainInfoRes)
|
|
logger.Errorf("Promotion baidu res ========== 任命审批 res %+v\n", queryBaiduChainInfoRes)
|
|
fmt.Println("============= Promotion baidu res 2 ========== 任命审批 ===============")
|
|
updatePromotionReq := &approval.UpdatePromotionReq{
|
|
ID: promotion.ID,
|
|
RequestID: requestId,
|
|
TxId: queryBaiduChainInfoRes.TxId,
|
|
BlockId: queryBaiduChainInfoRes.BlockId,
|
|
BaiduCertUrl: queryBaiduChainInfoRes.CertUrl,
|
|
}
|
|
userInfReq := &account2.InfoRequest{
|
|
ID: detail.Promotion.StaffUID,
|
|
}
|
|
userInfoRes, err := service.AccountProvider.Info(context.Background(), userInfReq)
|
|
if err != nil {
|
|
fmt.Println("============= account info ========== 任命审批 ===============")
|
|
fmt.Printf("err : %+v \n", err)
|
|
logger.Errorf(" account info ========== 任命审批 err %+v\n", err)
|
|
fmt.Println("============= account info ========== 任命审批 ===============")
|
|
return
|
|
}
|
|
|
|
effectiveTime, _ := time.ParseInLocation("2006-01-02", promotion.EffectiveTime, time.Local)
|
|
nowTime, _ := time.ParseInLocation("2006-01-02", time.Now().Format("2006-01-02"), time.Local)
|
|
if !effectiveTime.After(nowTime) {
|
|
msgReq := account2.SendCustomMsgRequest{
|
|
ID: detail.Promotion.StaffUID,
|
|
TelNum: userInfoRes.Info.TelNum,
|
|
Url: updatePromotionReq.BaiduCertUrl,
|
|
MId: 148561,
|
|
SigNo: uint32(config.DefaultSignNo),
|
|
}
|
|
fmt.Println("发送短信", msgReq)
|
|
mres, err := service.AccountProvider.SendCustomMsg(context.Background(), &msgReq)
|
|
fmt.Println("发送短信返回", mres, err)
|
|
if err == nil { // 短信发送成功
|
|
updatePromotionReq.IsSend = e.SendPromotionMsgSuccess
|
|
}
|
|
}
|
|
fmt.Println("============= Promotion updatePromotionReq ========== 任命审批 ===============")
|
|
fmt.Printf("updatePromotionReq : %+v \n", updatePromotionReq)
|
|
fmt.Println("============= Promotion updatePromotionReq ========== 任命审批 ===============")
|
|
_, err = service.ApprovalProvider.UpdatePromotionChainInfo(context.Background(), updatePromotionReq)
|
|
if err != nil {
|
|
fmt.Println("============= Promotion update ========== 任命审批 ===============")
|
|
fmt.Printf("err : %+v \n", err)
|
|
logger.Errorf(" Promotion update ========== 任命审批 err %+v\n", err)
|
|
fmt.Println("============= Promotion update ========== 任命审批 ===============")
|
|
}
|
|
return
|
|
}
|
|
}
|
|
|
|
}(detail.Promotion, baiduRes.RequestId)
|
|
|
|
return
|
|
}
|