From a83d409423d52b5d60e662d3acfcd073e9e5d159 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Sat, 22 May 2021 15:39:10 +0800 Subject: [PATCH] aa --- business/jxstore/cms/store_sku.go | 26 +++++++++++----------- business/jxstore/report/report.go | 32 +++++++++++++++++---------- business/model/dao/dao_user.go | 14 ++++++++++++ business/model/dao/store_sku.go | 36 +++++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 24 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 2eea66738..f64f6e073 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -264,7 +264,7 @@ var ( } ) -func GetStoresSkusForStore(ctx *jxcontext.Context, storeID int, isFocus, isAct bool, keyword string, categoryID, status, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo, err error) { +func GetStoresSkusForStore(ctx *jxcontext.Context, storeID int, isFocus, isAct bool, keyword string, categoryID, status, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo2, err error) { //权限 //if permission.IsRoled(ctx) { // if storeIDsMap, err := permission.GetUserStoresResultMap(ctx.GetUserID()); err == nil { @@ -276,7 +276,7 @@ func GetStoresSkusForStore(ctx *jxcontext.Context, storeID int, isFocus, isAct b var ( sqlParams []interface{} db = dao.GetDB() - SkuNames []*dao.StoreSkuNameExt + SkuNames []*dao.StoreSkuNameExt2 ) sql := ` SELECT SQL_CALC_FOUND_ROWS DISTINCT a.*, e.id store_id, c.unit_price @@ -376,7 +376,7 @@ func GetStoresSkusForStore(ctx *jxcontext.Context, storeID int, isFocus, isAct b txDB, _ := dao.Begin(db) defer dao.Commit(db, txDB) if err = dao.GetRowsTx(txDB, &SkuNames, sql, sqlParams...); err == nil { - skuNamesInfo = &dao.StoreSkuNamesInfo{ + skuNamesInfo = &dao.StoreSkuNamesInfo2{ TotalCount: dao.GetLastTotalRowCount2(db, txDB), } // skuNamesInfo.TotalCount = dao.GetLastTotalRowCount2(db, txDB) @@ -442,16 +442,16 @@ func GetStoresSkusForStore(ctx *jxcontext.Context, storeID int, isFocus, isAct b // } // storeName.Skus = append(storeName.Skus, &v.StoreSkuExt) //} - if err == nil { - if isFocus { - if err == nil { - storeIDs, skuIDs := GetStoreAndSkuIDsFromInfo(skuNamesInfo) - err = dao.UpdateActPrice4StoreSkuNameNew(db, storeIDs, skuIDs, skuNamesInfo, -1) - } - } else { - err = updateUnitPrice4StoreSkuNameNew(db, skuNamesInfo) - } - } + //if err == nil { + // if isFocus { + // if err == nil { + // storeIDs, skuIDs := GetStoreAndSkuIDsFromInfo(skuNamesInfo) + // err = dao.UpdateActPrice4StoreSkuNameNew(db, storeIDs, skuIDs, skuNamesInfo, -1) + // } + // } else { + // err = updateUnitPrice4StoreSkuNameNew(db, skuNamesInfo) + // } + //} } return skuNamesInfo, err } diff --git a/business/jxstore/report/report.go b/business/jxstore/report/report.go index cc4857eae..daba9db85 100644 --- a/business/jxstore/report/report.go +++ b/business/jxstore/report/report.go @@ -644,7 +644,7 @@ func RefreshJDMembers(ctx *jxcontext.Context) (err error) { if configs, err := dao.QueryConfigs(dao.GetDB(), "jdStorePageCookie", model.ConfigTypeCookie, ""); err == nil { api.JdAPI.SetJdCookie(configs[0].Value) } - userMemebers, _ := dao.GetUserMember(db, "", "", "", model.VendorIDJD, 0, -1) + userMemebers, _ := dao.GetUserMemberWithoutDeleted(db, model.VendorIDJD) for _, v := range userMemebers { memberMap[v.Mobile] = v } @@ -709,17 +709,28 @@ func UserMemberReport(ctx *jxcontext.Context, vendorID int, keyword string, offs ) var list []*dao.UserMemberReportResult sql := ` - SELECT SQL_CALC_FOUND_ROWS a.mobile, IF(a.vendor_id = ?, c.name, b.consignee_name) name, IF(a.deleted_at = '1970-01-01 00:00:00',1,0) status, a.vendor_id, - COUNT(DISTINCT b.vendor_store_id) buy_count, COUNT(DISTINCT bb.vendor_store_id) finished_count, SUM(DISTINCT b.actual_pay_price) buy_price, - SUM(DISTINCT b.actual_pay_price) finished_price, COUNT(d.score > 3) good_comment_count, COUNT(d.score < 3) bad_comment_count - FROM user_member a - LEFT JOIN goods_order b ON a.mobile = b.consignee_mobile2 AND a.vendor_id = b.vendor_id - LEFT JOIN goods_order bb ON a.mobile = bb.consignee_mobile2 AND bb.status = ? AND a.vendor_id = bb.vendor_id - LEFT JOIN user c ON c.mobile = a.mobile - LEFT JOIN jx_bad_comments d ON d.order_id = b.vendor_order_id + SELECT a.mobile, IF(a.vendor_id = ?, b.name, t1.consignee_name) name, IF(a.deleted_at = ?, ?, ?) status, a.vendor_id, t1.buy_count, t1.buy_price, + t1.good_comment_count, t1.bad_comment_count, t2.finished_count, t2.finished_price + FROM user_member a + LEFT JOIN user b ON a.mobile = b.mobile + LEFT JOIN ( + SELECT a.mobile, MAX(b.consignee_name) consignee_name, COUNT(b.vendor_store_id) buy_count, SUM(ISNULL(b.actual_pay_price)) buy_price, COUNT(c.score > 3) good_comment_count, COUNT(c.score < 3) bad_comment_count + FROM user_member a + LEFT JOIN goods_order b ON a.mobile = b.consignee_mobile2 AND a.vendor_id = b.vendor_id AND b.order_type = ? AND b.store_id <> ? + LEFT JOIN jx_bad_comments c ON c.order_id = b.vendor_order_id + GROUP BY 1 + ) t1 ON t1.mobile = a.mobile + LEFT JOIN ( + SELECT a.mobile, COUNT(b.vendor_store_id) finished_count, SUM(ISNULL(b.actual_pay_price)) finished_price + FROM user_member a + LEFT JOIN goods_order b ON a.mobile = b.consignee_mobile2 AND a.vendor_id = b.vendor_id AND b.order_type = ? AND status = ? AND b.store_id <> ? + GROUP BY 1 + )t2 ON t2.mobile = a.mobile ` sqlParams := []interface{}{ - model.VendorIDJX, model.OrderStatusFinished, + model.VendorIDJX, utils.DefaultTimeValue, model.YES, model.NO, + model.OrderTypeNormal, model.MatterStoreID, + model.OrderTypeNormal, model.OrderStatusFinished, model.MatterStoreID, } if vendorID != -1 { sql += " AND a.vendor_id = ?" @@ -731,7 +742,6 @@ func UserMemberReport(ctx *jxcontext.Context, vendorID int, keyword string, offs sqlParams = append(sqlParams, keywordLike, keywordLike) } sql += ` - GROUP BY 1, 2, 3, 4 LIMIT ? OFFSET ? ` pageSize = jxutils.FormalizePageSize(pageSize) diff --git a/business/model/dao/dao_user.go b/business/model/dao/dao_user.go index 9172cc55b..b9cab06c7 100644 --- a/business/model/dao/dao_user.go +++ b/business/model/dao/dao_user.go @@ -317,3 +317,17 @@ func GetUserMember(db *DaoDB, userID, vendorOrderID, mobile string, vendorID, me err = GetRows(db, &userMembers, sql, sqlParams) return userMembers, err } + +func GetUserMemberWithoutDeleted(db *DaoDB, vendorID int) (userMembers []*model.UserMember, err error) { + sql := ` + SELECT * + FROM user_member + ` + sqlParams := []interface{}{} + if vendorID != -1 { + sql += " AND vendor_id = ?" + sqlParams = append(sqlParams, vendorID) + } + err = GetRows(db, &userMembers, sql, sqlParams) + return userMembers, err +} diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 72e47e10b..f889f68a1 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -186,12 +186,48 @@ type StoreSkuNameExt struct { AuditUnitPrice int `json:"auditUnitPrice"` //审核价格 } +type StoreSkuNameExt2 struct { + ID int `orm:"id" json:"id"` + + Prefix string `orm:"size(255)" json:"prefix"` + Name string `orm:"size(255)" json:"name"` + + CategoryID int `orm:"column(category_id);index" json:"categoryID"` // 标准类别 + + Unit string `orm:"size(8)" json:"unit"` + SpecQuality float32 `json:"-"` // 为份必然为500,这个主要作用只是用于确保SkuName的唯一性 + SpecUnit string `orm:"size(8)" json:"-"` // 为份必然为克,这个主要作用只是用于确保SkuName的唯一性 + Price int `json:"price"` // 单位为分,标准价,不为份的就为实际标准价,为份的为每市斤价,实际还要乘质量。todo 为份的确定必须有质量 + Img string `orm:"size(512)" json:"img"` + Status int `orm:"default(1)" json:"status"` // skuname状态,取值同sku.Status + + YbNameSuffix string `json:"ybNameSuffix"` //银豹商品后缀 + StoreID int `orm:"column(store_id)" json:"storeID"` + StoreName string `json:"storeName"` + SkuID int `orm:"column(sku_id)" json:"skuID"` + PayPercentage int `json:"-"` + UnitPrice int `json:"unitPrice"` + Skus []*StoreSkuExt `orm:"-" json:"skus,omitempty"` + SkusStr string `json:"-"` + + PendingUnitPrice int `json:"pendingUnitPrice"` // 这个是待审核的价格申请 + RealMidUnitPrice int `json:"realMidUnitPrice"` + Count int `json:"count"` + YbSkuName string `json:"ybSkuName"` + AuditUnitPrice int `json:"auditUnitPrice"` //审核价格 +} + // GetStoreSkus用 type StoreSkuNamesInfo struct { TotalCount int `json:"totalCount"` SkuNames []*StoreSkuNameExt `json:"skuNames"` } +type StoreSkuNamesInfo2 struct { + TotalCount int `json:"totalCount"` + SkuNames []*StoreSkuNameExt2 `json:"skuNames"` +} + type StoreSkuVendorInfo struct { VendorID int `orm:"column(vendor_id)" json:"vendorID"`