huangjiajun pirms 1 gada
vecāks
revīzija
2631a3fbd2
9 mainītis faili ar 985 papildinājumiem un 280 dzēšanām
  1. +23
    -4
      db/db_b2c_ord.go
  2. +14
    -7
      db/db_mall_order.go
  3. +37
    -8
      db/db_o2o_ord.go
  4. +43
    -13
      db/db_order.go
  5. +170
    -0
      db/db_order_count.go
  6. +211
    -0
      db/db_order_relate.go
  7. +173
    -0
      db/db_order_sum.go
  8. +214
    -0
      db/db_order_team_relate.go
  9. +100
    -248
      hdl/hdl_upgrade.go

+ 23
- 4
db/db_b2c_ord.go Parādīt failu

@@ -2,23 +2,42 @@ package db

import (
"code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/db/model"
zhios_condition_statistics_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/utils"
zhios_condition_statistics_logx "code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/utils/logx"
"fmt"
"strings"
"xorm.io/xorm"
)

func B2cOrdByTime(Db *xorm.Engine, uid, buyType, state, stime, etime interface{}) (float64, error) {
total, err := Db.Where("uid = ? AND create_time > ? AND create_time < ?", uid, state, stime, etime).In("state", state).Sum(&model.B2cOrd{}, "cost_price")
func B2cOrdByTime(Db *xorm.Engine, uid, buyType, state, stime, etime interface{}, isSettle int) (float64, error) {

sess := Db.Where("uid = ? ", uid)
serializeStr := zhios_condition_statistics_utils.SerializeStr(state)
if isSettle == 1 {
sess = sess.And(" settle_time > ? AND settle_time < ?", stime, etime)
} else if strings.Contains(serializeStr, "1") {
sess = sess.And(" create_time > ? AND create_time < ?", stime, etime).In("state", state)
} else {
sess = sess.And(" confirm_time > ? AND confirm_time < ?", stime, etime).In("state", state)
}
total, err := sess.Sum(&model.B2cOrd{}, "cost_price")
fmt.Println(err)
fmt.Println(total)
if err != nil {
return 0, zhios_condition_statistics_logx.Error(err)
}
return total, nil

}

func B2cOrd(Db *xorm.Engine, uid, buyType, state interface{}) (float64, error) {
total, err := Db.Where("uid = ? ", uid).In("state", state).Sum(&model.B2cOrd{}, "cost_price")
func B2cOrd(Db *xorm.Engine, uid, buyType, state interface{}, isSettle int) (float64, error) {
sess := Db.Where("uid = ? ", uid)
if isSettle == 1 {
sess.And("settle_time is not null")
} else {
sess.In("state", state)
}
total, err := sess.Sum(&model.B2cOrd{}, "cost_price")
fmt.Println(err)
fmt.Println(total)
if err != nil {


+ 14
- 7
db/db_mall_order.go Parādīt failu

@@ -64,12 +64,14 @@ func MallOrderRelateListByTimeByState(Db *xorm.Engine, uid, state, startTime, en
return &idAmountMap, sum, nil
}

func MallOrdByTime(Db *xorm.Engine, uid, buyType, state, stime, etime interface{}, newState string) (float64, error) {
sess := Db.Where("uid = ? ", uid).In("state", state)
if newState == "1" {
sess = sess.And(" create_time > ? AND create_time < ?", stime, etime)
func MallOrdByTime(Db *xorm.Engine, uid, buyType, state, stime, etime interface{}, newState string, isSettle int) (float64, error) {
sess := Db.Where("uid = ? ", uid)
if isSettle == 1 {
sess = sess.And(" settle_time > ? AND settle_time < ?", stime, etime)
} else if newState == "1" {
sess = sess.And(" create_time > ? AND create_time < ?", stime, etime).In("state", state)
} else {
sess = sess.And(" confirm_time > ? AND confirm_time < ?", stime, etime)
sess = sess.And(" confirm_time > ? AND confirm_time < ?", stime, etime).In("state", state)
}
if zhios_condition_statistics_utils.AnyToInt64(buyType) > 0 {
sess.And("order_type=?", buyType)
@@ -139,8 +141,13 @@ func MallOrderRelateListByState(Db *xorm.Engine, uid, state interface{}) (*map[i
return &idAmountMap, sum, nil
}

func MallOrd(Db *xorm.Engine, uid, buyType, state interface{}) (float64, error) {
sess := Db.Where("uid = ? ", uid).In("state", state)
func MallOrd(Db *xorm.Engine, uid, buyType, state interface{}, isSettle int) (float64, error) {
sess := Db.Where("uid = ? ", uid)
if isSettle == 1 {
sess.And("settle_time is not null")
} else {
sess.In("state", state)
}
if zhios_condition_statistics_utils.AnyToInt64(buyType) > 0 {
sess.And("order_type=?", buyType)
}


+ 37
- 8
db/db_o2o_ord.go Parādīt failu

@@ -2,13 +2,24 @@ package db

import (
"code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/db/model"
zhios_condition_statistics_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/utils"
zhios_condition_statistics_logx "code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/utils/logx"
"fmt"
"strings"
"xorm.io/xorm"
)

func O2oOrdByTime(Db *xorm.Engine, uid, buyType, state, stime, etime interface{}) (float64, error) {
total, err := Db.Where("uid = ? AND create_time > ? AND create_time < ?", uid, stime, etime).In("state", state).Sum(&model.O2oOrd{}, "cost_price")
func O2oOrdByTime(Db *xorm.Engine, uid, buyType, state, stime, etime interface{}, isSettle int) (float64, error) {
sess := Db.Where("uid = ? ", uid)
serializeStr := zhios_condition_statistics_utils.SerializeStr(state)
if isSettle == 1 {
sess = sess.And(" settle_time > ? AND settle_time < ?", stime, etime)
} else if strings.Contains(serializeStr, "1") {
sess = sess.And(" create_time > ? AND create_time < ?", stime, etime).In("state", state)
} else {
sess = sess.And(" confirm_time > ? AND confirm_time < ?", stime, etime).In("state", state)
}
total, err := sess.Sum(&model.O2oOrd{}, "cost_price")
fmt.Println(err)
fmt.Println(total)
if err != nil {
@@ -16,8 +27,14 @@ func O2oOrdByTime(Db *xorm.Engine, uid, buyType, state, stime, etime interface{}
}
return total, nil
}
func O2oOrdPayToMerchantByTime(Db *xorm.Engine, uid, buyType, state, stime, etime interface{}) (float64, error) {
total, err := Db.Where("uid = ? AND state in (?) AND create_time > ? AND create_time < ?", uid, state, stime, etime).Sum(&model.O2oPayToMerchant{}, "actual_pay_amount")
func O2oOrdPayToMerchantByTime(Db *xorm.Engine, uid, buyType, state, stime, etime interface{}, isSettle int) (float64, error) {
sess := Db.Where("uid = ? AND state in (?)", uid, state)
if isSettle == 1 {
sess = sess.And(" settle_time > ? AND settle_time < ?", stime, etime)
} else {
sess = sess.And(" create_time > ? AND create_time < ?", stime, etime)
}
total, err := sess.Sum(&model.O2oPayToMerchant{}, "actual_pay_amount")
fmt.Println(err)
fmt.Println(total)
if err != nil {
@@ -26,8 +43,14 @@ func O2oOrdPayToMerchantByTime(Db *xorm.Engine, uid, buyType, state, stime, etim
return total, nil
}

func O2oOrd(Db *xorm.Engine, uid, buyType, state interface{}) (float64, error) {
total, err := Db.Where("uid = ? ", uid).In("state", state).Sum(&model.O2oOrd{}, "cost_price")
func O2oOrd(Db *xorm.Engine, uid, buyType, state interface{}, isSettle int) (float64, error) {
sess := Db.Where("uid = ?", uid)
if isSettle == 1 {
sess.And("settle_time is not null")
} else {
sess.In("state", state)
}
total, err := sess.Sum(&model.O2oOrd{}, "cost_price")
fmt.Println(err)
fmt.Println(total)
if err != nil {
@@ -35,8 +58,14 @@ func O2oOrd(Db *xorm.Engine, uid, buyType, state interface{}) (float64, error) {
}
return total, nil
}
func O2oOrdPayToMerchant(Db *xorm.Engine, uid, buyType, state interface{}) (float64, error) {
total, err := Db.Where("uid = ? AND state in (?) ", uid, state).Sum(&model.O2oPayToMerchant{}, "actual_pay_amount")
func O2oOrdPayToMerchant(Db *xorm.Engine, uid, buyType, state interface{}, isSettle int) (float64, error) {
sess := Db.Where("uid = ? ", uid)
if isSettle == 1 {
sess.And("settle_time is not null")
} else {
sess.And("state in (?)", state)
}
total, err := sess.Sum(&model.O2oPayToMerchant{}, "actual_pay_amount")
fmt.Println(err)
fmt.Println(total)
if err != nil {


+ 43
- 13
db/db_order.go Parādīt failu

@@ -5,6 +5,7 @@ import (
zhios_condition_statistics_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/utils"
zhios_condition_statistics_logx "code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/utils/logx"
"fmt"
"strings"
"time"
"xorm.io/xorm"
)
@@ -77,20 +78,40 @@ func OrderRelateListByTimeByState(Db *xorm.Engine, uid, state, startTime, endTim
}

// OrderListPaidPriceByUIDByOrderTypeByTime is 查询订单 by uid by time ,获取规定时间内的订单类型的订单消费金额
func OrderListPaidPriceByUIDByOrderTypeByTime(Db *xorm.Engine, uid, buyType, state, stime, etime interface{}) (float64, error) {
func OrderListPaidPriceByUIDByOrderTypeByTime(Db *xorm.Engine, uid, buyType, state, stime, etime interface{}, isSettle int) (float64, error) {

str := fmt.Sprintf("uid = %s AND order_type = %s AND ( state in (%s) or settle_at>0) AND create_at > %s AND create_at < %s",
zhios_condition_statistics_utils.AnyToString(uid), buyType, state, stime, etime)
fmt.Println("============test订单数=================")
fmt.Println(str)
total, _ := Db.Where("uid = ? AND confirm_at > ? AND confirm_at < ? and settle_at=0", uid, stime, etime).In("state", state).Sum(&model.OrdList{}, "paid_price")
total1, _ := Db.Where("uid = ? AND confirm_at > ? AND confirm_at < ? and settle_at>0", uid, stime, etime).Sum(&model.OrdList{}, "paid_price")
total2, _ := Db.Where("uid = ? AND created_at > ? AND created_at < ? and state=?", uid, stime, etime, 1).Sum(&model.PrivilegeCardOrd{}, "paid_price")
total4, _ := Db.Where("uid = ? AND create_time > ? AND create_time < ? and status=?", uid, time.Unix(zhios_condition_statistics_utils.AnyToInt64(stime), 0).Format("2006-01-02 15:04:05"), time.Unix(zhios_condition_statistics_utils.AnyToInt64(etime), 0).Format("2006-01-02 15:04:05"), "已付款").Sum(&model.RechargeOrder{}, "amount")
var total float64 = 0
if isSettle == 1 {
total1, _ := Db.Where("uid = ? AND settle_at > ? AND settle_at < ? and settle_at>0", uid, stime, etime).Sum(&model.OrdList{}, "paid_price")
total2, _ := Db.Where("uid = ? AND created_at > ? AND created_at < ? and state=?", uid, stime, etime, 1).Sum(&model.PrivilegeCardOrd{}, "paid_price")
total4, _ := Db.Where("uid = ? AND create_time > ? AND create_time < ? and status=?", uid, time.Unix(zhios_condition_statistics_utils.AnyToInt64(stime), 0).Format("2006-01-02 15:04:05"), time.Unix(zhios_condition_statistics_utils.AnyToInt64(etime), 0).Format("2006-01-02 15:04:05"), "已付款").Sum(&model.RechargeOrder{}, "amount")
total = total + total1 + total2 + total4
} else {
types := "confirm_at"
serializeStr := zhios_condition_statistics_utils.SerializeStr(state)
if strings.Contains(serializeStr, "3") {
types = "pvd_settle_at"
}
if strings.Contains(serializeStr, "1") || strings.Contains(serializeStr, "2") {
types = "confirm_at"
}
if strings.Contains(serializeStr, "0") {
types = "create_at"
}
total, _ = Db.Where("uid = ? AND ? > ? AND ? < ? and settle_at=0", uid, types, stime, types, etime).In("state", state).Sum(&model.OrdList{}, "paid_price")
total1, _ := Db.Where("uid = ? AND ? > ? AND ? < ? and settle_at>0", uid, types, stime, types, etime).Sum(&model.OrdList{}, "paid_price")
total2, _ := Db.Where("uid = ? AND created_at > ? AND created_at < ? and state=?", uid, stime, etime, 1).Sum(&model.PrivilegeCardOrd{}, "paid_price")
total4, _ := Db.Where("uid = ? AND create_time > ? AND create_time < ? and status=?", uid, time.Unix(zhios_condition_statistics_utils.AnyToInt64(stime), 0).Format("2006-01-02 15:04:05"), time.Unix(zhios_condition_statistics_utils.AnyToInt64(etime), 0).Format("2006-01-02 15:04:05"), "已付款").Sum(&model.RechargeOrder{}, "amount")
total = total + total1 + total2 + total4
}

fmt.Println(total)

return total + total1 + total2 + total4, nil
return total, nil
}

// OrderListCountByUIDByOrderTypeByTime is 查询订单 by uid by time ,获取规定时间内的订单类型的订单数
@@ -159,18 +180,27 @@ func OrderRelateListByState(Db *xorm.Engine, uid, state interface{}) (*map[int64
}

// OrderListPaidPriceByUIDByOrderTypeByTime is 查询订单 by uid by time ,获取规定时间内的订单类型的订单消费金额
func OrderListPaidPriceByUIDByOrderType(Db *xorm.Engine, uid, buyType, state interface{}) (float64, error) {

func OrderListPaidPriceByUIDByOrderType(Db *xorm.Engine, uid, buyType, state interface{}, isSettle int) (float64, error) {
str := fmt.Sprintf("uid = %s AND order_type = %s AND ( state in (%s) or settle_at>0) ",
zhios_condition_statistics_utils.AnyToString(uid), buyType, state)
fmt.Println("============test订单数=================")
fmt.Println(str)
total, _ := Db.Where("uid = ? and settle_at=0", uid).In("state", state).Sum(&model.OrdList{}, "paid_price")
total1, _ := Db.Where("uid = ? and settle_at>0", uid).Sum(&model.OrdList{}, "paid_price")
total2, _ := Db.Where("uid = ? and state=?", uid, 1).Sum(&model.PrivilegeCardOrd{}, "paid_price")
total4, _ := Db.Where("uid = ? and status=?", uid, "已付款").Sum(&model.RechargeOrder{}, "amount")
var total float64 = 0
if isSettle == 1 {
total, _ = Db.Where("uid = ? and settle_at>0", uid).Sum(&model.OrdList{}, "paid_price")
total2, _ := Db.Where("uid = ? and state=?", uid, 1).Sum(&model.PrivilegeCardOrd{}, "paid_price")
total4, _ := Db.Where("uid = ? and status=?", uid, "已付款").Sum(&model.RechargeOrder{}, "amount")
total = total + total2 + total4

} else {
total, _ = Db.Where("uid = ? and settle_at=0", uid).In("state", state).Sum(&model.OrdList{}, "paid_price")
total1, _ := Db.Where("uid = ? and settle_at>0", uid).Sum(&model.OrdList{}, "paid_price")
total2, _ := Db.Where("uid = ? and state=?", uid, 1).Sum(&model.PrivilegeCardOrd{}, "paid_price")
total4, _ := Db.Where("uid = ? and status=?", uid, "已付款").Sum(&model.RechargeOrder{}, "amount")
total = total + total1 + total2 + total4
}

fmt.Println(total)

return total + total1 + total2 + total4, nil
return total, nil
}

+ 170
- 0
db/db_order_count.go Parādīt failu

@@ -0,0 +1,170 @@
package db

import (
"code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/db/model"
zhios_condition_statistics_logx "code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/utils/logx"
"fmt"
"time"
"xorm.io/xorm"
)

// OrderListCountByUIDByOrderTypeByTime is 查询订单 by uid by time ,获取规定时间内的订单类型的订单数
func OrderListCountByUIDByOrderTypeByTimeNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (int64, error) {

state := []string{"1", "2", "3", "5"}
timeType := "confirm_at"
if task.OrdState == 1 { //已付款
timeType = "create_at"
state = []string{"0", "1", "2", "3", "5"}
}
timeType2 := "created_at"
timeType4 := "create_time"
if task.OrdState == 3 {
timeType = "settle_at"
timeType2 = "settle_at"
timeType4 = "settle_at"
}
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
etime := t
var total int64 = 0
sess := Db.Where("uid = ? and settle_at=0", uid)
sess1 := Db.Where("uid = ? and settle_at>0", uid)
sess2 := Db.Where("uid = ?", uid)
sess4 := Db.Where("uid = ?", uid)
if task.WithinDays > 0 {
sess.And(" ? > ? AND ? < ?", timeType, timeType, stime.Unix(), etime.Unix())
sess1.And(" ? > ? AND ? < ?", timeType, timeType, stime.Unix(), etime.Unix())
sess2.And(" ? > ? AND ? < ?", timeType2, timeType2, stime.Unix(), etime.Unix())
sess4.And(" ? > ? AND ? < ?", timeType4, timeType4, stime.Format("2006-01-02 15:04:05"), etime.Format("2006-01-02 15:04:05"))
}
if task.OrdState == 3 {
sess2.And("settle_at>0")
sess4.And("settle_at>0")
}
if task.OrdState != 3 {
total, _ = sess.In("state", state).Count(&model.OrdList{})
total3, _ := Db.Where("uid = ? AND settle_at > ? AND settle_at < ? and confirm_at=0", uid, stime, etime).Count(&model.OrdList{})
total += total3
}
total1, _ := sess1.Count(&model.OrdList{})
total2, _ := sess2.Where("state=?", uid, 1).Count(&model.PrivilegeCardOrd{})
total4, _ := sess4.Where("status=?", uid, "已付款").Count(&model.RechargeOrder{})

fmt.Println(total)

return total + total1 + total2 + total4, nil
}

func MallOrdWithCountNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (int64, error) {
state := []string{"2", "3"}
timeType := "confirm_time"
if task.OrdState == 1 { //已付款
timeType = "create_time"
state = []string{"1", "2", "3"}
}
if task.OrdState == 3 {
timeType = "settle_time"
}
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location()).Format("2006-01-02 15:04:05")
etime := t.Format("2006-01-02 15:04:05")
sess := Db.Where("uid = ? ", uid)
if task.WithinDays > 0 {
sess.And(" ? > ? AND ? < ?", timeType, timeType, stime, etime)
}
if task.OrdState == 3 {
sess.And("settle_time is not null")
}
if task.OrdState != 3 {
sess.In("state", state)
}

total, err := sess.Count(&model.MallOrd{})
fmt.Println(err)
fmt.Println(total)
if err != nil {
return 0, zhios_condition_statistics_logx.Error(err)
}
return total, nil
}
func O2oOrdWithCountNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (int64, error) {
state := []string{"2", "3"}
timeType := "confirm_time"
timeType1 := "create_time"
if task.OrdState == 1 { //已付款
timeType = "create_time"
state = []string{"1", "2", "3"}
}
if task.OrdState == 3 {
timeType = "settle_time"
timeType1 = "settle_time"

}
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location()).Format("2006-01-02 15:04:05")
etime := t.Format("2006-01-02 15:04:05")
sess := Db.Where("uid = ? ", uid)
if task.WithinDays > 0 {
sess.And(" ? > ? AND ? < ?", timeType, timeType, stime, etime)
}
if task.OrdState == 3 {
sess.And("settle_time is not null")
}
if task.OrdState != 3 {
sess.In("state", state)
}
total, err := sess.Count(&model.O2oOrd{})
fmt.Println(err)
fmt.Println(total)
if err != nil {
return 0, zhios_condition_statistics_logx.Error(err)
}
sess1 := Db.Where("uid = ? ", uid)
if task.WithinDays > 0 {
sess1.And(" ? > ? AND ? < ?", timeType1, timeType1, stime, etime)
}
if task.OrdState == 3 {
sess.And("settle_time is not null")
} else {
sess.And("state in (?)", "1,4")
}
total1, err1 := sess1.Count(&model.O2oPayToMerchant{})
if err1 != nil {
return total, zhios_condition_statistics_logx.Error(err)
}
total += total1
return total, nil
}
func B2cOrdWithCountNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (int64, error) {
state := []string{"2", "3"}
timeType := "confirm_time"
if task.OrdState == 1 { //已付款
timeType = "create_time"
state = []string{"1", "2", "3"}
}
if task.OrdState == 3 {
timeType = "settle_time"
}
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location()).Format("2006-01-02 15:04:05")
etime := t.Format("2006-01-02 15:04:05")
sess := Db.Where("uid = ? ", uid)
if task.WithinDays > 0 {
sess.And(" ? > ? AND ? < ?", timeType, timeType, stime, etime)
}
if task.OrdState == 3 {
sess.And("settle_time is not null")
}
if task.OrdState != 3 {
sess.In("state", state)
}

total, err := sess.Count(&model.B2cOrd{})
fmt.Println(err)
fmt.Println(total)
if err != nil {
return 0, zhios_condition_statistics_logx.Error(err)
}
return total, nil
}

+ 211
- 0
db/db_order_relate.go Parādīt failu

@@ -0,0 +1,211 @@
package db

import (
"code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/db/model"
zhios_condition_statistics_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/utils"
"fmt"
"time"
"xorm.io/xorm"
)

func OrderRelateListByTimeByStateNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (float64, error) {
timeStr := ""
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
etime := t
state := "1,2,3,5"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ("
timeStr += " (ol.confirm_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and ol.confirm_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (pco.created_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and pco.created_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (dol.create_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and dol.create_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (ro.create_time>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and ro.create_time<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (pso.create_time>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and pso.create_time<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " )"
}
if task.OrdState == 1 { //已付款
state = "0,1,2,3,5"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ("
timeStr += " (ol.create_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and ol.create_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (pco.created_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and pco.created_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (dol.create_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and dol.create_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (ro.create_time>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and ro.create_time<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (pso.create_time>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and pso.create_time<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " )"
}
}
if task.OrdState == 3 {
state = ""
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ("
timeStr += " (ol.settle_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and ol.settle_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (pco.settle_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and pco.settle_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (dol.settle_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and dol.settle_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (ro.settle_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and ro.settle_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (pso.settle_time>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and pso.settle_time<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " )"
}
timeStr += " and (ol.settle_at>0 or pco.settle_at>0 or dol.settle_at>0 or ro.settle_at>0 or pso.settle_time>0)"
}

var sum float64 = 0

// 统计预估 (预估包含结算部分且是有效订单)
sqlTpl := `SELECT cast(SUM(LEFT(olr.amount,LENGTH(olr.amount)-2)) as decimal(50,4)) AS amount
FROM ord_list_relate olr
LEFT JOIN ord_list ol ON olr.oid = ol.ord_id
LEFT JOIN privilege_card_ord pco ON olr.oid =pco.ord_id
LEFT JOIN duoyou_ord_list dol ON olr.oid =dol.oid
LEFT JOIN recharge_order ro ON olr.oid =ro.oid
LEFT JOIN playlet_sale_order pso ON olr.oid =pso.custom_oid
WHERE olr.uid = ? and olr.level=0 %s AND (ol.state in(%s) or pco.state=1 or dol.id>0 or ro.status<>'已退款' or pso.status<>'订单退款');
`
sqlTpl = fmt.Sprintf(sqlTpl, timeStr, state)
todayResult, err := QueryNativeString(Db, sqlTpl, uid)
if err == nil && len(todayResult) > 0 {
sum = zhios_condition_statistics_utils.StrToFloat64(todayResult[0]["amount"])
}

return sum, nil
}

func MallOrderRelateListByTimeByStateNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (float64, error) {
timeStr := ""
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
etime := t
state := "1,2,3"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ol.confirm_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.confirm_time<='" + etime.Format("2006-01-02 15:04:05") + "'"
}
if task.OrdState == 1 { //已付款
state = "0,1,2,3,5"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ol.create_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.create_time<='" + etime.Format("2006-01-02 15:04:05") + "'"
}
}
if task.OrdState == 3 {
state = ""
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ol.settle_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.settle_time<='" + etime.Format("2006-01-02 15:04:05") + "'"
}
timeStr += " and ol.settle_time is not null"
}

var sum float64 = 0

// 统计预估 (预估包含结算部分且是有效订单)
sqlTpl := `SELECT cast(SUM(olr.amount) as decimal(50,6)) AS amount
FROM mall_ord_list_relate olr
LEFT JOIN mall_ord ol ON olr.oid = ol.ord_id
WHERE olr.uid = ? and olr.level=0 %s AND ol.state IN (%s);
`
sqlTpl = fmt.Sprintf(sqlTpl, timeStr, state)
todayResult, err := QueryNativeString(Db, sqlTpl, uid)
if err == nil && len(todayResult) > 0 {
sum = zhios_condition_statistics_utils.StrToFloat64(todayResult[0]["amount"])
}

return sum, nil
}
func O2oOrderRelateListByTimeByStateNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (float64, error) {
timeStr := ""
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
etime := t
state := "1,2,3"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ("
timeStr += " (ol.confirm_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.confirm_time<='" + etime.Format("2006-01-02 15:04:05") + "')"
timeStr += " (optm.create_time>='" + stime.Format("2006-01-02 15:04:05") + "' and optm.create_time<='" + etime.Format("2006-01-02 15:04:05") + "')"
timeStr += " )"
}
if task.OrdState == 1 { //已付款
state = "0,1,2,3,5"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ("
timeStr += " (ol.create_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.create_time<='" + etime.Format("2006-01-02 15:04:05") + "')"
timeStr += " (optm.create_time>='" + stime.Format("2006-01-02 15:04:05") + "' and optm.create_time<='" + etime.Format("2006-01-02 15:04:05") + "')"
timeStr += " )"
}
}
if task.OrdState == 3 {
state = ""
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ("
timeStr += " (ol.settle_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.settle_time<='" + etime.Format("2006-01-02 15:04:05") + "')"
timeStr += " (optm.settle_time>='" + stime.Format("2006-01-02 15:04:05") + "' and optm.settle_time<='" + etime.Format("2006-01-02 15:04:05") + "')"
timeStr += " )"
}
timeStr += " and (ol.settle_time is not null or optm.settle_time is not null)"
}

var sum float64 = 0

// 统计预估 (预估包含结算部分且是有效订单)
sqlTpl := `SELECT cast(SUM(olr.amount) as decimal(50,6)) AS amount
FROM mall_ord_list_relate olr
LEFT JOIN o2o_ord ol ON olr.oid = ol.ord_id
LEFT JOIN o2o_pay_to_merchant optm ON optm.pay_id = olr.oid
WHERE olr.uid = ? and olr.level=0 %s AND (ol.state IN (%s) or optm.state>=1);
`
sqlTpl = fmt.Sprintf(sqlTpl, timeStr, state)
todayResult, err := QueryNativeString(Db, sqlTpl, uid)
if err == nil && len(todayResult) > 0 {
sum = zhios_condition_statistics_utils.StrToFloat64(todayResult[0]["amount"])
}

return sum, nil
}
func B2cOrderRelateListByTimeByStateNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (float64, error) {
timeStr := ""
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
etime := t
state := "1,2,3"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ol.confirm_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.confirm_time<='" + etime.Format("2006-01-02 15:04:05") + "'"
}
if task.OrdState == 1 { //已付款
state = "0,1,2,3,5"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ol.create_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.create_time<='" + etime.Format("2006-01-02 15:04:05") + "'"
}
}
if task.OrdState == 3 {
state = ""
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ol.settle_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.settle_time<='" + etime.Format("2006-01-02 15:04:05") + "'"
}
timeStr += " and ol.settle_time is not null"
}

var sum float64 = 0

// 统计预估 (预估包含结算部分且是有效订单)
sqlTpl := `SELECT cast(SUM(olr.amount) as decimal(50,6)) AS amount
FROM mall_ord_list_relate olr
LEFT JOIN b2c_ord ol ON olr.oid = ol.ord_id
WHERE olr.uid = ? and olr.level=0 %s AND ol.state IN (%s);
`
sqlTpl = fmt.Sprintf(sqlTpl, timeStr, state)
todayResult, err := QueryNativeString(Db, sqlTpl, uid)
if err == nil && len(todayResult) > 0 {
sum = zhios_condition_statistics_utils.StrToFloat64(todayResult[0]["amount"])
}

return sum, nil
}

+ 173
- 0
db/db_order_sum.go Parādīt failu

@@ -0,0 +1,173 @@
package db

import (
"code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/db/model"
zhios_condition_statistics_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/utils"
zhios_condition_statistics_logx "code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/utils/logx"
"fmt"
"time"
"xorm.io/xorm"
)

// OrderListCountByUIDByOrderTypeByTime is 查询订单 by uid by time ,获取规定时间内的订单类型的订单数
func OrderListSumByUIDByOrderTypeByTimeNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (float64, error) {
state := []string{"1", "2", "3", "5"}
timeType := "confirm_at"
if task.OrdState == 1 { //已付款
timeType = "create_at"
state = []string{"0", "1", "2", "3", "5"}
}
timeType2 := "created_at"
timeType4 := "create_time"
if task.OrdState == 3 {
timeType = "settle_at"
timeType2 = "settle_at"
timeType4 = "settle_at"
}
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
etime := t
var total float64 = 0
sess := Db.Where("uid = ? and settle_at=0", uid)
sess1 := Db.Where("uid = ? and settle_at>0", uid)
sess2 := Db.Where("uid = ?", uid)
sess4 := Db.Where("uid = ?", uid)
if task.WithinDays > 0 {
sess.And(" ? > ? AND ? < ?", timeType, timeType, stime.Unix(), etime.Unix())
sess1.And(" ? > ? AND ? < ?", timeType, timeType, stime.Unix(), etime.Unix())
sess2.And(" ? > ? AND ? < ?", timeType2, timeType2, stime.Unix(), etime.Unix())
sess4.And(" ? > ? AND ? < ?", timeType4, timeType4, stime.Format("2006-01-02 15:04:05"), etime.Format("2006-01-02 15:04:05"))
}
if task.OrdState == 3 {
sess2.And("settle_at>0")
sess4.And("settle_at>0")
}
if task.OrdState != 3 {
total, _ = sess.In("state", state).Sum(&model.OrdList{}, "paid_price")
total3, _ := Db.Where("uid = ? AND settle_at > ? AND settle_at < ? and confirm_at=0", uid, stime, etime).Sum(&model.OrdList{}, "paid_price")
total += total3
}
total1, _ := sess1.Sum(&model.OrdList{}, "paid_price")
total2, _ := sess2.Where("state=?", uid, 1).Sum(&model.PrivilegeCardOrd{}, "paid_price")
total4, _ := sess4.Where("status=?", uid, "已付款").Sum(&model.RechargeOrder{}, "amount")

fmt.Println(total)

return total + total1 + total2 + total4, nil
}

func MallOrdWithSumNew(Db *xorm.Engine, uid interface{}, orderType int, task *model.UserLevelUpgradeTask) (float64, error) {
state := []string{"2", "3"}
timeType := "confirm_time"
if task.OrdState == 1 { //已付款
timeType = "create_time"
state = []string{"1", "2", "3"}
}
if task.OrdState == 3 {
timeType = "settle_time"
}
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location()).Format("2006-01-02 15:04:05")
etime := t.Format("2006-01-02 15:04:05")
sess := Db.Where("uid = ? ", uid)
if zhios_condition_statistics_utils.AnyToInt64(orderType) > 0 {
sess.And("order_type=?", orderType)
}
if task.WithinDays > 0 {
sess.And(" ? > ? AND ? < ?", timeType, timeType, stime, etime)
}
if task.OrdState == 3 {
sess.And("settle_time is not null")
}
if task.OrdState != 3 {
sess.In("state", state)
}

total, err := sess.Sum(&model.MallOrd{}, "cost_price")
fmt.Println(err)
fmt.Println(total)
if err != nil {
return 0, zhios_condition_statistics_logx.Error(err)
}
return total, nil
}
func O2oOrdWithSumNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (float64, error) {
state := []string{"2", "3"}
timeType := "confirm_time"
timeType1 := "create_time"
if task.OrdState == 1 { //已付款
timeType = "create_time"
state = []string{"1", "2", "3"}
}
if task.OrdState == 3 {
timeType = "settle_time"
timeType1 = "settle_time"

}
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location()).Format("2006-01-02 15:04:05")
etime := t.Format("2006-01-02 15:04:05")
sess := Db.Where("uid = ? ", uid)
if task.WithinDays > 0 {
sess.And(" ? > ? AND ? < ?", timeType, timeType, stime, etime)
}
if task.OrdState == 3 {
sess.And("settle_time is not null")
}
if task.OrdState != 3 {
sess.In("state", state)
}
total, err := sess.Sum(&model.O2oOrd{}, "cost_price")
fmt.Println(err)
fmt.Println(total)
if err != nil {
return 0, zhios_condition_statistics_logx.Error(err)
}
sess1 := Db.Where("uid = ? ", uid)
if task.WithinDays > 0 {
sess1.And(" ? > ? AND ? < ?", timeType1, timeType1, stime, etime)
}
if task.OrdState == 3 {
sess.And("settle_time is not null")
} else {
sess.And("state in (?)", "1,4")
}
total1, err1 := sess1.Sum(&model.O2oPayToMerchant{}, "actual_pay_amount")
if err1 != nil {
return total, zhios_condition_statistics_logx.Error(err)
}
total += total1
return total, nil
}
func B2cOrdWithSumNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (float64, error) {
state := []string{"2", "3"}
timeType := "confirm_time"
if task.OrdState == 1 { //已付款
timeType = "create_time"
state = []string{"1", "2", "3"}
}
if task.OrdState == 3 {
timeType = "settle_time"
}
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location()).Format("2006-01-02 15:04:05")
etime := t.Format("2006-01-02 15:04:05")
sess := Db.Where("uid = ? ", uid)
if task.WithinDays > 0 {
sess.And(" ? > ? AND ? < ?", timeType, timeType, stime, etime)
}
if task.OrdState == 3 {
sess.And("settle_time is not null")
}
if task.OrdState != 3 {
sess.In("state", state)
}

total, err := sess.Sum(&model.B2cOrd{}, "cost_price")
fmt.Println(err)
fmt.Println(total)
if err != nil {
return 0, zhios_condition_statistics_logx.Error(err)
}
return total, nil
}

+ 214
- 0
db/db_order_team_relate.go Parādīt failu

@@ -0,0 +1,214 @@
package db

import (
"code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/db/model"
zhios_condition_statistics_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git/utils"
"fmt"
"time"
"xorm.io/xorm"
)

func OrderTeamRelateListByTimeByStateNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (float64, error) {
timeStr := ""
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
etime := t
state := "1,2,3,5"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ("
timeStr += " (ol.confirm_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and ol.confirm_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (pco.created_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and pco.created_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (dol.create_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and dol.create_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (ro.create_time>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and ro.create_time<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (pso.create_time>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and pso.create_time<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " )"
}
if task.OrdState == 1 { //已付款
state = "0,1,2,3,5"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ("
timeStr += " (ol.create_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and ol.create_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (pco.created_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and pco.created_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (dol.create_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and dol.create_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (ro.create_time>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and ro.create_time<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (pso.create_time>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and pso.create_time<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " )"
}
}
if task.OrdState == 3 {
state = ""
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ("
timeStr += " (ol.settle_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and ol.settle_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (pco.settle_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and pco.settle_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (dol.settle_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and dol.settle_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (ro.settle_at>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and ro.settle_at<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " or (pso.settle_time>=" + zhios_condition_statistics_utils.Int64ToStr(stime.Unix()) + " and pso.settle_time<=" + zhios_condition_statistics_utils.Int64ToStr(etime.Unix()) + ")"
timeStr += " )"
}
timeStr += " and (ol.settle_at>0 or pco.settle_at>0 or dol.settle_at>0 or ro.settle_at>0 or pso.settle_time>0)"
}

var sum float64 = 0

// 统计预估 (预估包含结算部分且是有效订单)
sqlTpl := `SELECT SUM(ol.paid_price)+SUM(pco.paid_price)+SUM(ro.amount)+SUM(pso.amount) AS amount
FROM ord_list_relate olr
LEFT JOIN ord_list ol ON olr.oid = ol.ord_id
LEFT JOIN privilege_card_ord pco ON olr.oid =pco.ord_id
LEFT JOIN duoyou_ord_list dol ON olr.oid =dol.oid
LEFT JOIN recharge_order ro ON olr.oid =ro.oid
LEFT JOIN playlet_sale_order pso ON olr.oid =pso.custom_oid
WHERE olr.uid = ? and olr.level>0 %s AND (ol.state in(%s) or pco.state=1 or dol.id>0 or ro.status<>'已退款' or pso.status<>'订单退款');
`
sqlTpl = fmt.Sprintf(sqlTpl, timeStr, state)
todayResult, err := QueryNativeString(Db, sqlTpl, uid)
if err == nil && len(todayResult) > 0 {
sum = zhios_condition_statistics_utils.StrToFloat64(todayResult[0]["amount"])
}

return sum, nil
}

func MallOrderTeamRelateListByTimeByStateNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (float64, error) {
timeStr := ""
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
etime := t
state := "1,2,3"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ol.confirm_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.confirm_time<='" + etime.Format("2006-01-02 15:04:05") + "'"
}
if task.OrdState == 1 { //已付款
state = "0,1,2,3,5"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ol.create_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.create_time<='" + etime.Format("2006-01-02 15:04:05") + "'"
}
}
if task.OrdState == 3 {
state = ""
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ol.settle_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.settle_time<='" + etime.Format("2006-01-02 15:04:05") + "'"
}
timeStr += " and ol.settle_time is not null"
}

var sum float64 = 0

// 统计预估 (预估包含结算部分且是有效订单)
sqlTpl := `SELECT SUM(ol.cost_price) AS amount
FROM mall_ord_list_relate olr
LEFT JOIN mall_ord ol ON olr.oid = ol.ord_id
WHERE olr.uid = ? and olr.level>0 %s AND ol.state IN (%s);
`
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"8", "9"}) {
timeStr += " and ol.order_type=" + zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd)
}
sqlTpl = fmt.Sprintf(sqlTpl, timeStr, state)
todayResult, err := QueryNativeString(Db, sqlTpl, uid)
if err == nil && len(todayResult) > 0 {
sum = zhios_condition_statistics_utils.StrToFloat64(todayResult[0]["amount"])
}

return sum, nil
}
func O2oOrderTeamRelateListByTimeByStateNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (float64, error) {
timeStr := ""
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
etime := t
state := "1,2,3"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ("
timeStr += " (ol.confirm_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.confirm_time<='" + etime.Format("2006-01-02 15:04:05") + "')"
timeStr += " (optm.create_time>='" + stime.Format("2006-01-02 15:04:05") + "' and optm.create_time<='" + etime.Format("2006-01-02 15:04:05") + "')"
timeStr += " )"
}
if task.OrdState == 1 { //已付款
state = "0,1,2,3,5"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ("
timeStr += " (ol.create_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.create_time<='" + etime.Format("2006-01-02 15:04:05") + "')"
timeStr += " (optm.create_time>='" + stime.Format("2006-01-02 15:04:05") + "' and optm.create_time<='" + etime.Format("2006-01-02 15:04:05") + "')"
timeStr += " )"
}
}
if task.OrdState == 3 {
state = ""
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ("
timeStr += " (ol.settle_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.settle_time<='" + etime.Format("2006-01-02 15:04:05") + "')"
timeStr += " (optm.settle_time>='" + stime.Format("2006-01-02 15:04:05") + "' and optm.settle_time<='" + etime.Format("2006-01-02 15:04:05") + "')"
timeStr += " )"
}
timeStr += " and (ol.settle_time is not null or optm.settle_time is not null)"
}

var sum float64 = 0

// 统计预估 (预估包含结算部分且是有效订单)
sqlTpl := `SELECT SUM(ol.cost_price)+SUM(optm.actual_pay_amount) AS amount
FROM mall_ord_list_relate olr
LEFT JOIN o2o_ord ol ON olr.oid = ol.ord_id
LEFT JOIN o2o_pay_to_merchant optm ON optm.pay_id = olr.oid
WHERE olr.uid = ? and olr.level>0 %s AND (ol.state IN (%s) or optm.state>=1);
`
sqlTpl = fmt.Sprintf(sqlTpl, timeStr, state)
todayResult, err := QueryNativeString(Db, sqlTpl, uid)
if err == nil && len(todayResult) > 0 {
sum = zhios_condition_statistics_utils.StrToFloat64(todayResult[0]["amount"])
}

return sum, nil
}
func B2cOrderTeamRelateListByTimeByStateNew(Db *xorm.Engine, uid interface{}, task *model.UserLevelUpgradeTask) (float64, error) {
timeStr := ""
t := time.Now()
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
etime := t
state := "1,2,3"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ol.confirm_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.confirm_time<='" + etime.Format("2006-01-02 15:04:05") + "'"
}
if task.OrdState == 1 { //已付款
state = "0,1,2,3,5"
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ol.create_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.create_time<='" + etime.Format("2006-01-02 15:04:05") + "'"
}
}
if task.OrdState == 3 {
state = ""
timeStr = ""
if task.WithinDays > 0 {
timeStr += " and ol.settle_time>='" + stime.Format("2006-01-02 15:04:05") + "' and ol.settle_time<='" + etime.Format("2006-01-02 15:04:05") + "'"
}
timeStr += " and ol.settle_time is not null"
}

