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 }