Accept Merge Request #185: (su -> mark)
Merge Request: 分账修改 Created By: @苏尹岚 Accepted By: @苏尹岚 URL: https://rosydev.coding.net/p/jx-callback/d/jx-callback/git/merge/185
This commit is contained in:
@@ -1443,3 +1443,58 @@ func DeleteSkuNameExPrefixOverdue(db *dao.DaoDB) (err error) {
|
||||
_, err = dao.DeleteSkuNameExPrefixOverdue(db)
|
||||
return err
|
||||
}
|
||||
|
||||
func SumExianDaDepot(ctx *jxcontext.Context) (err error) {
|
||||
db := dao.GetDB()
|
||||
result, err := api.EbaiAPI.GetExianDaSkuDepot()
|
||||
for _, v := range result {
|
||||
skus, err := api.EbaiAPI.GetExianDaSku(utils.Str2Int64(v.ElemeGoodsID))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
dao.Begin(db)
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
dao.Rollback(db)
|
||||
panic(r)
|
||||
}
|
||||
}()
|
||||
prefix, _, _, specUnit, unit, specQuality := jxutils.SplitSkuName(v.GoodsName)
|
||||
skuName := &model.SkuName{
|
||||
Prefix: prefix,
|
||||
Name: v.GoodsName,
|
||||
CategoryID: skus.CategoryIDThird,
|
||||
IsGlobal: 1,
|
||||
Unit: unit,
|
||||
SpecQuality: specQuality,
|
||||
SpecUnit: specUnit,
|
||||
Price: 100,
|
||||
Img: v.ImageURL,
|
||||
Upc: &v.UpcID,
|
||||
Status: model.SkuStatusNormal,
|
||||
}
|
||||
dao.WrapAddIDCULDEntity(skuName, ctx.GetUserName())
|
||||
err = dao.CreateEntity(db, skuName)
|
||||
if err != nil {
|
||||
dao.Rollback(db)
|
||||
return err
|
||||
}
|
||||
sku := &model.Sku{
|
||||
NameID: skuName.ID,
|
||||
SpecQuality: specQuality,
|
||||
SpecUnit: specUnit,
|
||||
Weight: int(utils.Str2Int64(skus.Weight)),
|
||||
Status: model.SkuStatusNormal,
|
||||
ExdSkuID: v.ElemeGoodsID,
|
||||
ExdCategoryThirdID: skus.CategoryIDThird,
|
||||
}
|
||||
dao.WrapAddIDCULDEntity(sku, ctx.GetUserName())
|
||||
err = dao.CreateEntity(db, sku)
|
||||
if err != nil {
|
||||
dao.Rollback(db)
|
||||
return err
|
||||
}
|
||||
dao.Commit(db)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -1204,7 +1204,9 @@ func getSkuSaleStatus(inSkuBind *StoreSkuBindSkuInfo, skuNameBindInfo *StoreSkuB
|
||||
}
|
||||
|
||||
func AddEventDetail(db *dao.DaoDB, ctx *jxcontext.Context, operateType, thingID, thingType, storeID int, beforeData, afterData string) (err error) {
|
||||
if ctx.GetUserName() == "jxadmin" {
|
||||
url := ctx.GetRequest().URL.Path
|
||||
apiFunction := url[strings.LastIndex(url, "/")+1 : len(url)]
|
||||
if ctx.GetUserName() == "jxadmin" && !strings.Contains(apiFunction, "AutoPayForPopluarMan") {
|
||||
return err
|
||||
}
|
||||
operateEventDetail := &model.OperateEventDetail{
|
||||
@@ -3539,7 +3541,7 @@ func SendSeckillSkusCountMsg(ctx *jxcontext.Context, vendorIDs []int, isAsync, i
|
||||
return hint, err
|
||||
}
|
||||
|
||||
func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, vendorID int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
jdMap = make(map[int][]*JdStoreSkus)
|
||||
@@ -3549,67 +3551,111 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus,
|
||||
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||
switch step {
|
||||
case 0:
|
||||
for _, v := range jdStoreSkus {
|
||||
var (
|
||||
pricePercentagePack []*model.PricePercentageItem
|
||||
cats []*model.ThingMap
|
||||
skus []*model.SkuAndName
|
||||
)
|
||||
sql := `
|
||||
SELECT t1.*
|
||||
FROM thing_map t1
|
||||
WHERE t1.deleted_at = ? AND t1.thing_type = ?
|
||||
AND t1.vendor_thing_id = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
model.ThingTypeSku,
|
||||
v.JdSkuID,
|
||||
}
|
||||
err = dao.GetRows(db, &cats, sql, sqlParams...)
|
||||
if len(cats) > 0 {
|
||||
skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil)
|
||||
if err != nil || len(skus) == 0 {
|
||||
return result, fmt.Errorf("没有找到该京西skuID!,京西skuID :[%v]", cats[0].ThingID)
|
||||
if vendorID == model.VendorIDJD {
|
||||
for _, v := range jdStoreSkus {
|
||||
var (
|
||||
pricePercentagePack []*model.PricePercentageItem
|
||||
cats []*model.ThingMap
|
||||
skus []*model.SkuAndName
|
||||
)
|
||||
sql := `
|
||||
SELECT t1.*
|
||||
FROM thing_map t1
|
||||
WHERE t1.deleted_at = ? AND t1.thing_type = ?
|
||||
AND t1.vendor_thing_id = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
model.ThingTypeSku,
|
||||
v.JdSkuID,
|
||||
}
|
||||
} else {
|
||||
return result, fmt.Errorf("没有找到该京东skuID对应的京西skuID!,京东skuID :[%v]", v.JdSkuID)
|
||||
}
|
||||
store, err := dao.GetStoreDetailByVendorStoreID(db, utils.Int2Str(v.JdStoreID), model.VendorIDJD)
|
||||
if err != nil || store == nil {
|
||||
return result, fmt.Errorf("没有找到该京东门店对应的京西门店!,京东门店ID :[%v]", v.JdStoreID)
|
||||
}
|
||||
err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack)
|
||||
jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price)
|
||||
jdMap[store.ID] = append(jdMap[store.ID], &JdStoreSkus{
|
||||
JdSkuID: skus[0].NameID,
|
||||
Price: jxPrice,
|
||||
})
|
||||
}
|
||||
for k, v := range jdMap {
|
||||
var skuNameMap = make(map[int]int)
|
||||
for _, vv := range v {
|
||||
if skuNameMap[vv.JdSkuID] != 0 {
|
||||
if skuNameMap[vv.JdSkuID] > vv.Price {
|
||||
skuNameMap[vv.JdSkuID] = vv.Price
|
||||
err = dao.GetRows(db, &cats, sql, sqlParams...)
|
||||
if len(cats) > 0 {
|
||||
skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil)
|
||||
if err != nil || len(skus) == 0 {
|
||||
return result, fmt.Errorf("没有找到该京西skuID!,京西skuID :[%v]", cats[0].ThingID)
|
||||
}
|
||||
} else {
|
||||
skuNameMap[vv.JdSkuID] = vv.Price
|
||||
return result, fmt.Errorf("没有找到该京东skuID对应的京西skuID!,京东skuID :[%v]", v.JdSkuID)
|
||||
}
|
||||
store, err := dao.GetStoreDetailByVendorStoreID(db, utils.Int2Str(v.JdStoreID), vendorID)
|
||||
if err != nil || store == nil {
|
||||
return result, fmt.Errorf("没有找到该京东门店对应的京西门店!,京东门店ID :[%v]", v.JdStoreID)
|
||||
}
|
||||
err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack)
|
||||
jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price)
|
||||
jdMap[store.ID] = append(jdMap[store.ID], &JdStoreSkus{
|
||||
JdSkuID: skus[0].NameID,
|
||||
Price: jxPrice,
|
||||
})
|
||||
}
|
||||
for k, v := range jdMap {
|
||||
var skuNameMap = make(map[int]int)
|
||||
for _, vv := range v {
|
||||
if skuNameMap[vv.JdSkuID] != 0 {
|
||||
if skuNameMap[vv.JdSkuID] > vv.Price {
|
||||
skuNameMap[vv.JdSkuID] = vv.Price
|
||||
}
|
||||
} else {
|
||||
skuNameMap[vv.JdSkuID] = vv.Price
|
||||
}
|
||||
}
|
||||
jxMap[k] = skuNameMap
|
||||
}
|
||||
for k, v := range jxMap {
|
||||
for kk, vv := range v {
|
||||
result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal)
|
||||
if len(result) > 0 && err == nil {
|
||||
if result[0].UnitPrice > vv {
|
||||
storeSkuBindInfo := &StoreSkuBindInfo{
|
||||
StoreID: k,
|
||||
NameID: kk,
|
||||
UnitPrice: vv,
|
||||
}
|
||||
param = append(param, storeSkuBindInfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
jxMap[k] = skuNameMap
|
||||
}
|
||||
for k, v := range jxMap {
|
||||
for kk, vv := range v {
|
||||
result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal)
|
||||
if len(result) > 0 && err == nil {
|
||||
if result[0].UnitPrice > vv {
|
||||
storeSkuBindInfo := &StoreSkuBindInfo{
|
||||
StoreID: k,
|
||||
NameID: kk,
|
||||
UnitPrice: vv,
|
||||
} else if vendorID == model.VendorIDMTWM {
|
||||
for _, v := range jdStoreSkus {
|
||||
var (
|
||||
pricePercentagePack []*model.PricePercentageItem
|
||||
)
|
||||
skus, _ := dao.GetSkus(db, []int{v.JdSkuID}, nil, nil, nil)
|
||||
store, _ := dao.GetStoreDetail(db, v.JdStoreID, vendorID)
|
||||
err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack)
|
||||
jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price)
|
||||
jdMap[v.JdStoreID] = append(jdMap[v.JdStoreID], &JdStoreSkus{
|
||||
JdSkuID: skus[0].NameID,
|
||||
Price: jxPrice,
|
||||
})
|
||||
}
|
||||
for k, v := range jdMap {
|
||||
var skuNameMap = make(map[int]int)
|
||||
for _, vv := range v {
|
||||
if skuNameMap[vv.JdSkuID] != 0 {
|
||||
if skuNameMap[vv.JdSkuID] > vv.Price {
|
||||
skuNameMap[vv.JdSkuID] = vv.Price
|
||||
}
|
||||
} else {
|
||||
skuNameMap[vv.JdSkuID] = vv.Price
|
||||
}
|
||||
}
|
||||
jxMap[k] = skuNameMap
|
||||
}
|
||||
for k, v := range jxMap {
|
||||
for kk, vv := range v {
|
||||
result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal)
|
||||
if len(result) > 0 && err == nil {
|
||||
if result[0].UnitPrice > vv {
|
||||
storeSkuBindInfo := &StoreSkuBindInfo{
|
||||
StoreID: k,
|
||||
NameID: kk,
|
||||
UnitPrice: vv,
|
||||
}
|
||||
param = append(param, storeSkuBindInfo)
|
||||
}
|
||||
param = append(param, storeSkuBindInfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -414,7 +414,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
|
||||
}
|
||||
} else {
|
||||
if sku.MergedStatus == model.SkuStatusNormal {
|
||||
if dao.IsVendorThingIDEmpty(sku.VendorCatID) {
|
||||
if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) {
|
||||
globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID)
|
||||
} else {
|
||||
createList = append(createList, sku)
|
||||
|
||||
@@ -8,8 +8,6 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/wxpayapi"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/jd"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/globals/api/apimanager"
|
||||
@@ -380,6 +378,7 @@ func CreateUser(user *model.User, creatorName string) (err error) {
|
||||
dao.WrapAddIDCULDEntity(user, creatorName)
|
||||
user.UserID = utils.GetUUID()
|
||||
user.Status = model.UserStatusNormal
|
||||
user.DividePercentage = 5
|
||||
return dao.CreateEntity(nil, user)
|
||||
}
|
||||
|
||||
@@ -993,61 +992,61 @@ func UpdateUserWxNoAndPercent(user *model.User, isReceiver bool) (num int64, err
|
||||
dao.Rollback(db)
|
||||
}
|
||||
if isReceiver {
|
||||
param := &wxpayapi.ProfitSharingReceiverParam{
|
||||
Receiver: wxpayapi.CData(`{
|
||||
"type":"` + wxpayapi.AccountTypeOpen + `",
|
||||
"account":"` + auth[0].AuthID + `",
|
||||
"relation_type":" ` + wxpayapi.Relation + `"
|
||||
}`),
|
||||
}
|
||||
_, err := api.WxpayAPI.AddProfitSharingReceiver(param)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
} else {
|
||||
user2.IsReceiver = 1
|
||||
num3, err := dao.UpdateEntity(db, user2, "IsReceiver")
|
||||
num += num3
|
||||
if err != nil {
|
||||
dao.Rollback(db)
|
||||
}
|
||||
}
|
||||
// param := &wxpayapi.ProfitSharingReceiverParam{
|
||||
// Receiver: wxpayapi.CData(`{
|
||||
// "type":"` + wxpayapi.AccountTypeOpen + `",
|
||||
// "account":"` + auth[0].AuthID + `",
|
||||
// "relation_type":" ` + wxpayapi.Relation + `"
|
||||
// }`),
|
||||
// }
|
||||
// _, err := api.WxpayAPI.AddProfitSharingReceiver(param)
|
||||
// if err != nil {
|
||||
// return 0, err
|
||||
// } else {
|
||||
// user2.IsReceiver = 1
|
||||
// num3, err := dao.UpdateEntity(db, user2, "IsReceiver")
|
||||
// num += num3
|
||||
// if err != nil {
|
||||
// dao.Rollback(db)
|
||||
// }
|
||||
// }
|
||||
}
|
||||
dao.Commit(db)
|
||||
return num, err
|
||||
}
|
||||
|
||||
func DeleteProfitSharingReceiver(ctx *jxcontext.Context, userID string) (err error) {
|
||||
db := dao.GetDB()
|
||||
auth, err := dao.GetUserBindAuthInfo(db, userID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "")
|
||||
if len(auth) == 0 {
|
||||
return fmt.Errorf("未找到此用户的微信验证方式!用户ID:[%v]\n", userID)
|
||||
}
|
||||
dao.Begin(db)
|
||||
defer func() {
|
||||
if r := recover(); r != nil || err != nil {
|
||||
dao.Rollback(db)
|
||||
if r != nil {
|
||||
panic(r)
|
||||
}
|
||||
}
|
||||
}()
|
||||
param := &wxpayapi.ProfitSharingReceiverParam{
|
||||
Receiver: wxpayapi.CData(`{
|
||||
"type":"` + wxpayapi.AccountTypeOpen + `",
|
||||
"account":"` + auth[0].AuthID + `"
|
||||
}`),
|
||||
}
|
||||
_, err = api.WxpayAPI.DeleteProfitSharingReceiver(param)
|
||||
if err != nil {
|
||||
return err
|
||||
} else {
|
||||
user2, err := dao.GetUserByID(db, "user_id", userID)
|
||||
user2.IsReceiver = 0
|
||||
_, err = dao.UpdateEntity(db, user2, "IsReceiver")
|
||||
if err != nil {
|
||||
dao.Rollback(db)
|
||||
}
|
||||
}
|
||||
dao.Commit(db)
|
||||
// db := dao.GetDB()
|
||||
// auth, err := dao.GetUserBindAuthInfo(db, userID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "")
|
||||
// if len(auth) == 0 {
|
||||
// return fmt.Errorf("未找到此用户的微信验证方式!用户ID:[%v]\n", userID)
|
||||
// }
|
||||
// dao.Begin(db)
|
||||
// defer func() {
|
||||
// if r := recover(); r != nil || err != nil {
|
||||
// dao.Rollback(db)
|
||||
// if r != nil {
|
||||
// panic(r)
|
||||
// }
|
||||
// }
|
||||
// }()
|
||||
// param := &wxpayapi.ProfitSharingReceiverParam{
|
||||
// Receiver: wxpayapi.CData(`{
|
||||
// "type":"` + wxpayapi.AccountTypeOpen + `",
|
||||
// "account":"` + auth[0].AuthID + `"
|
||||
// }`),
|
||||
// }
|
||||
// _, err = api.WxpayAPI.DeleteProfitSharingReceiver(param)
|
||||
// if err != nil {
|
||||
// return err
|
||||
// } else {
|
||||
// user2, err := dao.GetUserByID(db, "user_id", userID)
|
||||
// user2.IsReceiver = 0
|
||||
// _, err = dao.UpdateEntity(db, user2, "IsReceiver")
|
||||
// if err != nil {
|
||||
// dao.Rollback(db)
|
||||
// }
|
||||
// }
|
||||
// dao.Commit(db)
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user