var sum float64 = 0

// 统计预估 (预估包含结算部分且是有效订单)
sqlTpl := `SELECT SUM(ol.cost_price) AS amount
FROM mall_ord_list_relate olr
LEFT JOIN b2c_ord ol ON olr.oid = ol.ord_id
WHERE olr.uid = ? and olr.level>0 %s AND ol.state IN (%s);
`
sqlTpl = fmt.Sprintf(sqlTpl, timeStr, state)
todayResult, err := QueryNativeString(Db, sqlTpl, uid)
if err == nil && len(todayResult) > 0 {
sum = zhios_condition_statistics_utils.StrToFloat64(todayResult[0]["amount"])
}

return sum, nil
}

+ 100
- 248
hdl/hdl_upgrade.go Parādīt failu

@@ -369,226 +369,88 @@ func GetFinishCount(blockStarChain string, engine *xorm.Engine, uid interface{},
return zhios_condition_statistics_utils.Float64ToStr(money), hasPay, payOrdId
case 1:
// 累计自购数
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location()).Unix()
etime := t.Unix()
mallStime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
mallEtime := t
var total int64
var err error
//联盟结算后的
if task.WithinDays <= 0 {
total, err = db.OrderListCountByUIDByOrderType(engine, uid, 0, []string{"3", "5"})
if err != nil {
return "", hasPay, payOrdId
}
//确认收货的才算
mallTotal, err := db.MallOrdWithCount(engine, uid, 0, []string{"3"})
if err != nil {
return zhios_condition_statistics_utils.Int64ToStr(total), hasPay, payOrdId
}
total += mallTotal
} else {
total, err = db.OrderListCountByUIDByOrderTypeByTime(engine, uid, 0, []string{"3", "5"}, stime, etime)
if err != nil {
return "", hasPay, payOrdId
}
//确认收货的才算
mallTotal, err := db.MallOrdByTimeWithCount(engine, uid, 0, []string{"3"}, mallStime.Format("2006-01-02 15:04:05"), mallEtime.Format("2006-01-02 15:04:05"))
if err != nil {
return zhios_condition_statistics_utils.Int64ToStr(total), hasPay, payOrdId
}
total += mallTotal
total, err := db.OrderListCountByUIDByOrderTypeByTimeNew(engine, uid, task)
if err != nil {
return "", hasPay, payOrdId
}

mallTotal, err := db.MallOrdWithCountNew(engine, uid, task)
if err != nil {
return zhios_condition_statistics_utils.Int64ToStr(total), hasPay, payOrdId
}
total += mallTotal
o2oTotal, err := db.O2oOrdWithCountNew(engine, uid, task)
if err != nil {
return zhios_condition_statistics_utils.Int64ToStr(total), hasPay, payOrdId
}
total += o2oTotal
b2cTotal, err := db.B2cOrdWithCountNew(engine, uid, task)
if err != nil {
return zhios_condition_statistics_utils.Int64ToStr(total), hasPay, payOrdId
}
total += b2cTotal
return zhios_condition_statistics_utils.Int64ToStr(total), hasPay, payOrdId
case 10:
// 累计自购消费金额

var total float64 = 0
var err error
if task.WithinDays <= 0 {
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "1"}) {
state := []string{"3", "5"}
if task.OrdState == 1 { //已付款
state = []string{"0", "1", "2", "3", "5"}
}
if task.OrdState == 2 { //已完成
state = []string{"1", "2", "3", "5"}
}
total, err = db.OrderListPaidPriceByUIDByOrderType(engine, uid, 0, state)
if err != nil {
return "", hasPay, payOrdId
}
}
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "2", "8", "9"}) {
orderType := 0
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"8", "9"}) {
orderType = task.TaskTypePvd
}
state := []string{"3"}
if task.OrdState == 1 { //已付款
state = []string{"1", "2", "3"}
}
if task.OrdState == 2 { //已完成
state = []string{"3"}
}
//确认收货的才算
mallTotal, err := db.MallOrd(engine, uid, orderType, state)
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(total), hasPay, payOrdId
}
total += mallTotal
}
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "3"}) {
state := []string{"3"}
if task.OrdState == 1 { //已付款
state = []string{"1", "2", "3"}
}
if task.OrdState == 2 { //已完成
state = []string{"3"}
}
//确认收货的才算
o2oTotal, err := db.O2oOrd(engine, uid, 0, state)
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(total), hasPay, payOrdId
}
total += o2oTotal
o2oTotal1, err := db.O2oOrdPayToMerchant(engine, uid, 0, "1,4")
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(total), hasPay, payOrdId
}
total += o2oTotal1
}
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "4"}) {
state := []string{"3"}
if task.OrdState == 1 { //已付款
state = []string{"1", "2", "3"}
}
if task.OrdState == 2 { //已完成
state = []string{"3"}
}
//确认收货的才算
b2cTotal, err := db.B2cOrd(engine, uid, 0, state)
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(total), hasPay, payOrdId
}
total += b2cTotal
}
} else {
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "1"}) {
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location()).Unix()
etime := t.Unix()
state := []string{"3", "5"}
if task.OrdState == 1 { //已付款
state = []string{"0", "1", "2", "3", "5"}
}
if task.OrdState == 2 { //已完成
state = []string{"1", "2", "3", "5"}
}
total, err = db.OrderListPaidPriceByUIDByOrderTypeByTime(engine, uid, 0, state, stime, etime)
if err != nil {
return "", hasPay, payOrdId
}
}
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "2", "8", "9"}) {
mallStime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
mallEtime := t
orderType := 0
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"8", "9"}) {
orderType = task.TaskTypePvd
}
state := []string{"3"}
if task.OrdState == 1 { //已付款
state = []string{"1", "2", "3"}
}
if task.OrdState == 2 { //已完成
state = []string{"3"}
}
//确认收货的才算
mallTotal, err := db.MallOrdByTime(engine, uid, orderType, state, mallStime.Format("2006-01-02 15:04:05"), mallEtime.Format("2006-01-02 15:04:05"), zhios_condition_statistics_utils.IntToStr(task.OrdState))
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(total), hasPay, payOrdId
}
total += mallTotal
}
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "3"}) {
mallStime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
mallEtime := t
state := []string{"3"}
if task.OrdState == 1 { //已付款
state = []string{"1", "2", "3"}
}
if task.OrdState == 2 { //已完成
state = []string{"3"}
}
//确认收货的才算
o2oTotal, err := db.O2oOrdByTime(engine, uid, 0, state, mallStime.Format("2006-01-02 15:04:05"), mallEtime.Format("2006-01-02 15:04:05"))
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(total), hasPay, payOrdId
}
total += o2oTotal
o2oTotal1, err := db.O2oOrdPayToMerchantByTime(engine, uid, 0, "1,4", mallStime.Format("2006-01-02 15:04:05"), mallEtime.Format("2006-01-02 15:04:05"))
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(total), hasPay, payOrdId
}
total += o2oTotal1
}
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "4"}) {
mallStime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
mallEtime := t
state := []string{"3"}
if task.OrdState == 1 { //已付款
state = []string{"1", "2", "3"}
}
if task.OrdState == 2 { //已完成
state = []string{"3"}
}
//确认收货的才算
b2cTotal, err := db.B2cOrdByTime(engine, uid, 0, state, mallStime.Format("2006-01-02 15:04:05"), mallEtime.Format("2006-01-02 15:04:05"))
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(total), hasPay, payOrdId
}
total += b2cTotal
}
}
return zhios_condition_statistics_utils.Float64ToStr(zhios_condition_statistics_utils.FloatFormat(total, 2)), hasPay, payOrdId

