Accept Merge Request #190: (su -> mark)

Merge Request: 优化饿鲜达
Created By: @苏尹岚
Accepted By: @苏尹岚
URL: https://rosydev.coding.net/p/jx-callback/d/jx-callback/git/merge/190
This commit is contained in:
苏尹岚
2020-02-19 14:35:01 +08:00
17 changed files with 105 additions and 65 deletions

View File

@@ -446,5 +446,5 @@ func DisableUser(userID, operatorUserName string) (err error) {
} }
func GetUserBindAuthInfo(userID string) (authList []*model.AuthBind, err error) { func GetUserBindAuthInfo(userID string) (authList []*model.AuthBind, err error) {
return dao.GetUserBindAuthInfo(dao.GetDB(), userID, model.AuthBindTypeAuth, nil, "", "") return dao.GetUserBindAuthInfo(dao.GetDB(), userID, model.AuthBindTypeAuth, nil, "", "", "")
} }

View File

@@ -82,7 +82,7 @@ func (a *DefAuther) UnionFindAuthBind(curAuthType, curAuthTypeID string, unionAu
} else if dao.IsNoRowsError(err) { // 直接找不到尝试unionID } else if dao.IsNoRowsError(err) { // 直接找不到尝试unionID
if unionID != "" { // 且有unionID if unionID != "" { // 且有unionID
var authBindList []*model.AuthBind var authBindList []*model.AuthBind
if authBindList, err = dao.GetUserBindAuthInfo(db, "", model.AuthBindTypeAuth, unionAuthTypeList, "", unionID); err == nil && len(authBindList) > 0 { // 通过unionID找到至少一个认证方式 if authBindList, err = dao.GetUserBindAuthInfo(db, "", model.AuthBindTypeAuth, unionAuthTypeList, "", unionID, ""); err == nil && len(authBindList) > 0 { // 通过unionID找到至少一个认证方式
authBind = authBindList[0] authBind = authBindList[0]
authBind.Type = curAuthType authBind.Type = curAuthType
authBind.TypeID = curAuthTypeID authBind.TypeID = curAuthTypeID

View File

@@ -79,7 +79,7 @@ func changeStoreSkusByOrder(order *weimobapi.OrderDetail) {
if skuName.Status != model.SkuStatusNormal { if skuName.Status != model.SkuStatusNormal {
cms.UpdateSkuName(ctx, skuName.ID, map[string]interface{}{ cms.UpdateSkuName(ctx, skuName.ID, map[string]interface{}{
"status": model.SkuStatusNormal, "status": model.SkuStatusNormal,
}) }, false)
} }
for _, sku := range skuName.Skus { for _, sku := range skuName.Skus {
if sku.Status != model.SkuStatusNormal { if sku.Status != model.SkuStatusNormal {

View File

@@ -615,15 +615,19 @@ func (c *OrderManager) GetStoresOrderSaleInfo(ctx *jxcontext.Context, storeIDLis
func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeIDList []int, fromTime time.Time, toTime time.Time, statusList []int) (saleInfoList []*dao.StoresOrderSaleInfo, err error) { func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeIDList []int, fromTime time.Time, toTime time.Time, statusList []int) (saleInfoList []*dao.StoresOrderSaleInfo, err error) {
db := dao.GetDB() db := dao.GetDB()
orderSkuList, err := dao.GetStoreOrderSkuList(db, storeIDList, fromTime, toTime, statusList) var isFinish = true
if toTime.Sub(fromTime).Hours() > 24 {
isFinish = false
}
orderSkuList, err := dao.GetStoreOrderSkuList(db, storeIDList, fromTime, toTime, statusList, isFinish)
if err != nil { if err != nil {
return nil, err return nil, err
} }
afsSkuList, err := dao.GetStoreAfsOrderSkuList(db, storeIDList, fromTime, toTime, []int{model.AfsOrderStatusFinished}) afsSkuList, err := dao.GetStoreAfsOrderSkuList(db, storeIDList, fromTime, toTime, []int{model.AfsOrderStatusFinished}, isFinish)
if err != nil { if err != nil {
return nil, err return nil, err
} }
orderSkuList4Afs, err := dao.GetStoreOrderSkuList4Afs(db, storeIDList, fromTime, toTime) orderSkuList4Afs, err := dao.GetStoreOrderSkuList4Afs(db, storeIDList, fromTime, toTime, isFinish)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -788,7 +788,7 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
return outSkuNameExt, err return outSkuNameExt, err
} }
func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interface{}) (num int64, err error) { func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interface{}, isExd bool) (num int64, err error) {
userName := ctx.GetUserName() userName := ctx.GetUserName()
skuName := &model.SkuName{} skuName := &model.SkuName{}
skuName.ID = nameID skuName.ID = nameID
@@ -853,10 +853,12 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
dao.Rollback(db) dao.Rollback(db)
return 0, err return 0, err
} }
if !isExd {
if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil { if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil {
dao.Rollback(db) dao.Rollback(db)
return 0, err return 0, err
} }
}
if utils.Interface2Int64WithDefault(payload["isGlobal"], 0) == 0 && payload["places"] != nil { if utils.Interface2Int64WithDefault(payload["isGlobal"], 0) == 0 && payload["places"] != nil {
if places, ok := payload["places"].([]interface{}); ok { if places, ok := payload["places"].([]interface{}); ok {
if _, err = dao.DeleteSkuNamePlace(db, nameID, nil); err != nil { if _, err = dao.DeleteSkuNamePlace(db, nameID, nil); err != nil {
@@ -888,13 +890,14 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
dao.Rollback(db) dao.Rollback(db)
return 0, err return 0, err
} }
if sku.ExdSkuID == "" {
if err = OnUpdateThing(ctx, db, nil, int64(v.ID), model.ThingTypeSku); err != nil { if err = OnUpdateThing(ctx, db, nil, int64(v.ID), model.ThingTypeSku); err != nil {
dao.Rollback(db) dao.Rollback(db)
return 0, err return 0, err
} }
} }
} }
}
skuIDs, err2 := dao.GetSkuIDByNames(db, []int{nameID}) skuIDs, err2 := dao.GetSkuIDByNames(db, []int{nameID})
if err = err2; err != nil { if err = err2; err != nil {
dao.Rollback(db) dao.Rollback(db)
@@ -1075,10 +1078,12 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{}
} }
return 0, err return 0, err
} }
if sku.ExdSkuID == "" {
if err = OnUpdateThing(ctx, db, nil, int64(skuID), model.ThingTypeSku); err != nil { if err = OnUpdateThing(ctx, db, nil, int64(skuID), model.ThingTypeSku); err != nil {
dao.Rollback(db) dao.Rollback(db)
return 0, err return 0, err
} }
}
dao.Commit(db) dao.Commit(db)
if _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), []int{skuID}, model.SyncFlagModifiedMask); err == nil { if _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), []int{skuID}, model.SyncFlagModifiedMask); err == nil {
@@ -1387,16 +1392,16 @@ func UpdateSkuNamesExPrefix(ctx *jxcontext.Context, nameIDs []int, exPrefix, fro
"exPrefixEnd": toTimeP, "exPrefixEnd": toTimeP,
} }
if now.Sub(toTimeP) <= 0 && now.Sub(fromTimeP) >= 0 { if now.Sub(toTimeP) <= 0 && now.Sub(fromTimeP) >= 0 {
_, err = UpdateSkuName(ctx, nameID, payload) _, err = UpdateSkuName(ctx, nameID, payload, false)
} else if now.Sub(fromTimeP) > 0 && now.Sub(toTimeP) > 0 { } else if now.Sub(fromTimeP) > 0 && now.Sub(toTimeP) > 0 {
payload["exPrefixBegin"] = nil payload["exPrefixBegin"] = nil
payload["exPrefixEnd"] = nil payload["exPrefixEnd"] = nil
_, err = UpdateSkuName(ctx, nameID, payload) _, err = UpdateSkuName(ctx, nameID, payload, false)
} else { } else {
skuList, err := dao.GetSkus(db, nil, []int{nameID}, nil, nil) skuList, err := dao.GetSkus(db, nil, []int{nameID}, nil, nil)
if err == nil && len(skuList) > 0 { if err == nil && len(skuList) > 0 {
if skuList[0].ExPrefixBegin != nil { if skuList[0].ExPrefixBegin != nil {
_, err = UpdateSkuName(ctx, nameID, payload) _, err = UpdateSkuName(ctx, nameID, payload, false)
CurVendorSync.SyncStoresSkus2(ctx, nil, 0, db, partner.GetSingleStoreVendorIDs(), nil, false, []int{skuList[0].ID}, nil, model.SyncFlagModifiedMask, true, true) CurVendorSync.SyncStoresSkus2(ctx, nil, 0, db, partner.GetSingleStoreVendorIDs(), nil, false, []int{skuList[0].ID}, nil, model.SyncFlagModifiedMask, true, true)
} else { } else {
skuName := &model.SkuName{ skuName := &model.SkuName{

View File

@@ -91,7 +91,7 @@ func SyncCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs
// TODO 同一平台不同账号会有影响needSyncParentIDs暂不处理 // TODO 同一平台不同账号会有影响needSyncParentIDs暂不处理
var needSyncParentIDs []int var needSyncParentIDs []int
for _, cat := range catList { for _, cat := range catList {
if cat.Level == 2 && cat.ParentVendorCatID == "" { if cat.Level == 2 && cat.ParentVendorCatID == "" && cat.IsExdSpec == model.NO {
needSyncParentIDs = append(needSyncParentIDs, cat.ParentID) needSyncParentIDs = append(needSyncParentIDs, cat.ParentID)
} }
} }
@@ -144,6 +144,9 @@ func SyncSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs []int,
if skuVendorInfo.BindID == 0 { if skuVendorInfo.BindID == 0 {
return nil, fmt.Errorf("商品:%d的数据异常", skuVendorInfo.SkuID) return nil, fmt.Errorf("商品:%d的数据异常", skuVendorInfo.SkuID)
} }
if skuVendorInfo.ExdSkuID != "" {
return nil, err
}
skuVendorInfo.SkuName = jxutils.ComposeSkuName(skuVendorInfo.Prefix, skuVendorInfo.Name, skuVendorInfo.Comment, skuVendorInfo.Unit, skuVendorInfo.SpecQuality, skuVendorInfo.SpecUnit, 0, skuVendorInfo.ExPrefix, skuVendorInfo.ExPrefixBegin, skuVendorInfo.ExPrefixEnd) skuVendorInfo.SkuName = jxutils.ComposeSkuName(skuVendorInfo.Prefix, skuVendorInfo.Name, skuVendorInfo.Comment, skuVendorInfo.Unit, skuVendorInfo.SpecQuality, skuVendorInfo.SpecUnit, 0, skuVendorInfo.ExPrefix, skuVendorInfo.ExPrefixBegin, skuVendorInfo.ExPrefixEnd)
skuVendorInfo.MergedStatus = jxutils.MergeSkuStatus(skuVendorInfo.Status, skuVendorInfo.NameStatus) skuVendorInfo.MergedStatus = jxutils.MergeSkuStatus(skuVendorInfo.Status, skuVendorInfo.NameStatus)
if multiStoresHandler, ok := partner.GetPurchasePlatformFromVendorID(skuVendorInfo.VendorID).(partner.IMultipleStoresHandler); ok { if multiStoresHandler, ok := partner.GetPurchasePlatformFromVendorID(skuVendorInfo.VendorID).(partner.IMultipleStoresHandler); ok {
@@ -466,6 +469,7 @@ func amendAndPruneVendorStuff(ctx *jxcontext.Context, parentTask tasksch.ITask,
if opType == AmendPruneOnlyAmend || opType == AmendPruneAll { if opType == AmendPruneOnlyAmend || opType == AmendPruneAll {
for _, v := range localSkuList { for _, v := range localSkuList {
if v.ExdSkuID == "" {
if v.BindID != 0 { if v.BindID != 0 {
if !model.IsSyncStatusDelete(v.SkuSyncStatus) { if !model.IsSyncStatusDelete(v.SkuSyncStatus) {
if remoteSkuMap[v.VendorSkuID] == 0 { if remoteSkuMap[v.VendorSkuID] == 0 {
@@ -482,6 +486,7 @@ func amendAndPruneVendorStuff(ctx *jxcontext.Context, parentTask tasksch.ITask,
} }
} }
} }
}
case 1: case 1:
if (opType == AmendPruneOnlyPrune || opType == AmendPruneAll) && len(sku2Delete) > 0 { if (opType == AmendPruneOnlyPrune || opType == AmendPruneAll) && len(sku2Delete) > 0 {
_, err = putils.FreeBatchStoreSkuInfo("删除商品", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) { _, err = putils.FreeBatchStoreSkuInfo("删除商品", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) {
@@ -510,6 +515,7 @@ func amendAndPruneVendorStuff(ctx *jxcontext.Context, parentTask tasksch.ITask,
cat2Delete = checkRemoteCatExist(remoteCatMap, localCatMap, remoteCatList) cat2Delete = checkRemoteCatExist(remoteCatMap, localCatMap, remoteCatList)
for _, v := range localCatList { for _, v := range localCatList {
if v.IsExdSpec == model.NO {
if v.MapID != 0 { if v.MapID != 0 {
if !model.IsSyncStatusDelete(v.CatSyncStatus) { if !model.IsSyncStatusDelete(v.CatSyncStatus) {
if remoteCatMap[v.VendorCatID] == 0 { if remoteCatMap[v.VendorCatID] == 0 {
@@ -525,6 +531,7 @@ func amendAndPruneVendorStuff(ctx *jxcontext.Context, parentTask tasksch.ITask,
} }
} }
} }
}
case 3: case 3:
if (opType == AmendPruneOnlyPrune || opType == AmendPruneAll) && len(cat2Delete) > 0 { if (opType == AmendPruneOnlyPrune || opType == AmendPruneAll) && len(cat2Delete) > 0 {
for i := 0; i < 2; i++ { for i := 0; i < 2; i++ {

View File

@@ -804,7 +804,7 @@ func HandleUserWXRemark(db *dao.DaoDB, mobile string, mobileIsUerID bool) (err e
} }
} }
if userID != "" { if userID != "" {
authBindList, err2 := dao.GetUserBindAuthInfo(db, userID, model.AuthBindTypeAuth, []string{weixin.AuthTypeMP}, "", "") authBindList, err2 := dao.GetUserBindAuthInfo(db, userID, model.AuthBindTypeAuth, []string{weixin.AuthTypeMP}, "", "", "")
if err = err2; err == nil { if err = err2; err == nil {
for _, v := range authBindList { for _, v := range authBindList {
openIDs = append(openIDs, v.AuthID) openIDs = append(openIDs, v.AuthID)
@@ -972,7 +972,7 @@ func WriteToExcelJd(task *tasksch.SeqTask, jd []JdUserStruct) (err error) {
func UpdateUserWxNoAndPercent(user *model.User, isReceiver bool) (num int64, err error) { func UpdateUserWxNoAndPercent(user *model.User, isReceiver bool) (num int64, err error) {
db := dao.GetDB() db := dao.GetDB()
user2, err := dao.GetUserByID(db, "user_id", user.UserID) user2, err := dao.GetUserByID(db, "user_id", user.UserID)
auth, err := dao.GetUserBindAuthInfo(db, user.UserID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "") auth, err := dao.GetUserBindAuthInfo(db, user.UserID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "", "wx4b5930c13f8b1170")
if len(auth) == 0 { if len(auth) == 0 {
return 0, fmt.Errorf("未找到此用户的微信验证方式用户ID[%v]\n", user.UserID) return 0, fmt.Errorf("未找到此用户的微信验证方式用户ID[%v]\n", user.UserID)
} }

View File

@@ -39,7 +39,7 @@ func AddOperateEvent(ctx *jxcontext.Context, accessUUID, jsonData string, errCod
if ctx.GetRequest() == nil { if ctx.GetRequest() == nil {
return nil return nil
} }
if apiFunctionSpec != "" { if apiFunctionSpec == "" {
url := ctx.GetRequest().URL.Path url := ctx.GetRequest().URL.Path
if url != "" { if url != "" {
apiFunction = url[strings.LastIndex(url, "/")+1 : len(url)] apiFunction = url[strings.LastIndex(url, "/")+1 : len(url)]

View File

@@ -96,7 +96,7 @@ var (
"9:00:00", "9:00:00",
} }
autoPayForPopluarManList = []string{ autoPayForPopluarManList = []string{
"9:30:00", "10:30:00",
} }
autoSaleStoreSkuTimeList = []string{ autoSaleStoreSkuTimeList = []string{

View File

@@ -577,7 +577,7 @@ func DeleteWrongSpu(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (
mapData := map[string]interface{}{ mapData := map[string]interface{}{
"name": skuNameList[step].Name, "name": skuNameList[step].Name,
} }
_, err = cms.UpdateSkuName(ctx, skuNameList[step].ID, mapData) _, err = cms.UpdateSkuName(ctx, skuNameList[step].ID, mapData, false)
if err != nil { if err != nil {
globals.SugarLogger.Debugf("DeleteWrongSpu failed nameid:%d, name:%s, with error:%v", skuNameList[step].ID, skuNameList[step].Name, err) globals.SugarLogger.Debugf("DeleteWrongSpu failed nameid:%d, name:%s, with error:%v", skuNameList[step].ID, skuNameList[step].Name, err)
} }

View File

@@ -96,7 +96,7 @@ func GetWeixinOpenIDsFromStoreID(storeID int) (retVal []string) {
if globals.EnableWXAuth2 { if globals.EnableWXAuth2 {
if userIDList, err2 := api2.RoleMan.GetRoleUserList(autils.NewStoreBossRole(storeID)); err2 == nil { if userIDList, err2 := api2.RoleMan.GetRoleUserList(autils.NewStoreBossRole(storeID)); err2 == nil {
for _, v := range userIDList { for _, v := range userIDList {
if authList, err2 := dao.GetUserBindAuthInfo(db, v, model.AuthBindTypeAuth, []string{weixin.AuthTypeMP}, "", ""); err2 == nil { if authList, err2 := dao.GetUserBindAuthInfo(db, v, model.AuthBindTypeAuth, []string{weixin.AuthTypeMP}, "", "", ""); err2 == nil {
for _, v := range authList { for _, v := range authList {
retVal = append(retVal, v.AuthID) retVal = append(retVal, v.AuthID)
openIDMap[v.AuthID] = 1 openIDMap[v.AuthID] = 1

View File

@@ -401,6 +401,7 @@ const (
const ( const (
YES = 1 //通用 YES = 1 //通用
NO = 0 NO = 0
DISABLED = -1
) )
func IsPurchaseVendorExist(vendorID int) bool { func IsPurchaseVendorExist(vendorID int) bool {

View File

@@ -27,7 +27,7 @@ func GetAuthBind(db *DaoDB, bindType int, authType, authID string) (authBind *mo
return authBind, err return authBind, err
} }
func GetUserBindAuthInfo(db *DaoDB, userID string, bindType int, typeList []string, authID, authID2 string) (authList []*model.AuthBind, err error) { func GetUserBindAuthInfo(db *DaoDB, userID string, bindType int, typeList []string, authID, authID2, typeID string) (authList []*model.AuthBind, err error) {
sql := ` sql := `
SELECT * SELECT *
FROM auth_bind t1 FROM auth_bind t1
@@ -56,6 +56,10 @@ func GetUserBindAuthInfo(db *DaoDB, userID string, bindType int, typeList []stri
sql += " AND t1.auth_id2 = ?" sql += " AND t1.auth_id2 = ?"
sqlParams = append(sqlParams, authID2) sqlParams = append(sqlParams, authID2)
} }
if typeID != "" {
sql += " AND t1.type_id = ?"
sqlParams = append(sqlParams, typeID)
}
sql += " ORDER BY t1.type" sql += " ORDER BY t1.type"
err = GetRows(db, &authList, sql, sqlParams...) err = GetRows(db, &authList, sql, sqlParams...)
return authList, err return authList, err

View File

@@ -352,7 +352,7 @@ func GetAfsOrderSkuInfo(db *DaoDB, vendorOrderID, afsOrderID string, vendorID in
return skus, err return skus, err
} }
func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, statusList []int) (skuList []*OrderSkuWithActualPayPrice, err error) { func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, statusList []int, isFinish bool) (skuList []*OrderSkuWithActualPayPrice, err error) {
// order_finished_at // order_finished_at
sql := ` sql := `
SELECT t1.*, SELECT t1.*,
@@ -361,7 +361,12 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt
FROM order_sku t1 FROM order_sku t1
JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id
LEFT JOIN store t3 ON t3.id = IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) LEFT JOIN store t3 ON t3.id = IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id)
WHERE t2.order_finished_at >= ? AND t2.order_finished_at <= ?` WHERE 1=1`
if isFinish {
sql += " AND t2.order_finished_at >= ? AND t2.order_finished_at <= ?"
} else {
sql += " AND t2.order_created_at >= ? AND t2.order_created_at <= ?"
}
sqlParams := []interface{}{ sqlParams := []interface{}{
finishedAtBegin, finishedAtBegin,
finishedAtEnd, finishedAtEnd,
@@ -378,7 +383,7 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt
return skuList, err return skuList, err
} }
func GetStoreOrderSkuList4Afs(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time) (skuList []*OrderSkuWithActualPayPrice, err error) { func GetStoreOrderSkuList4Afs(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, isFinish bool) (skuList []*OrderSkuWithActualPayPrice, err error) {
sql := ` sql := `
SELECT t1.*, SELECT t1.*,
t2.actual_pay_price, t2.status, IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id, t2.actual_pay_price, t2.status, IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id,
@@ -389,8 +394,13 @@ func GetStoreOrderSkuList4Afs(db *DaoDB, storeIDs []int, finishedAtBegin, finish
JOIN ( JOIN (
SELECT t12.* SELECT t12.*
FROM afs_order t12 FROM afs_order t12
WHERE IF(t12.jx_store_id > 0, t12.jx_store_id, t12.store_id) IN (` + GenQuestionMarks(len(storeIDs)) + `) AND t12.afs_finished_at >= ? AND t12.afs_finished_at <= ? WHERE IF(t12.jx_store_id > 0, t12.jx_store_id, t12.store_id) IN (` + GenQuestionMarks(len(storeIDs))
) t4 ON t4.vendor_order_id = t2.vendor_order_id AND t4.vendor_id = t2.vendor_id` if isFinish {
sql += ") AND t12.afs_finished_at >= ? AND t12.afs_finished_at <= ?"
} else {
sql += ") AND t12.afs_created_at >= ? AND t12.afs_created_at <= ?"
}
sql += ") t4 ON t4.vendor_order_id = t2.vendor_order_id AND t4.vendor_id = t2.vendor_id"
sqlParams := []interface{}{ sqlParams := []interface{}{
storeIDs, storeIDs,
finishedAtBegin, finishedAtBegin,
@@ -400,12 +410,18 @@ func GetStoreOrderSkuList4Afs(db *DaoDB, storeIDs []int, finishedAtBegin, finish
return skuList, err return skuList, err
} }
func GetStoreAfsOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, statusList []int) (afsSkuList []*model.OrderSkuFinancial, err error) { func GetStoreAfsOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, statusList []int, isFinish bool) (afsSkuList []*model.OrderSkuFinancial, err error) {
sql := ` sql := `
SELECT t1.* SELECT t1.*
FROM order_sku_financial t1 FROM order_sku_financial t1
JOIN afs_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id AND t2.afs_order_id = t1.afs_order_id JOIN afs_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id AND t2.afs_order_id = t1.afs_order_id
WHERE t1.is_afs_order = 1 AND t2.afs_finished_at >= ? AND t2.afs_finished_at <= ?` WHERE t1.is_afs_order = 1
`
if isFinish {
sql += " AND t2.afs_finished_at >= ? AND t2.afs_finished_at <= ?"
} else {
sql += " AND t2.afs_created_at >= ? AND t2.afs_created_at <= ?"
}
sqlParams := []interface{}{ sqlParams := []interface{}{
finishedAtBegin, finishedAtBegin,
finishedAtEnd, finishedAtEnd,

View File

@@ -8,6 +8,7 @@ import (
"time" "time"
"git.rosy.net.cn/jx-callback/business/jxstore/event" "git.rosy.net.cn/jx-callback/business/jxstore/event"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/baseapi/platformapi/wxpayapi" "git.rosy.net.cn/baseapi/platformapi/wxpayapi"
@@ -652,7 +653,7 @@ func PayForPopluarMan(ctx *jxcontext.Context, vendorOrderID, userID string, pric
if user == nil { if user == nil {
return fmt.Errorf("未找到此用户用户ID[%v]\n", userID) return fmt.Errorf("未找到此用户用户ID[%v]\n", userID)
} }
auth, err := dao.GetUserBindAuthInfo(db, userID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "") auth, err := dao.GetUserBindAuthInfo(db, userID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "", "wx4b5930c13f8b1170")
if len(auth) == 0 { if len(auth) == 0 {
return fmt.Errorf("未找到此用户的微信验证方式用户ID[%v]\n", userID) return fmt.Errorf("未找到此用户的微信验证方式用户ID[%v]\n", userID)
} }
@@ -678,8 +679,8 @@ func AutoPayForPopluarMan(ctx *jxcontext.Context) (err error) {
errMsg string errMsg string
errCode string errCode string
db = dao.GetDB() db = dao.GetDB()
fromDateStr = time.Now().AddDate(0, 0, -5).Format("2006-1-2") + " 00:00:00" fromDateStr = time.Now().AddDate(0, 0, -1).Format("2006-1-2") + " 00:00:00"
toDateStr = time.Now().AddDate(0, 0, -5).Format("2006-1-2") + " 23:59:59" toDateStr = time.Now().AddDate(0, 0, -1).Format("2006-1-2") + " 23:59:59"
mapResult = make(map[string]interface{}) mapResult = make(map[string]interface{})
) )
result, err := dao.GetOrdersForJxPay(db, utils.Str2Time(fromDateStr), utils.Str2Time(toDateStr)) result, err := dao.GetOrdersForJxPay(db, utils.Str2Time(fromDateStr), utils.Str2Time(toDateStr))
@@ -698,7 +699,7 @@ func AutoPayForPopluarMan(ctx *jxcontext.Context) (err error) {
return err return err
} }
user2, err := dao.GetUserByID(db, "mobile", user.ParentMobile) user2, err := dao.GetUserByID(db, "mobile", user.ParentMobile)
auths, err := dao.GetUserBindAuthInfo(db, user2.UserID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "") auths, err := dao.GetUserBindAuthInfo(db, user2.UserID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "", "wx4b5930c13f8b1170")
if err != nil { if err != nil {
return err return err
} }
@@ -726,7 +727,7 @@ func AutoPayForPopluarMan(ctx *jxcontext.Context) (err error) {
} }
if user2.ParentMobile != "" { if user2.ParentMobile != "" {
user3, err := dao.GetUserByID(db, "mobile", user2.ParentMobile) user3, err := dao.GetUserByID(db, "mobile", user2.ParentMobile)
auths, err := dao.GetUserBindAuthInfo(db, user3.UserID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "") auths, err := dao.GetUserBindAuthInfo(db, user3.UserID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "", "wx4b5930c13f8b1170")
if err != nil { if err != nil {
return err return err
} }
@@ -763,6 +764,7 @@ func AutoPayForPopluarMan(ctx *jxcontext.Context) (err error) {
errCode = model.ErrCodeSuccess errCode = model.ErrCodeSuccess
} }
err = event.AddOperateEvent(ctx, ctx.GetTrackInfo(), cms.BuildDiffData(mapResult), errCode, errMsg, 0, "AutoPayForPopluarMan") err = event.AddOperateEvent(ctx, ctx.GetTrackInfo(), cms.BuildDiffData(mapResult), errCode, errMsg, 0, "AutoPayForPopluarMan")
globals.SugarLogger.Debugf("每日订单打款:[%v]", cms.BuildDiffData(mapResult))
return err return err
} }

View File

@@ -286,7 +286,7 @@ func (c *CmsController) UpdateConfig() {
// @Title 查询配置 // @Title 查询配置
// @Description 查询配置 // @Description 查询配置
// @Param token header string true "认证token" // @Param token header string fasle "认证token"
// @Param type query string false "配置类型当前只支持PricePack" // @Param type query string false "配置类型当前只支持PricePack"
// @Param key query string false "配置名" // @Param key query string false "配置名"
// @Param keyword query string false "关键字" // @Param keyword query string false "关键字"

View File

@@ -185,6 +185,7 @@ func (c *SkuController) AddSkuName() {
// @Param token header string true "认证token" // @Param token header string true "认证token"
// @Param nameID formData int true "需要修改的商品名IDpayload中的相应数据会被忽略" // @Param nameID formData int true "需要修改的商品名IDpayload中的相应数据会被忽略"
// @Param payload formData string true "json数据SkuNameExt对象()Skus无效, Places有效" // @Param payload formData string true "json数据SkuNameExt对象()Skus无效, Places有效"
// @Param isExd formData bool fasle "是否要修改饿鲜达商品"
// @Success 200 {object} controllers.CallResult // @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult
// @router /UpdateSkuName [put] // @router /UpdateSkuName [put]
@@ -197,7 +198,7 @@ func (c *SkuController) UpdateSkuName() {
delete(payload, "exPrefix") delete(payload, "exPrefix")
delete(payload, "exPrefixBegin") delete(payload, "exPrefixBegin")
delete(payload, "exPrefixEnd") delete(payload, "exPrefixEnd")
retVal, err = cms.UpdateSkuName(params.Ctx, params.NameID, payload) retVal, err = cms.UpdateSkuName(params.Ctx, params.NameID, payload, params.IsExd)
} }
return retVal, "", err return retVal, "", err
}) })
@@ -435,7 +436,7 @@ func (c *SkuController) SumExianDaDepot() {
// @Title 复制一个饿百的店的商品的价格和分类到京西饿鲜达商品 // @Title 复制一个饿百的店的商品的价格和分类到京西饿鲜达商品
// @Description 复制一个饿百的店的商品的价格和分类到京西饿鲜达商品 // @Description 复制一个饿百的店的商品的价格和分类到京西饿鲜达商品
// @Param token header string true "认证token" // @Param token header string true "认证token"
// @Param baiduShopID formdata string true "饿百店ID" // @Param baiduShopID formData string true "饿百店ID"
// @Success 200 {object} controllers.CallResult // @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult
// @router /CopyEbaiSkuPriceToJx [post] // @router /CopyEbaiSkuPriceToJx [post]
@@ -449,8 +450,8 @@ func (c *SkuController) CopyEbaiSkuPriceToJx() {
// @Title 复制饿鲜达的门店商品到京西对应门店 // @Title 复制饿鲜达的门店商品到京西对应门店
// @Description 复制饿鲜达的门店商品到京西对应门店 // @Description 复制饿鲜达的门店商品到京西对应门店
// @Param token header string true "认证token" // @Param token header string true "认证token"
// @Param baiduShopID formdata string true "饿百店ID" // @Param baiduShopID formData string true "饿百店ID"
// @Param storeID formdata int true "门店ID" // @Param storeID formData int true "门店ID"
// @Success 200 {object} controllers.CallResult // @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult
// @router /CopyEbaiStoreSkusToJx [post] // @router /CopyEbaiStoreSkusToJx [post]