Browse Source

新增区代数据

abiao 3 years ago
parent
commit
bd157e8f29

+ 28 - 0
go/gopath/src/fohow.com/apps/controllers/order_controller/order_controller.go

@@ -741,6 +741,34 @@ func (self *OrderController) List() {
 	self.ServeResultJSON()
 }
 
+//获取用户订单列表
+func (self *OrderController) DisrictList() {
+
+	page, _ := self.GetInt64("page")
+	perPage, _ := self.GetInt64("per_page")
+
+	if page <= 0 {
+		page = 1
+	}
+
+	if perPage <= 0 {
+		perPage = 10
+	}
+
+	wxUId := self.GetCurrentWxUserIdByToken()
+	wxUser := user_model.GetWxUserById(wxUId, true)
+
+	orders := order_model.GetDistrictOrders(wxUser.TcBl, page, perPage, wxUser.TcArea)
+	count := order_model.GetDistrictOrdersCount(wxUser.TcBl, wxUser.TcArea)
+
+	type Ret struct {
+		List      []*order_model.Order `json:"list"`
+		ListCount int64                `json:"list_count"`
+	}
+	self.Data["json"] = &Ret{ListCount: count, List: orders}
+	self.ServeResultJSON()
+}
+
 //用户更改订单状态
 func (self *OrderController) Operate() {
 	oId := self.Ctx.Input.Param(":order_id")

+ 16 - 0
go/gopath/src/fohow.com/apps/helper/time.go

@@ -159,3 +159,19 @@ func GetSystemEndDate(EndDate string) *time.Time {
 	}
 	return t
 }
+
+//获取传入的时间所在月份的第一天,即某月第一天的0点。如传入time.Now(), 返回当前月份的第一天0点时间。
+func GetFirstDateOfMonth(d time.Time) time.Time {
+	d = d.AddDate(0, 0, -d.Day()+1)
+	return GetZeroTime(d)
+}
+
+//获取传入的时间所在月份的最后一天,即某月最后一天的0点。如传入time.Now(), 返回当前月份的最后一天0点时间。
+func GetLastDateOfMonth(d time.Time) time.Time {
+	return GetFirstDateOfMonth(d).AddDate(0, 1, 0)
+}
+
+//获取某一天的0点时间
+func GetZeroTime(d time.Time) time.Time {
+	return time.Date(d.Year(), d.Month(), d.Day(), 0, 0, 0, 0, d.Location())
+}

+ 101 - 0
go/gopath/src/fohow.com/apps/models/order_model/order.go

@@ -757,6 +757,107 @@ func UpdateSaleNums(saleProducts map[int64]int64) bool {
 	return true
 }
 