case 2:
// 累计已结算佣金
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location()).Unix()
etime := t.Unix()
mallStime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location())
mallEtime := t
var sum float64
if task.WithinDays <= 0 {
// 用户分佣的订单
idAmountMap, err := db.OrderRelateListByState(engine, uid, "3,5")
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "1"}) {
total, err = db.OrderListSumByUIDByOrderTypeByTimeNew(engine, uid, task)
if err != nil {
return "", hasPay, payOrdId
}
for _, item := range *idAmountMap {
sum += item
}
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "2", "8", "9"}) {
orderType := 0
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"8", "9"}) {
orderType = task.TaskTypePvd
}
_, mallSum, err := db.MallOrderRelateListByState(engine, uid, 3)
secondTotal, err := db.MallOrdWithSumNew(engine, uid, orderType, task)
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(sum), hasPay, payOrdId
return zhios_condition_statistics_utils.Float64ToStr(total), hasPay, payOrdId
}
sum += mallSum
} else {
// 用户分佣的订单
idAmountMap, err := db.OrderRelateListByTimeByState(engine, uid, "3,5", stime, etime)
total += secondTotal
}
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "3"}) {
secondTotal, err := db.O2oOrdWithSumNew(engine, uid, task)
if err != nil {
return "", hasPay, payOrdId
return zhios_condition_statistics_utils.Float64ToStr(total), hasPay, payOrdId
}
for _, item := range *idAmountMap {
sum += item
}
_, mallSum, err := db.MallOrderRelateListByTimeByState(engine, uid, 3, mallStime, mallEtime)
total += secondTotal
}
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "4"}) {
secondTotal, err := db.B2cOrdWithSumNew(engine, uid, task)
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(sum), hasPay, payOrdId
return zhios_condition_statistics_utils.Float64ToStr(total), hasPay, payOrdId
}
sum += mallSum
total += secondTotal
}

