diff --git a/internal/api/mobile/order/delete.go b/internal/api/mobile/order/delete.go index 7ae2fce..20e6583 100755 --- a/internal/api/mobile/order/delete.go +++ b/internal/api/mobile/order/delete.go @@ -1,12 +1,11 @@ package order import ( + "git.oa00.com/go/mysql" + "github.com/gin-gonic/gin" "recook/internal/back" - "recook/internal/dbc" "recook/internal/model/order" "recook/tools" - - "github.com/gin-gonic/gin" ) type deleteOrderParam struct { @@ -21,16 +20,16 @@ func DeleteOrder(c *gin.Context) { back.Fail(c, err.Error()) return } - var orderInfo order.Information - dbc.DB.First(&orderInfo, p.OrderID) + mysql.Db.First(&orderInfo, p.OrderID) + //dbc.DB.First(&orderInfo, p.OrderID) - if orderInfo.Status != 2 && orderInfo.Status != 3 { + if orderInfo.Status != 2 && orderInfo.Status != 3 && orderInfo.Status != 5 { back.Fail(c, "订单不可删除") return } - tx := dbc.DB.Begin() + tx := mysql.Db.Begin() { if err = tx.Delete(&orderInfo).Error; err != nil { back.Err(c, err.Error()) @@ -38,19 +37,19 @@ func DeleteOrder(c *gin.Context) { return } - if err = tx.Where("order_id = ?", orderInfo.ID).Delete(order.Addr{}).Error; err != nil { + if err = tx.Where("order_id = ?", orderInfo.ID).Delete(&order.Addr{}).Error; err != nil { back.Err(c, err.Error()) tx.Rollback() return } - if err = tx.Where("order_id = ?", orderInfo.ID).Delete(order.CouponDetail{}).Error; err != nil { + if err = tx.Where("order_id = ?", orderInfo.ID).Delete(&order.CouponDetail{}).Error; err != nil { back.Err(c, err.Error()) tx.Rollback() return } - if err = tx.Where("order_id = ?", orderInfo.ID).Delete(order.GoodsDetail{}).Error; err != nil { + if err = tx.Where("order_id = ?", orderInfo.ID).Delete(&order.GoodsDetail{}).Error; err != nil { back.Err(c, err.Error()) tx.Rollback() return diff --git a/internal/api/mobile/order/plan.go b/internal/api/mobile/order/plan.go index fe6a1ad..426fe51 100755 --- a/internal/api/mobile/order/plan.go +++ b/internal/api/mobile/order/plan.go @@ -1,6 +1,7 @@ package order import ( + "git.oa00.com/go/mysql" "log" "recook/internal/dbc" "recook/internal/model/order" @@ -17,7 +18,7 @@ func PlanMonitorTradeSucOrderTask() { var orderListGoods order.GoodsDetail has := 0 - dbc.DB.Find(&successOrderList, "status = 1 AND express_status = 1 AND created_at <= ?", t.Format("2006-01-02 15:04:05")) + mysql.Db.Find(&successOrderList, "status = 1 AND express_status = 1 AND created_at <= ?", t.Format("2006-01-02 15:04:05")) for _, orderInfo := range successOrderList { @@ -46,7 +47,7 @@ func PlanMonitorTradeSucOrderTask() { func PlanMonitorExpireOrderTask() { now := time.Now() var expireOrderList []order.Information - dbc.DB.Find(&expireOrderList, "status = 0 AND expire_time <= ? and order_type = 1", now) + mysql.Db.Find(&expireOrderList, "status = 0 AND expire_time <= ? and order_type = 1", now) for _, v := range expireOrderList { err := CancelOrExpireOrder(&v, false) diff --git a/internal/api/mobile/order/query.go b/internal/api/mobile/order/query.go index 48d6531..7cd96a2 100755 --- a/internal/api/mobile/order/query.go +++ b/internal/api/mobile/order/query.go @@ -50,7 +50,7 @@ func QueryAllOrders(c *gin.Context) { } var orderInfoList []order.Information - SearchOrderList(p.OrderType, p.Page, p.UserID, p.IsSale, nil).Find(&orderInfoList, "user_id = ?", p.UserID) + SearchOrderList(p.OrderType, p.Page, p.UserID, p.IsSale, nil).Find(&orderInfoList, "user_id = ? and deleted_at is null", p.UserID) list := make([]queryOrderListResponse, 0, 0) for i1, v1 := range orderInfoList { diff --git a/internal/model/order/addr.go b/internal/model/order/addr.go index ea1855d..0f6ad44 100755 --- a/internal/model/order/addr.go +++ b/internal/model/order/addr.go @@ -1,6 +1,7 @@ package order import ( + "gorm.io/gorm" "recook/internal/model/order_preview" ) @@ -14,6 +15,7 @@ type Addr struct { Address string `gorm:"column:address" json:"address"` ReceiverName string `gorm:"column:receiver_name" json:"receiverName"` Mobile string `gorm:"column:mobile" json:"mobile"` + DeletedAt gorm.DeletedAt } // TableName sets the insert table name for this struct type diff --git a/internal/model/order/coupon_detail.go b/internal/model/order/coupon_detail.go index ed37316..d63720f 100755 --- a/internal/model/order/coupon_detail.go +++ b/internal/model/order/coupon_detail.go @@ -3,6 +3,7 @@ package order import ( "github.com/golangkit/formatime" "github.com/shopspring/decimal" + "gorm.io/gorm" "recook/internal/model/order_preview" ) @@ -16,6 +17,7 @@ type CouponDetail struct { CouponName string `gorm:"column:coupon_name" json:"couponName"` DeductedAmount decimal.Decimal `gorm:"column:deducted_amount" json:"deductedAmount"` EndTime formatime.Second `gorm:"column:end_time" json:"-"` + DeletedAt gorm.DeletedAt } // TableName sets the insert table name for this struct type diff --git a/internal/model/order/goods_detail.go b/internal/model/order/goods_detail.go index 84fff40..59bf92c 100755 --- a/internal/model/order/goods_detail.go +++ b/internal/model/order/goods_detail.go @@ -1,6 +1,7 @@ package order import ( + "gorm.io/gorm" "recook/internal/define" "recook/internal/model/order_preview" "recook/internal/v2/model/recook/goods" @@ -82,6 +83,7 @@ type GoodsDetail struct { Sku goods.RecookGoodsSkuModel `json:"-" gorm:"foreignKey:sku_id"` Income decimal.Decimal `json:"income"` Tax decimal.Decimal `json:"tax"` + DeletedAt gorm.DeletedAt } // TableName sets the insert table name for this struct type diff --git a/internal/model/order/info.go b/internal/model/order/info.go index b13bf89..101f857 100755 --- a/internal/model/order/info.go +++ b/internal/model/order/info.go @@ -1,6 +1,7 @@ package order import ( + "gorm.io/gorm" "recook/internal/model/order_preview" "recook/internal/model/user" "time" @@ -58,6 +59,7 @@ type Information struct { CanPay bool `gorm:"column:can_pay" json:"-"` OrderSku []GoodsDetail `json:"-" gorm:"foreignKey:order_id"` Address Addr `json:"-" gorm:"foreignKey:order_id"` + DeletedAt gorm.DeletedAt } const ( diff --git a/internal/v2/controller/task/jcook.go b/internal/v2/controller/task/jcook.go index e729fe5..385d47f 100644 --- a/internal/v2/controller/task/jcook.go +++ b/internal/v2/controller/task/jcook.go @@ -787,8 +787,10 @@ func SyncPageData(page, size uint, brand string, categories []RecookJCookCategor } attrMap := make(map[uint][]goods.RecookGoodsAttributeModel) + for k, attr := range skuAttrMap { data1 := make([]goods.RecookGoodsAttributeModel, 0) + dataAttr := make([]goods.RecookGoodsAttributeModel, 0) for index, a := range attr { aName := "规格" if index == 1 { @@ -798,15 +800,24 @@ func SyncPageData(page, size uint, brand string, categories []RecookJCookCategor if aValue == "" { aValue = "标准" } - data1 = append(data1, goods.RecookGoodsAttributeModel{ - GoodsId: gs1.Id, - Name: aName, - Value: aValue, - }) - attrMap[k] = data1 + var aa goods.RecookGoodsAttributeModel + tx.First(&aa, "goods_id = ? and value = ?", gs1.Id, aValue) //查找重复数据 + if aa.Id > 0 { + dataAttr = append(attrMap[k], aa) //使用已有数据 + } else { + data1 = append(data1, goods.RecookGoodsAttributeModel{ + GoodsId: gs1.Id, + Name: aName, + Value: aValue, + }) + dataAttr = data1 + } + attrMap[k] = dataAttr } - if err := tx.Create(&data1).Error; err != nil { - return err + if len(data1) != 0 { + if err := tx.Create(&data1).Error; err != nil { + return err + } } } data := make([]goods.RecookGoodsSkuModel, 0) @@ -820,6 +831,7 @@ func SyncPageData(page, size uint, brand string, categories []RecookJCookCategor value.CombineId = strings.Join(idStr, ",") data = append(data, value) } + if err := tx.Create(&data).Error; err != nil { return err }