+func GetDistrictOrders(tcBl, page, perPage int64, tcArea string) (orders []*Order) {
+
+	beginSql := "select order_id,contact, "
+
+	var excuteSql, areaSql string
+
+	if tcBl > 0 {
+		excuteSql = beginSql + fmt.Sprintf("CAST(dis_amount*%d/100  as decimal(38, 2)) as dis_amount from orders where dis_amount>0 and  ", tcBl)
+	}
+
+	areaArr := helper.NewStr(tcArea).Explode(",")
+
+	for key, ar := range areaArr {
+		if key == 0 {
+			areaSql = fmt.Sprintf("( address like %s", "'%"+ar+"%'")
+		} else {
+			areaSql = areaSql + fmt.Sprintf(" or address like %s", "'%"+ar+"%'")
+		}
+
+		if key == (len(areaArr) - 1) {
+			areaSql = areaSql + " )"
+		}
+	}
+
+	excuteSql = excuteSql + areaSql
+
+	//pay支付时间
+	d := time.Now()
+	beginDay := helper.GetFirstDateOfMonth(d)
+	fmt.Println(beginDay.Unix())
+	beginTime := beginDay.Unix()
+	endDay := helper.GetLastDateOfMonth(d)
+	fmt.Println(endDay.Unix())
+	endTime := endDay.Unix()
+
+	excuteSql = excuteSql + fmt.Sprintf(" and  paied_at > %d and paied_at < %d", beginTime, endTime)
+
+	sql := excuteSql + " status in ('%s','%s','%s') order by paied_at desc limit %d, %d ;"
+
+	sql = fmt.Sprintf(sql, (page-1)*perPage, perPage)
+
+	//beego.BeeLogger.Warn("cate sql=%s", sql)
+	_, err := orm.NewOrm().Raw(sql, STATUS_PROCESSING, STATUS_COMPLETE, STATUS_DISPATCH).QueryRows(&orders)
+
+	if err != nil {
+		beego.BeeLogger.Debug("GetDistrictOrders err=%s", err)
+	}
+
+	return orders
+}
+
+func GetDistrictOrdersCount(tcBl int64, tcArea string) int64 {
+
+	excuteSql := "select count(*) as count  from orders where dis_amount>0 and"
+
+	var areaSql string
+
+	areaArr := helper.NewStr(tcArea).Explode(",")
+
+	for key, ar := range areaArr {
+		if key == 0 {
+			areaSql = fmt.Sprintf("( address like %s", "'%"+ar+"%'")
+		} else {
+			areaSql = areaSql + fmt.Sprintf(" or address like %s", "'%"+ar+"%'")
+		}
+
+		if key == (len(areaArr) - 1) {
+			areaSql = areaSql + " )"
+		}
+	}
+
+	excuteSql = excuteSql + areaSql
+
+	//pay支付时间
+	d := time.Now()
+	beginDay := helper.GetFirstDateOfMonth(d)
+	fmt.Println(beginDay.Unix())
+	beginTime := beginDay.Unix()
+	endDay := helper.GetLastDateOfMonth(d)
+	fmt.Println(endDay.Unix())
+	endTime := endDay.Unix()
+
+	excuteSql = excuteSql + fmt.Sprintf(" and  paied_at > %d and paied_at < %d", beginTime, endTime)
+
+	sql := excuteSql + " status in ('%s','%s','%s') order by paied_at desc limit %d, %d ;"
+
+	type Ret struct {
+		Count int64 `json:"count"`
+	}
+
+	var ret Ret
+	sql = fmt.Sprintf(sql)
+	err := orm.NewOrm().Raw(sql).QueryRow(&ret)
+
+	if err != nil {
+		return 0
+	}
+
+	return ret.Count
+}
+
 //根据用户快递单号和Tkey得到物流信息查询的密钥
 func GenExpressPassword(expressNo string) string {
 	md5CtxUsn := md5.New()

+ 3 - 1
go/gopath/src/fohow.com/apps/models/user_model/wx_user.go

@@ -62,7 +62,9 @@ type WxUser struct {
 	Depart       int64   `orm:"column(depart)" json:"-"`                                // datetime
 
 	//等级
-	Rank int64 `orm:"column(rank);null"              json:"rank"` // int
+	Rank   int64  `orm:"column(rank);null"               json:"rank"`    // int
+	TcBl   int64  `orm:"column(tc_bl);null"               json:"tc_bl"`  // int
+	TcArea string `orm:"column(tc_areag);null"          json:"tc_areag"` // int
 
 	PartnerTime int64     `orm:"column(partner_time);null"              json:"-"` // 群主时间
 	UserNo      string    `orm:"column(user_no);null"              json:"-"`      // int(11)

+ 4 - 0
go/gopath/src/fohow.com/routers/routes.go

@@ -113,6 +113,10 @@ func init() {
 	beego.Router("/v1/product/:id([0-9]+)/order/:count", &order_controller.OrderController{}, "post:Create")
 	//用户订单列表
 	beego.Router("/v1/orders", &order_controller.OrderController{}, "get:List")
+
+	//区代订单列表
+	beego.Router("/v1/district/orders", &order_controller.OrderController{}, "get:DisrictList")
+
 	//订单详情
 	beego.Router("/v1/order/:order_id", &order_controller.OrderController{}, "get:Detail")
 	//订单的物流单号

+ 40 - 6
go/gopath/src/fohow.com/tests/main.test.go

@@ -1,6 +1,10 @@
 package main
 
-import "fmt"
+import (
+	"fmt"
+	"fohow.com/apps/helper"
+	"time"
+)
 
 func main() {
 	type SessionKey struct {
@@ -8,7 +12,7 @@ func main() {
 		SessionKey string `json:"session_key"` //会话密钥
 		Unionid    string `json:"unionid"`     //用户在开放平台的唯一标识符。本字段在满足一定条件的情况下才返回。
 	}
-	var key *SessionKey
+	//var key *SessionKey
 
 	//var s1 SessionKey
 	//
@@ -18,10 +22,10 @@ func main() {
 	//
 	//fmt.Printf("%v\n", key)
 	//
-
-	if key == nil {
-		fmt.Printf("%v\n", 123)
-	}
+	//
+	//if key == nil {
+	//	fmt.Printf("%v\n", 123)
+	//}
 
 	//
 
@@ -41,4 +45,34 @@ func main() {
 	//
 	//fmt.Println(p)
 	//fmt.Println(*p)
+	var areaSql string
+	tcArea := "广东省,广东省,广东省"
+	areaArr := helper.NewStr(tcArea).Explode(",")
+
+	for key, ar := range areaArr {
+		if key == 0 {
+			areaSql = fmt.Sprintf("( address like %s", "'%"+ar+"%'")
+		} else {
+			areaSql = areaSql + fmt.Sprintf(" or address like %s", "'%"+ar+"%'")
+		}
+
+		if key == (len(areaArr) - 1) {
+			areaSql = areaSql + " )"
+		}
+	}
+	fmt.Println(areaSql)
+
+	d := time.Now()
+
+	//pay支付时间
+	beginDay := helper.GetFirstDateOfMonth(d)
+	fmt.Println(beginDay.Unix())
+	beginTime := beginDay.Unix()
+	endDay := helper.GetLastDateOfMonth(d)
+	fmt.Println(endDay.Unix())
+	endTime := endDay.Unix()
+
+	paySql := fmt.Sprintf("  paied_at > %d and paied_at < %d", beginTime, endTime)
+	fmt.Println(paySql)
+
 }