return zhios_condition_statistics_utils.Float64ToStr(zhios_condition_statistics_utils.FloatFormat(total, 2)), hasPay, payOrdId

case 2:
// 累计自购佣金
sum, err := db.OrderRelateListByTimeByStateNew(engine, uid, task)
if err != nil {
return "", hasPay, payOrdId
}

mallSum, err := db.MallOrderRelateListByTimeByStateNew(engine, uid, task)
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(sum), hasPay, payOrdId
}
sum += mallSum
o2oSum, err := db.O2oOrderRelateListByTimeByStateNew(engine, uid, task)
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(sum), hasPay, payOrdId
}
sum += o2oSum
b2cSum, err := db.B2cOrderRelateListByTimeByStateNew(engine, uid, task)
if err != nil {
return zhios_condition_statistics_utils.Float64ToStr(sum), hasPay, payOrdId
}
sum += b2cSum

return zhios_condition_statistics_utils.Float64ToStr(sum), hasPay, payOrdId
case 3:
// 累计直推人数
@@ -708,6 +570,34 @@ func GetFinishCount(blockStarChain string, engine *xorm.Engine, uid interface{},
sql := fmt.Sprintf(sqlTpl, condStr)
fmt.Println(sql)

results, err := db.QueryNativeString(engine, sql)
if err != nil {

return "", hasPay, payOrdId
}
count := ""
if len(results) > 0 {
count = zhios_condition_statistics_utils.AnyToString(results[0]["count"])
}
return count, hasPay, payOrdId
case 21:
// 累计所有下级
stime := time.Date(t.Year(), t.Month(), t.Day()-task.WithinDays, t.Hour(), 0, 0, 0, t.Location()).Format("2006-1-02 15:04:05")
etime := t.Format("2006-1-02 15:04:05")

sqlTpl := `SELECT count(*) as count
FROM user_relate as ur
LEFT JOIN user as u ON u.uid=ur.uid
WHERE %s;`
var condStr string
if task.WithinDays <= 0 {
condStr = fmt.Sprintf("ur.parent_uid=%s ", zhios_condition_statistics_utils.AnyToString(uid))
} else {
condStr = fmt.Sprintf("ur.parent_uid=%s AND u.create_at>'%s' AND u.create_at<'%s'", zhios_condition_statistics_utils.AnyToString(uid), stime, etime)
}
sql := fmt.Sprintf(sqlTpl, condStr)
fmt.Println(sql)

results, err := db.QueryNativeString(engine, sql)
if err != nil {

@@ -721,60 +611,22 @@ func GetFinishCount(blockStarChain string, engine *xorm.Engine, uid interface{},
case 12: //累计团队消费金额
var total float64 = 0
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "2", "8", "9"}) {
sqlTpl := `SELECT SUM(ol.cost_price) AS amount
FROM mall_ord_list_relate olr
JOIN mall_ord ol ON olr.oid = ol.ord_id
WHERE olr.uid = ?
AND ol.state =3 and olr.level>0 %s;
`
str := ""
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"8", "9"}) {
str += " and ol.order_type=" + zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd)
}
sqlTpl = fmt.Sprintf(sqlTpl, str)
result, err := db.QueryNativeString(engine, sqlTpl, uid, str)
if err == nil {
total += zhios_condition_statistics_utils.StrToFloat64(result[0]["amount"])
}
secondTotal, _ := db.MallOrderTeamRelateListByTimeByStateNew(engine, uid, task)
total += secondTotal
}
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "3"}) {

o2oSqlTpl := `SELECT SUM(ol.cost_price) AS amount
FROM o2o_ord_list_relate olr
JOIN o2o_ord ol ON olr.oid = ol.ord_id
WHERE olr.uid = ?
AND ol.state =3 and olr.level>0;
`
o2oResult, err := db.QueryNativeString(engine, o2oSqlTpl, uid)
if err == nil {
total += zhios_condition_statistics_utils.StrToFloat64(o2oResult[0]["amount"])
}
secondTotal, _ := db.O2oOrderTeamRelateListByTimeByStateNew(engine, uid, task)
total += secondTotal
}
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "4"}) {

b2cSqlTpl := `SELECT SUM(ol.cost_price) AS amount
FROM b2c_ord_list_relate olr
JOIN b2c_ord ol ON olr.oid = ol.ord_id
WHERE olr.uid = ?
AND ol.state =3 and olr.level>0;
`
b2cResult, err := db.QueryNativeString(engine, b2cSqlTpl, uid)
if err == nil {
total += zhios_condition_statistics_utils.StrToFloat64(b2cResult[0]["amount"])
}
secondTotal, _ := db.B2cOrderTeamRelateListByTimeByStateNew(engine, uid, task)
total += secondTotal
}
if zhios_condition_statistics_utils.InArr(zhios_condition_statistics_utils.IntToStr(task.TaskTypePvd), []string{"0", "1"}) {

guideSqlTpl := `SELECT SUM(ol.paid_price) AS amount
FROM ord_list_relate olr
JOIN ord_list ol ON olr.oid = ol.ord_id
WHERE olr.uid = ?
AND ol.state in(3,5) and olr.level>0;
`
guideResult, err := db.QueryNativeString(engine, guideSqlTpl, uid)
if err == nil {
total += zhios_condition_statistics_utils.StrToFloat64(guideResult[0]["amount"])
}
secondTotal, _ := db.OrderTeamRelateListByTimeByStateNew(engine, uid, task)
total += secondTotal
}
return zhios_condition_statistics_utils.Float64ToStr(zhios_condition_statistics_utils.FloatFormat(total, 2)), hasPay, payOrdId
case 13:


Notiek ielāde…
Atcelt
Saglabāt