This commit is contained in:
邹宗楠
2025-07-04 10:03:38 +08:00
parent 9a051bf147
commit 905f8bd2e0
7 changed files with 81 additions and 25 deletions

View File

@@ -943,7 +943,7 @@ func (c *OrderManager) GetStoresOrderSaleInfo(ctx *jxcontext.Context, storeIDLis
return c.GetStoresOrderSaleInfoNew(ctx, storeIDList, fromTime, toTime, statusList)
}
func (c *OrderManager) GetStoresOrderSaleInfo2(ctx *jxcontext.Context, fromTime time.Time, toTime time.Time, storeId int, brandId, vendorId, storeList []int) (map[string]interface{}, error) {
func (c *OrderManager) GetStoresOrderSaleInfo2(fromTime time.Time, toTime time.Time, storeId int, brandId, vendorId, storeList []int, operateNum, brandOperate string) (map[string]interface{}, error) {
var (
db = dao.GetDB()
)
@@ -957,25 +957,25 @@ func (c *OrderManager) GetStoresOrderSaleInfo2(ctx *jxcontext.Context, fromTime
}
// 门店统计
storeStatus, err := dao.StatisticsStoreInfo(db, brandId, vendorId, storeList)
storeStatus, err := dao.StatisticsStoreInfo(db, brandId, vendorId, storeList, operateNum, brandOperate)
if err != nil {
return nil, err
}
// 订单统计
orderStatus, err := dao.StatisticsOrderInfo(db, fromTime, toTime, storeId, brandId, vendorId, storeList)
orderStatus, err := dao.StatisticsOrderInfo(db, fromTime, toTime, storeId, brandId, vendorId, storeList, operateNum, brandOperate)
if err != nil {
return nil, err
}
// 售后单统计
afsOrderStatus, err := dao.StatisticsAfsOrderInfo(db, fromTime, toTime, storeId, brandId, vendorId, storeList)
afsOrderStatus, err := dao.StatisticsAfsOrderInfo(db, fromTime, toTime, storeId, brandId, vendorId, storeList, operateNum, brandOperate)
if err != nil {
return nil, err
}
// 统计收益
incomeStatics, err := dao.StatisticsIncome(db, fromTime, toTime, storeId, brandId, vendorId, storeList)
incomeStatics, err := dao.StatisticsIncome(db, fromTime, toTime, storeId, brandId, vendorId, storeList, operateNum, brandOperate)
if err != nil {
return nil, err
}

View File

@@ -588,6 +588,11 @@ func SeparateFallBack(merchantNo, separateNo, reason string) (*lakala.SeparateFa
return result, nil
}
func GetCardBin(orgCode, cardNo string) (*lakala.BinInfo, error) {
result, err := api.LaKaLaApi.QueryCarBin(lakala.GetOrderNumber(8), orgCode, cardNo)
return result, err
}
//#endregion
//#region 订单相关
@@ -776,7 +781,7 @@ func UploadImg(filePath, imgType, sourcechnl, isOcr string) (*lakala.UploadImgRe
//#endregion
//#region 京西数据查询
//#region 京西数据查询
// GetIncomingList 进件查询
func GetIncomingList(merchantNo string, storeId, pageSize, offset int) (*model.PagedInfo, error) {

View File

@@ -1566,7 +1566,7 @@ func GetStoreBaseByVendorStoreID(vendorStoreID string, vendorID int) (storeDetai
}
// StatisticsStoreInfo 统计所有的门店信息
func StatisticsStoreInfo(db *DaoDB, brandId, vendorId, storeList []int) ([]*StatisticsStore, error) {
func StatisticsStoreInfo(db *DaoDB, brandId, vendorId, storeList []int, operateNum, brandOperate string) ([]*StatisticsStore, error) {
statistics := make([]*StatisticsStore, 0, 0)
sql := ` SELECT count(s.status) count, s.status FROM store s `
@@ -1587,6 +1587,15 @@ func StatisticsStoreInfo(db *DaoDB, brandId, vendorId, storeList []int) ([]*Stat
param = append(param, brandId)
}
if operateNum != "" {
sql += ` AND s.market_man_phone = ?`
param = append(param, operateNum)
}
if brandOperate != "" {
sql += ` AND s.operator_phone2 = ?`
param = append(param, brandOperate)
}
sql += ` GROUP BY s.status `
if err := GetRows(db, &statistics, sql, param); err != nil {
return nil, err
@@ -1595,14 +1604,11 @@ func StatisticsStoreInfo(db *DaoDB, brandId, vendorId, storeList []int) ([]*Stat
}
// StatisticsOrderInfo 统计订单信息
func StatisticsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int, brandId, vendorId, storeList []int) ([]*StatisticsOrder, error) {
func StatisticsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int, brandId, vendorId, storeList []int, operateNum, brandOperate string) ([]*StatisticsOrder, error) {
parma := []interface{}{}
sql := ` SELECT count(g.vendor_order_id) count,g.status status ,sum(g.total_shop_money) total_shop_money FROM goods_order g `
if len(brandId) > model.NO {
sql += ` INNER JOIN store s ON IF(g.store_id <> 0,g.store_id,g.jx_store_id) = s.id AND s.brand_id IN (` + GenQuestionMarks(len(brandId)) + `)`
parma = append(parma, brandId)
}
sql := ` SELECT count(g.vendor_order_id) count,g.status status ,sum(g.total_shop_money) total_shop_money FROM goods_order g
INNER JOIN store s ON IF(g.store_id <> 0,g.store_id,g.jx_store_id) = s.id
`
sql += ` WHERE g.order_created_at >= ? AND g.order_created_at <= ?`
parma = append(parma, startTime, endTime)
@@ -1618,6 +1624,7 @@ func StatisticsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int, b
sql += ` AND g.vendor_id IN (` + GenQuestionMarks(len(vendorId)) + `)`
parma = append(parma, vendorId)
}
sql += ` GROUP BY g.status `
orderStatistics := make([]*StatisticsOrder, 0, 0)
if err := GetRows(db, &orderStatistics, sql, parma...); err != nil {
@@ -1627,14 +1634,11 @@ func StatisticsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int, b
}
// StatisticsAfsOrderInfo 售后单信息统计
func StatisticsAfsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int, brandId, vendorId, storeList []int) ([]*StatisticsOrder, error) {
func StatisticsAfsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int, brandId, vendorId, storeList []int, operateNum, brandOperate string) ([]*StatisticsOrder, error) {
parma := []interface{}{}
sql := `SELECT count(a.vendor_order_id) count,a.status status ,sum(a.afs_total_shop_money) total_shop_money FROM afs_order a `
if len(brandId) > model.NO {
sql += ` INNER JOIN store s ON IF(a.store_id <> 0,a.store_id,a.jx_store_id) = s.id AND s.brand_id IN (` + GenQuestionMarks(len(brandId)) + `)`
parma = append(parma, brandId)
}
sql := `SELECT count(a.vendor_order_id) count,a.status status ,sum(a.afs_total_shop_money) total_shop_money FROM afs_order a
INNER JOIN store s ON IF(a.store_id <> 0,a.store_id,a.jx_store_id) = s.id
`
sql += ` WHERE a.afs_created_at >= ? AND a.afs_created_at <= ?`
parma = append(parma, startTime, endTime)
@@ -1651,6 +1655,19 @@ func StatisticsAfsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int
parma = append(parma, vendorId)
}
if len(brandId) > model.NO {
sql += ` AND s.market_man_phone = ?`
parma = append(parma, operateNum)
}
if operateNum != "" {
sql += ` AND s.operator_phone2 = ?`
parma = append(parma, brandOperate)
}
if brandOperate != "" {
sql += `AND s.brand_id IN (` + GenQuestionMarks(len(brandId)) + `)`
parma = append(parma, brandId)
}
sql += ` GROUP BY a.status`
orderStatistics := make([]*StatisticsOrder, 0, 0)
if err := GetRows(db, &orderStatistics, sql, parma...); err != nil {
@@ -1660,7 +1677,7 @@ func StatisticsAfsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int
}
// StatisticsIncome 统计平台和市场收入
func StatisticsIncome(db *DaoDB, startTime, endTime time.Time, storeId int, brandId, vendorId, storeList []int) ([]*StatisticsIncomeInfo, error) {
func StatisticsIncome(db *DaoDB, startTime, endTime time.Time, storeId int, brandId, vendorId, storeList []int, operateNum, brandOperate string) ([]*StatisticsIncomeInfo, error) {
parma := []interface{}{}
sql := `
@@ -1683,10 +1700,19 @@ func StatisticsIncome(db *DaoDB, startTime, endTime time.Time, storeId int, bran
parma = append(parma, storeList)
}
if len(brandId) > model.NO {
sql += ` AND t3.market_man_phone = ?`
parma = append(parma, operateNum)
}
if operateNum != "" {
sql += ` AND t3.operator_phone2 = ?`
parma = append(parma, brandOperate)
}
if len(brandId) != model.NO {
sql += ` AND t3.brand_id IN (` + GenQuestionMarks(len(brandId)) + `)`
parma = append(parma, brandId)
}
if len(vendorId) != model.NO {
sql += ` AND t1.vendor_id IN (` + GenQuestionMarks(len(vendorId)) + `)`
parma = append(parma, vendorId)

View File

@@ -232,14 +232,12 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
case model.EarningTypeQuote: // 报价
for _, rd := range refundDetail {
for _, rdw := range rd.WmAppRetailForOrderPartRefundList {
globals.SugarLogger.Debugf("-----order.ShopPrice1:=%s,%d,%d", order.VendorOrderID, order.ShopPrice, order.NewEarningPrice)
switch rd.RefundType {
// 退款类型1-全额退款2-部分退款3-退差价5-按金额灵活退。
case 3: // 缺重退部分
if _, ok := orderSkuShopPriceList[utils.Str2Int(rdw.SkuID)]; ok {
order.ShopPrice = order.ShopPrice - utils.Float64TwoInt64((rdw.RefundPrice/rdw.FoodPrice)*float64(orderSkuShopPriceList[utils.Str2Int(rdw.SkuID)]))
order.EarningPrice = order.EarningPrice - utils.Float64TwoInt64((rdw.RefundPrice/rdw.FoodPrice)*float64(orderSkuEarningPriceList[utils.Str2Int(rdw.SkuID)]))
globals.SugarLogger.Debugf("-----order.ShopPrice2:=%s,%d,%d", order.VendorOrderID, order.ShopPrice, order.NewEarningPrice)
}
default: // 全退
if _, ok := orderSkuShopPriceList[utils.Str2Int(rdw.SkuID)]; ok {