From a1a0a63461e8290be6aafcff6032766c7e89b990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 29 May 2020 10:44:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E5=AE=A1=E6=A0=B8=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 77 ++++++++++++++++++++----------- business/model/store.go | 1 + business/model/store_sku.go | 3 +- controllers/cms_store_sku.go | 1 + 4 files changed, 53 insertions(+), 29 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index b26de0ddf..580f01c2c 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -96,6 +96,7 @@ type tStoreSkuBindAndSpec struct { ExdSkuID string `orm:"column(exd_sku_id)"` StoreName string ChangePriceType int8 `json:"changePriceType"` // 修改价格类型,即是否需要审核 + NameID int `orm:"column(name_id)" json:"nameID"` } type SkuSaleInfo struct { @@ -1022,7 +1023,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs sql += " IF(t5.unit_price > 0, t5.unit_price, t3.price) sku_name_price," } sql += ` - t3.unit sku_name_unit, t3.name, t3.status sku_name_status, + t3.unit sku_name_unit, t3.name, t3.status sku_name_status, t3.id name_id, ts.change_price_type, ts.name store_name FROM sku t1 JOIN store ts ON ts.id = ? AND ts.deleted_at = ? @@ -1143,6 +1144,15 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs dao.Rollback(db) return nil, err } + //删除待审核商品信息 + storeAudits, err := dao.GetStoreSkuAuditLight(db, []int{storeID}, []int{v.NameID}, model.StoreAuditStatusOnline) + if len(storeAudits) > 0 { + storeAudits[0].DeletedAt = time.Now() + if _, err = dao.UpdateEntity(db, storeAudits[0], "DeletedAt"); err != nil { + dao.Rollback(db) + return nil, err + } + } } else { // 用了SELECT FOR UPDATE后,只更新修改字段是没有必要的,暂时保留 updateFieldMap := make(map[string]interface{}) @@ -4458,8 +4468,8 @@ func doStoreSkuAudit(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*Sto for _, storeID := range storeIDs { for _, skuBindInfo := range skuBindInfos { storeAudits, err := dao.GetStoreSkuAuditLight(db, []int{storeID}, []int{skuBindInfo.NameID}, model.StoreAuditStatusOnline) - //关注,可售排除 - if skuBindInfo.IsFocus != 0 || skuBindInfo.IsSale != 0 || skuBindInfo.UnitPrice == 0 { + //取消关注,可售排除 + if skuBindInfo.IsFocus == -1 || skuBindInfo.IsSale != 0 || skuBindInfo.UnitPrice == 0 { globals.SugarLogger.Debugf("doStoreSkuAudit return1 storeID : %v nameID: %v", storeID, skuBindInfo.NameID) return false, err } @@ -4476,31 +4486,41 @@ func doStoreSkuAudit(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*Sto // globals.SugarLogger.Debugf("doStoreSkuAudit return3 storeID : %v nameID: %v", storeID, skuBindInfo.NameID) // return false, err // } - //如果改的价比原价低排除 - storeSkus, err := dao.GetStoreSkusByNameIDs(db, []int{storeID}, skuBindInfo.NameID) - if len(storeSkus) > 0 { - if skuBindInfo.UnitPrice <= int(storeSkus[0].UnitPrice) { - if len(storeAudits) > 0 { - dao.DeleteEntityLogically(db, storeAudits[0], nil, ctx.GetUserName(), nil) - } - globals.SugarLogger.Debugf("doStoreSkuAudit return4 storeID : %v nameID: %v", storeID, skuBindInfo.NameID) - return false, err - } else { - if len(storeAudits) > 0 { - storeAudits[0].DeletedAt = time.Now() - dao.UpdateEntity(db, storeAudits[0], "DeletedAt") - } - } - } else { - return false, fmt.Errorf("未查询到该门店商品价,storeID: %v, nameID: %V", storeID, skuBindInfo.NameID) - } storeSkuAudit := &model.StoreSkuAudit{ - StoreID: storeID, - Type: model.StoreSkuAuditTypePrice, - NameID: skuBindInfo.NameID, - Status: model.StoreAuditStatusOnline, - UnitPrice: skuBindInfo.UnitPrice, - OriginUnitPrice: int(storeSkus[0].UnitPrice), + StoreID: storeID, + NameID: skuBindInfo.NameID, + Status: model.StoreAuditStatusOnline, + UnitPrice: skuBindInfo.UnitPrice, + } + //如果是关注改价 + if skuBindInfo.IsFocus == 1 { + if len(storeAudits) > 0 { + storeAudits[0].DeletedAt = time.Now() + dao.UpdateEntity(db, storeAudits[0], "DeletedAt") + } + storeSkuAudit.Type = model.StoreSkuAuditTypeFocus + } else { + storeSkus, err := dao.GetStoreSkusByNameIDs(db, []int{storeID}, skuBindInfo.NameID) + if len(storeSkus) > 0 { + //如果改的价比原价低排除 + if skuBindInfo.UnitPrice <= int(storeSkus[0].UnitPrice) { + if len(storeAudits) > 0 { + storeAudits[0].DeletedAt = time.Now() + dao.UpdateEntity(db, storeAudits[0], "DeletedAt") + } + globals.SugarLogger.Debugf("doStoreSkuAudit return4 storeID : %v nameID: %v", storeID, skuBindInfo.NameID) + return false, err + } else { + if len(storeAudits) > 0 { + storeAudits[0].DeletedAt = time.Now() + dao.UpdateEntity(db, storeAudits[0], "DeletedAt") + } + } + } else { + return false, fmt.Errorf("未查询到该门店商品价,storeID: %v, nameID: %V", storeID, skuBindInfo.NameID) + } + storeSkuAudit.Type = model.StoreSkuAuditTypePrice + storeSkuAudit.OriginUnitPrice = int(storeSkus[0].UnitPrice) } dao.WrapAddIDCULDEntity(storeSkuAudit, ctx.GetUserName()) err = dao.CreateEntity(db, storeSkuAudit) @@ -4530,7 +4550,8 @@ func StoreSkuPriceAudit(ctx *jxcontext.Context, storeIDs, nameIDs []int, status if status == model.StoreAuditStatusCreated { storeAudits[0].UserID = ctx.GetUserID() storeAudits[0].Status = model.StoreAuditStatusCreated - _, err = dao.UpdateEntity(db, storeAudits[0], "UserID", "Status") + storeAudits[0].Remark = remark + _, err = dao.UpdateEntity(db, storeAudits[0], "UserID", "Status", "Remark") var skuBindInfos = []*StoreSkuBindInfo{ &StoreSkuBindInfo{ NameID: v, diff --git a/business/model/store.go b/business/model/store.go index de13f468f..918c4e38d 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -27,6 +27,7 @@ const ( const ( StoreSkuAuditTypePrice = 1 //改价 + StoreSkuAuditTypeFocus = 2 //关注 ) const ( diff --git a/business/model/store_sku.go b/business/model/store_sku.go index 5d21d6976..66bc9ba17 100644 --- a/business/model/store_sku.go +++ b/business/model/store_sku.go @@ -202,7 +202,8 @@ type StoreSkuAudit struct { Status int8 `json:"status"` // UserID string `orm:"size(48);column(user_id)" json:"userID"` OriginUnitPrice int `json:"originPrice"` // 表示原价 - UnitPrice int `json:"unitPrice"` + UnitPrice int `json:"unitPrice"` //老板申请的审核价格 + AuditPrice int `json:"auditPrice"` //运营录入的审核价格 Remark string `orm:"size(255)" json:"remark"` } diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index c398a9f5a..0ec6b805a 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -847,6 +847,7 @@ func (c *StoreSkuController) GetStoreSkuAudit() { // @Param token header string true "认证token" // @Param storeIDs formData string false "门店ID列表" // @Param nameIDs formData string false "id列表对象,当前指skuname id" +// @Param auditPrice formData string false "录入的审核价格" // @Param status formData int false "审核标志,1通过,-1 不通过" // @Param remark formData string false "审核不通过原因" // @Param isAsync formData bool false "是否异步,缺省是同步"