Merge remote-tracking branch 'origin/dev_1.4.1'

This commit is contained in:
chenlin 2024-07-05 09:30:04 +08:00
commit b528c53e90
3 changed files with 80 additions and 28 deletions

View File

@ -601,6 +601,7 @@ type HmPayBToCBizContent struct {
OutOrderNo string `json:"out_order_no"` OutOrderNo string `json:"out_order_no"`
Body string `json:"body"` Body string `json:"body"`
StoreId string `json:"store_id"` StoreId string `json:"store_id"`
TerminalId string `json:"terminal_id"`
NotifyUrl string `json:"notify_url"` NotifyUrl string `json:"notify_url"`
} }
@ -1021,7 +1022,7 @@ func ToSignContent(s interface{}) (string, error) {
} }
// HmJsPayBToCOrder 河马刷卡支付B扫C // 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() now := time.Now().Local()
strTime := fmt.Sprintf("%04d%02d%02d%02d%02d%02d", now.Year(), now.Month(), now.Day(), now.Hour(), strTime := fmt.Sprintf("%04d%02d%02d%02d%02d%02d", now.Year(), now.Month(), now.Day(), now.Hour(),
now.Minute(), now.Second()) now.Minute(), now.Second())
@ -1056,10 +1057,13 @@ func HmJsPayBToCOrder(orderId string, totalFee float64, authCode, notifyUrl stri
OutOrderNo: orderId, OutOrderNo: orderId,
Body: "门店消费", Body: "门店消费",
StoreId: "100001", StoreId: "100001",
TerminalId: fmt.Sprintf("%d", storeId),
NotifyUrl: notifyUrl, NotifyUrl: notifyUrl,
} }
if config.ApplicationConfig.Mode == "dev" { if config.ApplicationConfig.Mode == "dev" {
biz.CreateIp = clientIpDev biz.CreateIp = clientIpDev
publicPara.AppId = HmPayMerchantId
} }
unifiedOrderReq.HmPayPublicPara = publicPara unifiedOrderReq.HmPayPublicPara = publicPara
@ -1076,12 +1080,21 @@ func HmJsPayBToCOrder(orderId string, totalFee float64, authCode, notifyUrl stri
return nil, 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) sign, err := GenHmPaySignDeovo(m)
if err != nil { if err != nil {
logger.Error("HmJsPayUnifiedOrder GenHmPaySign err:", logger.Field("err", err)) logger.Error("HmJsPayUnifiedOrder GenHmPaySign err:", logger.Field("err", err))
return nil, err return nil, err
} }
unifiedOrderReq.Sign = sign unifiedOrderReq.Sign = sign
}
unifiedOrderResp, err := HmPayUnifiedOrder(unifiedOrderReq) unifiedOrderResp, err := HmPayUnifiedOrder(unifiedOrderReq)
if err != nil { if err != nil {
@ -1094,11 +1107,21 @@ func HmJsPayBToCOrder(orderId string, totalFee float64, authCode, notifyUrl stri
logger.Errorf("ToSignContent err:", err) logger.Errorf("ToSignContent err:", err)
return nil, 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) err = HmVerifySha1RsaDeovo(signContent, unifiedOrderResp.Sign)
if err != nil { if err != nil {
logger.Errorf("HmVerifySha1Rsa err:", err) logger.Errorf("HmVerifySha1Rsa err:", err)
return nil, err return nil, err
} }
}
//fmt.Println("unifiedOrderResp:", unifiedOrderResp.Data) //fmt.Println("unifiedOrderResp:", unifiedOrderResp.Data)
var hmPayDetail HmPayBToCOrderDetail var hmPayDetail HmPayBToCOrderDetail
err = json.Unmarshal([]byte(unifiedOrderResp.Data), &hmPayDetail) err = json.Unmarshal([]byte(unifiedOrderResp.Data), &hmPayDetail)

View File

@ -1905,7 +1905,7 @@ func ErpOrderPay(req *ErpOrderPayReq, c *gin.Context) (*ErpOrderPayResp, error)
resp.Status = Paying resp.Status = Paying
// 发起支付扣款 // 发起支付扣款
hmPayResp, err := pay.HmJsPayBToCOrder(orderSn, amount, req.AuthCode, "") hmPayResp, err := pay.HmJsPayBToCOrder(orderInfo.StoreId, orderSn, amount, req.AuthCode, "")
if err != nil { if err != nil {
logger.Error("HmJsPayBToCOrder err") logger.Error("HmJsPayBToCOrder err")
return resp, err return resp, err

View File

@ -2530,9 +2530,22 @@ func getErpPurchaseDemandAll(req *GetErpPurchaseDemandReq, c *gin.Context) (*Get
// 并行查询需求数据 // 并行查询需求数据
var wg sync.WaitGroup 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]
}
demandDataList := make([]DemandData, len(tempCommodities))
for i, v := range tempCommodities {
wg.Add(1) wg.Add(1)
go func(index int, commodity ErpCommodity) { go func(index int, commodity ErpCommodity) {
defer wg.Done() defer wg.Done()
@ -2560,13 +2573,15 @@ func getErpPurchaseDemandAll(req *GetErpPurchaseDemandReq, c *gin.Context) (*Get
return nil, err return nil, err
} }
} else { } else {
// 计算分页所需的切片索引 //// 计算分页所需的切片索引
startIndex := page * req.PageSize //startIndex := page * req.PageSize
endIndex := (page + 1) * req.PageSize //endIndex := (page + 1) * req.PageSize
if endIndex > len(demandDataList) { //if endIndex > len(demandDataList) {
endIndex = len(demandDataList) // endIndex = len(demandDataList)
} //}
resp.List = demandDataList[startIndex:endIndex] //resp.List = demandDataList[startIndex:endIndex]
resp.List = demandDataList
resp.Total = count resp.Total = count
} }
@ -2737,9 +2752,21 @@ func getErpPurchaseDemandHide(req *GetErpPurchaseDemandReq, c *gin.Context) (*Ge
// 并行查询需求数据 // 并行查询需求数据
var wg sync.WaitGroup 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]
}
demandDataList := make([]DemandData, len(tempCommodities))
for i, v := range matchedCommodities { for i, v := range tempCommodities {
wg.Add(1) wg.Add(1)
go func(index int, commodity ErpCommodity) { go func(index int, commodity ErpCommodity) {
defer wg.Done() defer wg.Done()
@ -2768,12 +2795,14 @@ func getErpPurchaseDemandHide(req *GetErpPurchaseDemandReq, c *gin.Context) (*Ge
} }
} else { } else {
// 计算分页所需的切片索引 // 计算分页所需的切片索引
startIndex := page * req.PageSize //startIndex := page * req.PageSize
endIndex := (page + 1) * req.PageSize //endIndex := (page + 1) * req.PageSize
if endIndex > len(demandDataList) { //if endIndex > len(demandDataList) {
endIndex = len(demandDataList) // endIndex = len(demandDataList)
} //}
resp.List = demandDataList[startIndex:endIndex] //resp.List = demandDataList[startIndex:endIndex]
resp.List = demandDataList
resp.Total = int64(len(matchedCommodities)) resp.Total = int64(len(matchedCommodities))
} }
} }