1.优化采购需求查询慢的问题;

2.扫码付记录终端号(对应门店ID);
This commit is contained in:
chenlin 2024-07-04 19:00:59 +08:00
parent 6abf78e8eb
commit ad62b27152
3 changed files with 78 additions and 26 deletions

View File

@ -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)

View File

@ -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

View File

@ -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))
}
}