package dao import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" ) func GetThingMapList(db *DaoDB, thingType int, vendorIDs, thingIDs []int, vendorOrgCodes []string) (cats []*model.ThingMap, err error) { sql := ` SELECT t1.* FROM thing_map t1 WHERE t1.deleted_at = ? AND t1.thing_type = ? ` sqlParams := []interface{}{ utils.DefaultTimeValue, thingType, } if len(thingIDs) > 0 { // 必须要指定ID sql += " AND t1.thing_id IN (" + GenQuestionMarks(len(thingIDs)) + ")" sqlParams = append(sqlParams, thingIDs) } if len(vendorOrgCodes) > 0 { sql += " AND t1.vendor_org_code IN (" + GenQuestionMarks(len(vendorOrgCodes)) + ")" sqlParams = append(sqlParams, vendorOrgCodes) } err = GetRows(db, &cats, sql, sqlParams...) return cats, err } func CreateThingMap(thingId int64, vendorThingID, appOrgCode, skuAttrId string) error { thingMap := &model.ThingMap{ ThingID: thingId, ThingType: model.ThingTypeSku, VendorID: model.VendorIDDD, VendorOrgCode: appOrgCode, VendorThingID: vendorThingID, Remark: skuAttrId, SyncStatus: 0, } // 正常来说这个skuAttrId 不应该为空 if skuAttrId == "" { thingMap.Remark = "这个值不应该为空才对" } WrapAddIDCULDEntity(thingMap, "jxadmin") return CreateEntity(GetDB(), thingMap) } // GetThingToTiktokMapList 抖店获取同步类型 func GetThingToTiktokMapList(db *DaoDB, vendorId int, thingId int64) (cats []*model.ThingMap, err error) { sql := ` SELECT t1.* FROM thing_map t1 WHERE t1.thing_id = ? AND t1.vendor_id = ? AND t1.deleted_at = ? ` sqlParams := []interface{}{ thingId, vendorId, utils.DefaultTimeValue, } err = GetRows(db, &cats, sql, sqlParams...) return cats, err } func GetThingMapMap(db *DaoDB, thingType int, vendorIDs, thingIDs []int) (thingMapMap map[int64][]*model.ThingMap, err error) { thingMapList, err := GetThingMapList(db, thingType, vendorIDs, thingIDs, nil) if err == nil { thingMapMap = make(map[int64][]*model.ThingMap) for _, thingMap := range thingMapList { thingMapMap[thingMap.ThingID] = append(thingMapMap[thingMap.ThingID], thingMap) } } return thingMapMap, err } func SetThingMapSyncStatus(db *DaoDB, vendorIDs []int, vendorOrgCodes []string, thingType int, thingIDs []int, syncStatus int8) (num int64, err error) { sql := ` UPDATE thing_map t1 SET t1.sync_status = t1.sync_status | ? WHERE t1.deleted_at = ? AND t1.thing_type = ? ` sqlParams := []interface{}{ syncStatus, utils.DefaultTimeValue, thingType, } if len(vendorIDs) > 0 { sql += " AND t1.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")" sqlParams = append(sqlParams, vendorIDs) } if len(vendorOrgCodes) > 0 { sql += " AND t1.vendor_org_code IN (" + GenQuestionMarks(len(vendorOrgCodes)) + ")" sqlParams = append(sqlParams, vendorOrgCodes) } if len(thingIDs) > 0 { sql += " AND t1.thing_id IN (" + GenQuestionMarks(len(thingIDs)) + ")" sqlParams = append(sqlParams, thingIDs) } num, err = ExecuteSQL(db, sql, sqlParams...) return num, err } func SetSkuNameSyncStatus(db *DaoDB, vendorIDs []int, vendorOrgCodes []string, nameIDs []int, syncStatus int8) (num int64, err error) { skuIDs, err2 := GetSkuIDByNames(db, nameIDs) if err = err2; err == nil { num, err = SetThingMapSyncStatus(db, vendorIDs, vendorOrgCodes, model.ThingTypeSku, skuIDs, syncStatus) } return num, err } func SetSkuSyncStatus(db *DaoDB, vendorID int, skuIDs []int, syncStatus int8) (num int64, err error) { num, err = SetThingMapSyncStatus(db, []int{vendorID}, nil, model.ThingTypeSku, skuIDs, syncStatus) return num, err }