This commit is contained in:
苏尹岚
2021-04-09 14:45:43 +08:00
parent 101b0e5c24
commit d8b757cbc2
2 changed files with 54 additions and 51 deletions

View File

@@ -4,6 +4,7 @@ import (
"bytes" "bytes"
"encoding/base64" "encoding/base64"
"encoding/hex" "encoding/hex"
"encoding/json"
"fmt" "fmt"
"math" "math"
"strings" "strings"
@@ -20,7 +21,6 @@ import (
"git.rosy.net.cn/baseapi/platformapi/jcqapi" "git.rosy.net.cn/baseapi/platformapi/jcqapi"
"git.rosy.net.cn/baseapi/platformapi/jdshopapi" "git.rosy.net.cn/baseapi/platformapi/jdshopapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxstore/common"
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/ddmsg" "git.rosy.net.cn/jx-callback/business/jxutils/ddmsg"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
@@ -170,6 +170,13 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err
} }
order.CoordinateType = model.CoordinateTypeMars order.CoordinateType = model.CoordinateTypeMars
} }
// storeList, err := common.GetStoreListByLocation(jxcontext.AdminCtx, jxutils.IntCoordinate2Standard(order.ConsigneeLng), jxutils.IntCoordinate2Standard(order.ConsigneeLat), 3000, false, true, 0)
// if err != nil {
// globals.SugarLogger.Debugf("jds GetStoreListByLocation error: %v", err.Error())
// return order, err
// }
// if len(storeList) > 0 {
// for _, store := range storeList {
for _, v := range msg.ItemInfoList { for _, v := range msg.ItemInfoList {
sku := &model.OrderSku{ sku := &model.OrderSku{
VendorID: model.VendorIDJDShop, VendorID: model.VendorIDJDShop,
@@ -188,71 +195,66 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err
sku.Weight = jxutils.FormatSkuWeight(specQuality, specUnit) sku.Weight = jxutils.FormatSkuWeight(specQuality, specUnit)
order.Skus = append(order.Skus, sku) order.Skus = append(order.Skus, sku)
} }
storeList, err := common.GetStoreListByLocation(jxcontext.AdminCtx, jxutils.IntCoordinate2Standard(order.ConsigneeLng), jxutils.IntCoordinate2Standard(order.ConsigneeLat), 3000, false, true, 0) if msg.OrderExt != "" {
if err != nil { orderExt := &jdshopapi.OrderExt{}
globals.SugarLogger.Debugf("jds GetStoreListByLocation error: %v", err.Error()) if err = json.Unmarshal([]byte(msg.OrderExt), &orderExt); err == nil {
return order, err order.VendorStoreID = orderExt.SiteID
} if store, err := dao.GetStoreDetailByVendorStoreID(db, order.VendorStoreID, model.VendorIDJDShop, ""); store != nil && err == nil {
if len(storeList) > 0 { order.StoreID = store.ID
for _, store := range storeList { order.JxStoreID = store.ID
order.StoreID = store.ID order.StoreName = store.Name
order.JxStoreID = store.ID globals.SugarLogger.Debugf("jds GetStoreListByLocation, orderID: %v storeID :%v", order.VendorOrderID, order.StoreID)
order.StoreName = store.Name //结算类型
globals.SugarLogger.Debugf("jds GetStoreListByLocation, orderID: %v storeID :%v", order.VendorOrderID, order.StoreID) if store.PayPercentage < 50 {
//结算类型
storeDetail, _ := dao.GetStoreDetail(db, order.StoreID, model.VendorIDJDShop, "")
if storeDetail != nil {
if storeDetail.PayPercentage < 50 {
order.EarningType = model.EarningTypePoints order.EarningType = model.EarningTypePoints
} else { } else {
order.EarningType = model.EarningTypeQuote order.EarningType = model.EarningTypeQuote
} }
} var (
var ( shopPriceSum int
shopPriceSum int saleNormalSum int
saleNormalSum int )
) for _, sku := range order.Skus {
for _, sku := range order.Skus { storeSkuList, _ := dao.GetStoresSkusInfo(db, []int{order.StoreID}, []int{sku.SkuID})
storeSkuList, _ := dao.GetStoresSkusInfo(db, []int{order.StoreID}, []int{sku.SkuID}) if len(storeSkuList) > 0 {
if len(storeSkuList) > 0 { if storeSkuList[0].Status == model.StoreSkuBindStatusNormal {
if storeSkuList[0].Status == model.StoreSkuBindStatusNormal { saleNormalSum += 1
saleNormalSum += 1 }
shopPriceSum += storeSkuList[0].Price * sku.Count
sku.ShopPrice = int64(storeSkuList[0].Price)
} else {
shopPriceSum += int(sku.SalePrice) * 70 / 100
} }
shopPriceSum += storeSkuList[0].Price * sku.Count
} else {
shopPriceSum += int(sku.SalePrice) * 70 / 100
} }
} //可售数小于一半就不行
//可售数小于一半就不行 if math.Mod(float64(len(order.Skus)), float64(2)) == 0 {
if math.Mod(float64(len(order.Skus)), float64(2)) == 0 { if saleNormalSum < len(order.Skus)/2 {
if saleNormalSum < len(order.Skus)/2 {
buildOrderTo102919(order)
continue
} else {
if order.EarningType == model.EarningTypeQuote && shopPriceSum+700 > int(order.TotalShopMoney) {
buildOrderTo102919(order) buildOrderTo102919(order)
continue } else {
if order.EarningType == model.EarningTypeQuote && shopPriceSum+700 > int(order.TotalShopMoney) {
buildOrderTo102919(order)
}
}
} else {
if saleNormalSum <= len(order.Skus)/2 {
buildOrderTo102919(order)
} else {
if order.EarningType == model.EarningTypeQuote && shopPriceSum+700 > int(order.TotalShopMoney) {
buildOrderTo102919(order)
}
} }
} }
} else { } else {
if saleNormalSum <= len(order.Skus)/2 { buildOrderTo102919(order)
buildOrderTo102919(order)
continue
} else {
if order.EarningType == model.EarningTypeQuote && shopPriceSum+700 > int(order.TotalShopMoney) {
buildOrderTo102919(order)
continue
}
}
} }
break } else {
buildOrderTo102919(order)
} }
} else { } else {
buildOrderTo102919(order) buildOrderTo102919(order)
} }
storeMaps, _ := dao.GetStoresMapList(db, []int{model.VendorIDJDShop}, []int{order.StoreID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "", msg.VendorOrgCode) if order.ActualPayPrice > 100000 {
if len(storeMaps) > 0 { buildOrderTo102919(order)
order.VendorStoreID = storeMaps[0].VendorStoreID
} }
// 如果是暂停表示是预订单g // 如果是暂停表示是预订单g
if msg.OrderState == jdshopapi.OrderStatusPause || msg.OrderState == jdshopapi.OrderStatusPopPause { if msg.OrderState == jdshopapi.OrderStatusPause || msg.OrderState == jdshopapi.OrderStatusPopPause {

View File

@@ -373,6 +373,7 @@ func (c *Auth2Controller) GetUserByMiniInfo() {
decryptedDataBase64, err2 := weixin.AutherObjMini.DecryptData(authInfo, jsCode, params.Data, params.Iv) decryptedDataBase64, err2 := weixin.AutherObjMini.DecryptData(authInfo, jsCode, params.Data, params.Iv)
if err = err2; err == nil { if err = err2; err == nil {
var userInfo *weixinapi.MiniUserInfo var userInfo *weixinapi.MiniUserInfo
globals.SugarLogger.Debugf("GetUserByMiniInfo :%v", "")
if err = utils.UnmarshalUseNumber([]byte(decryptedDataBase64), &userInfo); err == nil { if err = utils.UnmarshalUseNumber([]byte(decryptedDataBase64), &userInfo); err == nil {
result := &UserInfoWithWeixin{} result := &UserInfoWithWeixin{}
result.Mobile = userInfo.PhoneNumber result.Mobile = userInfo.PhoneNumber