同步错误
This commit is contained in:
@@ -327,7 +327,7 @@ func FloatWeight2Int(weight float32) int {
|
||||
return int(math.Round(float64(weight * 1000)))
|
||||
}
|
||||
|
||||
func ComposeSkuName(prefix, name, comment, unit string, spec_quality float32, spec_unit string, maxLen int) (skuName string) {
|
||||
func ComposeSkuNameOriginal(prefix, name, comment, unit string, spec_quality float32, spec_unit string, maxLen int) (skuName string) {
|
||||
if prefix != "" {
|
||||
skuName = "[" + prefix + "]"
|
||||
}
|
||||
@@ -348,6 +348,29 @@ func ComposeSkuName(prefix, name, comment, unit string, spec_quality float32, sp
|
||||
return skuName
|
||||
}
|
||||
|
||||
func ComposeSkuName(prefix, name, comment, unit string, spec_quality float32, spec_unit string, maxLen int, exPrefix string, exPrefixBegin, exPrefixEnd *time.Time) (skuName string) {
|
||||
if exPrefix != "" && exPrefixBegin != nil && exPrefixEnd != nil {
|
||||
if utils.Time2Date(time.Now().Add(6*time.Hour)).Sub(*exPrefixBegin) >= 0 && utils.Time2Date(time.Now()).Sub(*exPrefixEnd) <= 0 {
|
||||
skuName = exPrefix
|
||||
}
|
||||
}
|
||||
skuName += ComposeSkuNameOriginal(prefix, name, comment, unit, spec_quality, spec_unit, maxLen)
|
||||
return skuName
|
||||
}
|
||||
|
||||
func ComposeSkuNameSync(prefix, name, comment, unit string, spec_quality float32, spec_unit string, maxLen int, exPrefix string, exPrefixBegin, exPrefixEnd *time.Time) (skuName string) {
|
||||
if exPrefix != "" && exPrefixBegin != nil && exPrefixEnd != nil {
|
||||
if utils.Time2Date(time.Now().Add(6*time.Hour)).Sub(*exPrefixBegin) >= 0 && utils.Time2Date(time.Now()).Sub(*exPrefixEnd) <= 0 {
|
||||
skuName = exPrefix
|
||||
}
|
||||
if utils.Time2Date(time.Now().Add(6*time.Hour)).Sub(*exPrefixEnd) > 0 {
|
||||
skuName = ""
|
||||
}
|
||||
}
|
||||
skuName += ComposeSkuNameOriginal(prefix, name, comment, unit, spec_quality, spec_unit, maxLen)
|
||||
return skuName
|
||||
}
|
||||
|
||||
func ComposeSpuName(prefix, name string, maxLen int) (spuName string) {
|
||||
if prefix != "" {
|
||||
spuName = "[" + prefix + "]"
|
||||
@@ -409,6 +432,31 @@ func SplitSkuName(skuName string) (prefix, name, comment, specUnit, unit string,
|
||||
return prefix, name, comment, specUnit, unit, specQuality
|
||||
}
|
||||
|
||||
// https://my.oschina.net/hyller/blog/700414
|
||||
func CalUpcCheckSum(upc12 int64) (checkSum int) {
|
||||
var sum [2]int
|
||||
for i := 0; i < 12; i++ {
|
||||
base := int64(math.Pow10(i))
|
||||
sum[i%2] += int((upc12 / base) % 10)
|
||||
}
|
||||
sum[0] *= 3
|
||||
return (10 - (sum[0]+sum[1])%10) % 10
|
||||
}
|
||||
|
||||
func IsUpcValid(upc string) bool {
|
||||
if len(upc) != 13 {
|
||||
return false
|
||||
}
|
||||
upcInt := utils.Str2Int64WithDefault(upc, 0)
|
||||
checkSum := CalUpcCheckSum(upcInt / 10)
|
||||
return int(utils.Str2Int64(upc[12:])) == checkSum
|
||||
}
|
||||
|
||||
func GenFakeUPC(skuID int) string {
|
||||
id := int64(skuID) + 666600000000
|
||||
return fmt.Sprintf("%012d%d", id, CalUpcCheckSum(id))
|
||||
}
|
||||
|
||||
func MakeValidationMapFromSlice(validValues []string, flag int) map[string]int {
|
||||
retVal := make(map[string]int)
|
||||
for _, v := range validValues {
|
||||
|
||||
@@ -8,6 +8,7 @@ type ActStoreSkuMap struct {
|
||||
actStoreSkuMap map[int64]map[int]*model.ActStoreSku2
|
||||
}
|
||||
|
||||
// isActPrice为true表示是活动,false表示是结算
|
||||
func NewActStoreSkuMap(actStoreSkuList []*model.ActStoreSku2, isActPrice bool) (actMap *ActStoreSkuMap) {
|
||||
actMap = &ActStoreSkuMap{}
|
||||
actStoreSkuMap := make(map[int64]map[int]*model.ActStoreSku2)
|
||||
|
||||
@@ -2,18 +2,14 @@ package jxutils
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
)
|
||||
|
||||
func TestGetActStoreSku(t *testing.T) {
|
||||
actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(dao.GetDB(), 0, []int{model.VendorIDMTWM}, []int{102046}, []int{25430, 30611},
|
||||
utils.Str2Time("2019-07-27 13:29:57"), utils.Str2Time("2019-07-27 13:29:57"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
storeSkuMap := jxutils.NewActStoreSkuMap(actStoreSkuList, false)
|
||||
t.Log(storeSkuMap.GetActStoreSku(1, 2, 3))
|
||||
// actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(dao.GetDB(), 0, []int{model.VendorIDMTWM}, []int{102046}, []int{25430, 30611},
|
||||
// utils.Str2Time("2019-07-27 13:29:57"), utils.Str2Time("2019-07-27 13:29:57"))
|
||||
// if err != nil {
|
||||
// t.Fatal(err)
|
||||
// }
|
||||
// storeSkuMap := jxutils.NewActStoreSkuMap(actStoreSkuList, false)
|
||||
// t.Log(storeSkuMap.GetActStoreSku(1, 2, 3))
|
||||
}
|
||||
|
||||
@@ -2,12 +2,10 @@ package jxutils
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
)
|
||||
|
||||
func TestSplitSlice(t *testing.T) {
|
||||
@@ -109,22 +107,22 @@ func TestCalcPolygonAreaAutonavi(t *testing.T) {
|
||||
// pointers := GetPolygonFromCircle(104.065702, 30.657488, 3000, 128)
|
||||
// area := CalcPolygonAreaAutonavi(pointers)
|
||||
// t.Logf("area:%f", area)
|
||||
db := dao.GetDB()
|
||||
storeList, err := dao.GetStoreList(db, nil, nil, "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// db := dao.GetDB()
|
||||
// storeList, err := dao.GetStoreList(db, nil, nil, "")
|
||||
// if err != nil {
|
||||
// t.Fatal(err)
|
||||
// }
|
||||
|
||||
strBuilder := &strings.Builder{}
|
||||
strBuilder.WriteString("\n")
|
||||
for _, v := range storeList {
|
||||
if v.DeliveryRangeType == model.DeliveryRangeTypePolygon {
|
||||
pointers := CoordinateStr2Points(v.DeliveryRange)
|
||||
area1 := CalcPolygonAreaAutonavi(pointers)
|
||||
strBuilder.WriteString(fmt.Sprintf("%d,%f\n", v.ID, area1))
|
||||
}
|
||||
}
|
||||
t.Log(strBuilder.String())
|
||||
// strBuilder := &strings.Builder{}
|
||||
// strBuilder.WriteString("\n")
|
||||
// for _, v := range storeList {
|
||||
// if v.DeliveryRangeType == model.DeliveryRangeTypePolygon {
|
||||
// pointers := CoordinateStr2Points(v.DeliveryRange)
|
||||
// area1 := CalcPolygonAreaAutonavi(pointers)
|
||||
// strBuilder.WriteString(fmt.Sprintf("%d,%f\n", v.ID, area1))
|
||||
// }
|
||||
// }
|
||||
// t.Log(strBuilder.String())
|
||||
}
|
||||
|
||||
func TestCaculateSkuPrice(t *testing.T) {
|
||||
|
||||
@@ -284,3 +284,26 @@ func TestGetOneEmailFromStr(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestGenFakeUPC(t *testing.T) {
|
||||
for _, v := range [][]string{
|
||||
[]string{
|
||||
"6666000298034",
|
||||
"29803",
|
||||
},
|
||||
[]string{
|
||||
"6666076543212",
|
||||
"7654321",
|
||||
},
|
||||
} {
|
||||
if str := GenFakeUPC(int(utils.Str2Int64(v[1]))); str != v[0] {
|
||||
t.Errorf("%s failed, result:%s, expect:%s", v[1], str, v[0])
|
||||
}
|
||||
}
|
||||
if !IsUpcValid("6666076543212") {
|
||||
t.Fatal("wrong1")
|
||||
}
|
||||
if IsUpcValid("6666076543210") {
|
||||
t.Fatal("wrong2")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -418,12 +418,6 @@ func (t *BaseTask) MarshalJSON() ([]byte, error) {
|
||||
func (t *BaseTask) run(taskHandler func()) {
|
||||
if t.GetStatus() == TaskStatusBegin {
|
||||
utils.CallFuncAsync(func() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
globals.SugarLogger.Errorf("panic in BaseTask.run task:%s, task detail:%s, r:%v", t.Name, utils.Format4Output(t, false), r)
|
||||
}
|
||||
}()
|
||||
|
||||
taskHandler()
|
||||
|
||||
task := t
|
||||
|
||||
@@ -197,7 +197,7 @@ func getOrderDetailBrief(order *model.GoodsOrder) (brief string) {
|
||||
sb.WriteString(utils.Int2Str(order.Skus[0].Count))
|
||||
sb.WriteString("份(")
|
||||
sb.WriteString(jxutils.IntPrice2StandardString(order.Skus[0].SalePrice))
|
||||
sb.WriteString("元/份)等,共支付了")
|
||||
sb.WriteString("元/份)等,预计收入")
|
||||
sb.WriteString(jxutils.IntPrice2StandardString(order.ActualPayPrice))
|
||||
sb.WriteString("元")
|
||||
return sb.String()
|
||||
|
||||
Reference in New Issue
Block a user