From ad62b27152099dd5191858791c16b2ff1738623f Mon Sep 17 00:00:00 2001 From: chenlin Date: Thu, 4 Jul 2024 19:00:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E9=9C=80=E6=B1=82=E6=9F=A5=E8=AF=A2=E6=85=A2=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9B=202.=E6=89=AB=E7=A0=81=E4=BB=98=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E7=BB=88=E7=AB=AF=E5=8F=B7=EF=BC=88=E5=AF=B9=E5=BA=94?= =?UTF-8?q?=E9=97=A8=E5=BA=97ID=EF=BC=89=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/pay/wx_pay.go | 43 +++++++++++++++++++------ app/admin/models/erp_order.go | 2 +- app/admin/models/purchase.go | 59 ++++++++++++++++++++++++++--------- 3 files changed, 78 insertions(+), 26 deletions(-) diff --git a/app/admin/apis/pay/wx_pay.go b/app/admin/apis/pay/wx_pay.go index 6607d0b..18bbde0 100644 --- a/app/admin/apis/pay/wx_pay.go +++ b/app/admin/apis/pay/wx_pay.go @@ -601,6 +601,7 @@ type HmPayBToCBizContent struct { OutOrderNo string `json:"out_order_no"` Body string `json:"body"` StoreId string `json:"store_id"` + TerminalId string `json:"terminal_id"` NotifyUrl string `json:"notify_url"` } @@ -1021,7 +1022,7 @@ func ToSignContent(s interface{}) (string, error) { } // HmJsPayBToCOrder 河马刷卡支付(B扫C) -func HmJsPayBToCOrder(orderId string, totalFee float64, authCode, notifyUrl string) (*HmPayBToCOrderDetail, error) { +func HmJsPayBToCOrder(storeId uint32, orderId string, totalFee float64, authCode, notifyUrl string) (*HmPayBToCOrderDetail, error) { now := time.Now().Local() strTime := fmt.Sprintf("%04d%02d%02d%02d%02d%02d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second()) @@ -1056,10 +1057,13 @@ func HmJsPayBToCOrder(orderId string, totalFee float64, authCode, notifyUrl stri OutOrderNo: orderId, Body: "门店消费", StoreId: "100001", + TerminalId: fmt.Sprintf("%d", storeId), NotifyUrl: notifyUrl, } + if config.ApplicationConfig.Mode == "dev" { biz.CreateIp = clientIpDev + publicPara.AppId = HmPayMerchantId } unifiedOrderReq.HmPayPublicPara = publicPara @@ -1076,12 +1080,21 @@ func HmJsPayBToCOrder(orderId string, totalFee float64, authCode, notifyUrl stri return nil, err } - sign, err := GenHmPaySignDeovo(m) - if err != nil { - logger.Error("HmJsPayUnifiedOrder GenHmPaySign err:", logger.Field("err", err)) - return nil, err + if config.ApplicationConfig.Mode == "dev" { + sign, err := GenHmPaySign(m) + if err != nil { + logger.Error("HmJsPayUnifiedOrder GenHmPaySign err:", logger.Field("err", err)) + return nil, err + } + unifiedOrderReq.Sign = sign + } else { + sign, err := GenHmPaySignDeovo(m) + if err != nil { + logger.Error("HmJsPayUnifiedOrder GenHmPaySign err:", logger.Field("err", err)) + return nil, err + } + unifiedOrderReq.Sign = sign } - unifiedOrderReq.Sign = sign unifiedOrderResp, err := HmPayUnifiedOrder(unifiedOrderReq) if err != nil { @@ -1094,11 +1107,21 @@ func HmJsPayBToCOrder(orderId string, totalFee float64, authCode, notifyUrl stri logger.Errorf("ToSignContent err:", err) return nil, err } - err = HmVerifySha1RsaDeovo(signContent, unifiedOrderResp.Sign) - if err != nil { - logger.Errorf("HmVerifySha1Rsa err:", err) - return nil, err + + if config.ApplicationConfig.Mode == "dev" { + err = HmVerifySha1Rsa(signContent, unifiedOrderResp.Sign) + if err != nil { + logger.Errorf("HmVerifySha1Rsa err:", err) + return nil, err + } + } else { + err = HmVerifySha1RsaDeovo(signContent, unifiedOrderResp.Sign) + if err != nil { + logger.Errorf("HmVerifySha1Rsa err:", err) + return nil, err + } } + //fmt.Println("unifiedOrderResp:", unifiedOrderResp.Data) var hmPayDetail HmPayBToCOrderDetail err = json.Unmarshal([]byte(unifiedOrderResp.Data), &hmPayDetail) diff --git a/app/admin/models/erp_order.go b/app/admin/models/erp_order.go index 2c1fd66..4be9a93 100644 --- a/app/admin/models/erp_order.go +++ b/app/admin/models/erp_order.go @@ -1905,7 +1905,7 @@ func ErpOrderPay(req *ErpOrderPayReq, c *gin.Context) (*ErpOrderPayResp, error) resp.Status = Paying // 发起支付扣款 - hmPayResp, err := pay.HmJsPayBToCOrder(orderSn, amount, req.AuthCode, "") + hmPayResp, err := pay.HmJsPayBToCOrder(orderInfo.StoreId, orderSn, amount, req.AuthCode, "") if err != nil { logger.Error("HmJsPayBToCOrder err") return resp, err diff --git a/app/admin/models/purchase.go b/app/admin/models/purchase.go index b96f4e4..1f8fe2b 100644 --- a/app/admin/models/purchase.go +++ b/app/admin/models/purchase.go @@ -2532,7 +2532,20 @@ func getErpPurchaseDemandAll(req *GetErpPurchaseDemandReq, c *gin.Context) (*Get var wg sync.WaitGroup demandDataList := make([]DemandData, len(commodities)) - for i, v := range commodities { + var tempCommodities []ErpCommodity + if req.IsExport == 1 { + tempCommodities = commodities + } else { + // 计算分页 + startIndex := page * req.PageSize + endIndex := (page + 1) * req.PageSize + if endIndex > len(commodities) { + endIndex = len(commodities) + } + tempCommodities = commodities[startIndex:endIndex] + } + + for i, v := range tempCommodities { wg.Add(1) go func(index int, commodity ErpCommodity) { defer wg.Done() @@ -2560,13 +2573,15 @@ func getErpPurchaseDemandAll(req *GetErpPurchaseDemandReq, c *gin.Context) (*Get return nil, err } } else { - // 计算分页所需的切片索引 - startIndex := page * req.PageSize - endIndex := (page + 1) * req.PageSize - if endIndex > len(demandDataList) { - endIndex = len(demandDataList) - } - resp.List = demandDataList[startIndex:endIndex] + //// 计算分页所需的切片索引 + //startIndex := page * req.PageSize + //endIndex := (page + 1) * req.PageSize + //if endIndex > len(demandDataList) { + // endIndex = len(demandDataList) + //} + //resp.List = demandDataList[startIndex:endIndex] + + resp.List = demandDataList resp.Total = count } @@ -2738,8 +2753,20 @@ func getErpPurchaseDemandHide(req *GetErpPurchaseDemandReq, c *gin.Context) (*Ge // 并行查询需求数据 var wg sync.WaitGroup demandDataList := make([]DemandData, len(matchedCommodities)) + var tempCommodities []ErpCommodity + if req.IsExport == 1 { + tempCommodities = matchedCommodities + } else { + // 计算分页 + startIndex := page * req.PageSize + endIndex := (page + 1) * req.PageSize + if endIndex > len(matchedCommodities) { + endIndex = len(matchedCommodities) + } + tempCommodities = matchedCommodities[startIndex:endIndex] + } - for i, v := range matchedCommodities { + for i, v := range tempCommodities { wg.Add(1) go func(index int, commodity ErpCommodity) { defer wg.Done() @@ -2768,12 +2795,14 @@ func getErpPurchaseDemandHide(req *GetErpPurchaseDemandReq, c *gin.Context) (*Ge } } else { // 计算分页所需的切片索引 - startIndex := page * req.PageSize - endIndex := (page + 1) * req.PageSize - if endIndex > len(demandDataList) { - endIndex = len(demandDataList) - } - resp.List = demandDataList[startIndex:endIndex] + //startIndex := page * req.PageSize + //endIndex := (page + 1) * req.PageSize + //if endIndex > len(demandDataList) { + // endIndex = len(demandDataList) + //} + //resp.List = demandDataList[startIndex:endIndex] + + resp.List = demandDataList resp.Total = int64(len(matchedCommodities)) } } From da2155c587cceb93342c0566a21b00d299c76f2e Mon Sep 17 00:00:00 2001 From: chenlin Date: Fri, 5 Jul 2024 09:29:42 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E9=9C=80=E6=B1=82=E6=97=A0=E5=88=86=E9=A1=B5=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/models/purchase.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/admin/models/purchase.go b/app/admin/models/purchase.go index 1f8fe2b..c9db570 100644 --- a/app/admin/models/purchase.go +++ b/app/admin/models/purchase.go @@ -2530,7 +2530,6 @@ func getErpPurchaseDemandAll(req *GetErpPurchaseDemandReq, c *gin.Context) (*Get // 并行查询需求数据 var wg sync.WaitGroup - demandDataList := make([]DemandData, len(commodities)) var tempCommodities []ErpCommodity if req.IsExport == 1 { @@ -2544,6 +2543,7 @@ func getErpPurchaseDemandAll(req *GetErpPurchaseDemandReq, c *gin.Context) (*Get } tempCommodities = commodities[startIndex:endIndex] } + demandDataList := make([]DemandData, len(tempCommodities)) for i, v := range tempCommodities { wg.Add(1) @@ -2752,7 +2752,6 @@ func getErpPurchaseDemandHide(req *GetErpPurchaseDemandReq, c *gin.Context) (*Ge // 并行查询需求数据 var wg sync.WaitGroup - demandDataList := make([]DemandData, len(matchedCommodities)) var tempCommodities []ErpCommodity if req.IsExport == 1 { tempCommodities = matchedCommodities @@ -2765,6 +2764,7 @@ func getErpPurchaseDemandHide(req *GetErpPurchaseDemandReq, c *gin.Context) (*Ge } tempCommodities = matchedCommodities[startIndex:endIndex] } + demandDataList := make([]DemandData, len(tempCommodities)) for i, v := range tempCommodities { wg.Add(1)