|
|
@@ -10,18 +10,10 @@ import (
|
|
|
"fohow.com/apps"
|
|
|
// "fohow.com/apps/controllers/user_controller"
|
|
|
// "fohow.com/apps/models/activity_model"
|
|
|
+ "fohow.com/apps/models/merchant_model"
|
|
|
"fohow.com/apps/models/order_model"
|
|
|
"fohow.com/apps/models/product_model"
|
|
|
- // "fohow.com/apps/models/user_model"
|
|
|
- // "fohow.com/apps/models/vas_model"
|
|
|
- // "fohow.com/libs/wx_mp"
|
|
|
- "encoding/csv"
|
|
|
- "fmt"
|
|
|
- "fohow.com/apps/helpers"
|
|
|
- "fohow.com/apps/models/cow_order_model"
|
|
|
- "fohow.com/apps/models/merchant_model"
|
|
|
"fohow.com/apps/models/user_model"
|
|
|
- "fohow.com/libs/tool"
|
|
|
"strings"
|
|
|
"sync"
|
|
|
"time"
|
|
|
@@ -253,7 +245,6 @@ func (self *OrderController) List() {
|
|
|
orderList := order_model.GetAllDetailsOrderId(item.OrderId)
|
|
|
for _, orderItem := range orderList {
|
|
|
product := product_model.GetProductById(orderItem.ProductId, cache)
|
|
|
- item.Product = product
|
|
|
if product == nil {
|
|
|
continue
|
|
|
}
|
|
|
@@ -334,125 +325,6 @@ func (self *OrderController) Operate() {
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
|
|
|
-// //确认收货后续动作
|
|
|
-// func afterTakeDelivery(order *order_model.Order) {
|
|
|
-
|
|
|
-// }
|
|
|
-
|
|
|
-// 获取商家的订单列表
|
|
|
-func (self *OrderController) MerchantList() {
|
|
|
-
|
|
|
- merchantId, _ := self.GetInt64("merchant_id", 0)
|
|
|
- _queryPaiedStart := self.GetString("query_paied_start")
|
|
|
- _queryPaiedEnd := self.GetString("query_paied_end")
|
|
|
- _queryReceiveStart := self.GetString("query_receive_start")
|
|
|
- _queryReceiveEnd := self.GetString("query_receive_end")
|
|
|
- status := self.GetString("status")
|
|
|
- page, _ := self.GetInt("page")
|
|
|
- perPage, _ := self.GetInt("per_page")
|
|
|
- contact := self.GetString("contact")
|
|
|
- tel := self.GetString("tel")
|
|
|
- orderType := self.GetString("order_type")
|
|
|
- orderId := self.GetString("order_id")
|
|
|
- province := self.GetString("province")
|
|
|
- city := self.GetString("city")
|
|
|
- district := self.GetString("district")
|
|
|
-
|
|
|
- queryPaiedStart, queryPaiedEnd := int64(0), int64(0)
|
|
|
- queryReceiveStart, queryReceiveEnd := int64(0), int64(0)
|
|
|
- if strings.TrimSpace(_queryPaiedStart) != "" {
|
|
|
- paiedStart, err := time.ParseInLocation("2006-01-02 15:04:05", fmt.Sprintf("%s 00:00:00", _queryPaiedStart), time.Local)
|
|
|
- if err != nil {
|
|
|
- self.ReturnError(403, []string{"paramsError", "查询日期错误"}, "", nil)
|
|
|
- }
|
|
|
- queryPaiedStart = paiedStart.Unix()
|
|
|
- }
|
|
|
- if strings.TrimSpace(_queryPaiedEnd) != "" {
|
|
|
- paiedEnd, err := time.ParseInLocation("2006-01-02 15:04:05", fmt.Sprintf("%s 23:59:59", _queryPaiedEnd), time.Local)
|
|
|
- if err != nil {
|
|
|
- self.ReturnError(403, []string{"paramsError", "查询日期错误"}, "", nil)
|
|
|
- }
|
|
|
- queryPaiedEnd = paiedEnd.Unix()
|
|
|
- }
|
|
|
-
|
|
|
- if strings.TrimSpace(_queryReceiveStart) != "" {
|
|
|
- receiveStart, err := time.ParseInLocation("2006-01-02 15:04:05", fmt.Sprintf("%s 00:00:00", _queryReceiveStart), time.Local)
|
|
|
- if err != nil {
|
|
|
- self.ReturnError(403, []string{"paramsError", "查询日期错误"}, "", nil)
|
|
|
- }
|
|
|
- queryReceiveStart = receiveStart.Unix()
|
|
|
- }
|
|
|
- if strings.TrimSpace(_queryReceiveEnd) != "" {
|
|
|
- receiveEnd, err := time.ParseInLocation("2006-01-02 15:04:05", fmt.Sprintf("%s 23:59:59", _queryReceiveEnd), time.Local)
|
|
|
- if err != nil {
|
|
|
- self.ReturnError(403, []string{"paramsError", "查询日期错误"}, "", nil)
|
|
|
- }
|
|
|
- queryReceiveEnd = receiveEnd.Unix()
|
|
|
- }
|
|
|
-
|
|
|
- if status != "" && order_model.STATUS_CN_TEXT[status] == "" {
|
|
|
- self.ReturnError(403, []string{"paramsError", "状态错误"}, "", nil)
|
|
|
- }
|
|
|
- if orderType != "" {
|
|
|
- _orderType, err := strconv.ParseInt(orderType, 10, 64)
|
|
|
- if order_model.ORDER_TYPE_CN_TEXT[_orderType] == "" || err != nil {
|
|
|
- self.ReturnError(403, []string{"paramsError", "类型出错"}, "", nil)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if page <= 0 {
|
|
|
- page = 1
|
|
|
- }
|
|
|
- if perPage <= 0 || perPage > 100 {
|
|
|
- perPage = 10
|
|
|
- }
|
|
|
- cache, _ := self.GetBool("cache", false)
|
|
|
- uId := self.GetCurrentUserId()
|
|
|
-
|
|
|
- var orders []*order_model.MerchantOrder
|
|
|
- count := int64(0)
|
|
|
- merchantUser := merchant_model.GetMerchantUserRelationByUserId(uId, cache)
|
|
|
- if merchantUser != nil {
|
|
|
- if merchantUser.MerchantId != merchantId {
|
|
|
- self.ReturnError(403, apps.ParamsError, "", nil)
|
|
|
- }
|
|
|
- } else {
|
|
|
- self.ReturnError(403, apps.ParamsError, "", nil)
|
|
|
- }
|
|
|
-
|
|
|
- orders = order_model.GetMerchantOrders(merchantId, queryPaiedStart, queryPaiedEnd, queryReceiveStart, queryReceiveEnd, status,
|
|
|
- contact, strings.TrimSpace(merchantUser.ManageProductIds),
|
|
|
- tel, orderType, orderId, province, city, district, page, perPage)
|
|
|
- count = order_model.GetMerchantOrdersCount(merchantId, queryPaiedStart, queryPaiedEnd, queryReceiveStart, queryReceiveEnd, status,
|
|
|
- contact, strings.TrimSpace(merchantUser.ManageProductIds),
|
|
|
- tel, orderType, orderId, province, city, district)
|
|
|
-
|
|
|
- for _, item := range orders {
|
|
|
- product := product_model.GetProductById(item.ProductId, cache)
|
|
|
- wxUser := user_model.GetWxUserById(item.WxUserId, cache)
|
|
|
- if wxUser != nil {
|
|
|
- wxUser.Head = user_model.GetFullImgUrl(wxUser.Head)
|
|
|
- }
|
|
|
-
|
|
|
- item.Product = product
|
|
|
- item.WxUser = wxUser
|
|
|
- item.OrderTypeCn = order_model.ORDER_TYPE_CN_TEXT[item.OrderType]
|
|
|
- item.CTime = item.CreatedAt.Unix()
|
|
|
- item.DTime = item.DispatchTime.Unix()
|
|
|
- item.RTime = item.ReceiveTime.Unix()
|
|
|
- }
|
|
|
- type Ret struct {
|
|
|
- List []*order_model.MerchantOrder `json:"list"`
|
|
|
- ListCount int64 `json:"list_count"`
|
|
|
- }
|
|
|
-
|
|
|
- if orders == nil {
|
|
|
- orders = make([]*order_model.MerchantOrder, 0, 0)
|
|
|
- }
|
|
|
- self.Data["json"] = &Ret{ListCount: count, List: orders}
|
|
|
- self.ServeJSON()
|
|
|
-}
|
|
|
-
|
|
|
// 商家处理中订单数量提示
|
|
|
func (self *OrderController) MerchantListCount() {
|
|
|
merchantId, _ := self.GetInt64("merchant_id", 0)
|
|
|
@@ -477,279 +349,3 @@ func (self *OrderController) MerchantListCount() {
|
|
|
self.Data["json"] = &Ret{ListCount: count}
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
-
|
|
|
-// 商家更新物流信息
|
|
|
-// status只接收""或者dispatch两个值
|
|
|
-// 只能处理待发货、待收货的订单物流信息
|
|
|
-// 当status是""、订单状态是已发货:表示更改物流,当status是dispatch、订单状态是处理中表示添加物流信息
|
|
|
-// 不允许status为dispatch、同时订单状态是已发货。避免多个管理员重复发货。
|
|
|
-func (self *OrderController) UpdateExpress() {
|
|
|
- oId := self.Ctx.Input.Param(":order_id")
|
|
|
- expressCompany := self.GetString("express_company")
|
|
|
- expressOrderNo := self.GetString("express_order_no")
|
|
|
- status := self.GetString("status", "")
|
|
|
-
|
|
|
- defer updateExpressLock.Unlock()
|
|
|
- updateExpressLock.Lock()
|
|
|
-
|
|
|
- o := order_model.GetOrderById(oId)
|
|
|
- if o == nil {
|
|
|
- self.ReturnError(404, apps.OrderNotExist, "", nil)
|
|
|
- }
|
|
|
-
|
|
|
- uId := self.GetCurrentUserId()
|
|
|
- merchantUser := merchant_model.GetMerchantUserRelationByUserId(uId, true)
|
|
|
- if merchantUser == nil {
|
|
|
- // 不是商户
|
|
|
- self.ReturnError(403, apps.ParamsError, "", nil)
|
|
|
- }
|
|
|
-
|
|
|
- //只能处理待发货、待收货的订单物流信息。
|
|
|
- if o.Status != order_model.STATUS_PROCESSING && o.Status != order_model.STATUS_DISPATCH {
|
|
|
- self.ReturnError(403, apps.OrderStatusNotSuit, "", nil)
|
|
|
- }
|
|
|
-
|
|
|
- //避免重复发货
|
|
|
- if o.Status == order_model.STATUS_DISPATCH && status == order_model.STATUS_DISPATCH {
|
|
|
- self.ReturnError(403, apps.OrderAlreadyDispatch, "", nil)
|
|
|
- }
|
|
|
-
|
|
|
- // 校验状态参数,是否合法。
|
|
|
- if status != "" && status != order_model.STATUS_DISPATCH {
|
|
|
- // 只支持发货操作
|
|
|
- self.ReturnError(403, apps.ParamsError, "", nil)
|
|
|
- } else if status == order_model.STATUS_DISPATCH {
|
|
|
-
|
|
|
- o.Status = order_model.STATUS_DISPATCH
|
|
|
- o.DispatchTime = time.Now()
|
|
|
- } else {
|
|
|
-
|
|
|
- o.Status = o.Status
|
|
|
- }
|
|
|
-
|
|
|
- //校验订单所属商户
|
|
|
- product := product_model.GetProductById(o.ProductId, true)
|
|
|
- if product == nil {
|
|
|
- self.ReturnError(403, apps.ProductNotExist, "", nil)
|
|
|
- }
|
|
|
- if product.MerchantId != merchantUser.MerchantId {
|
|
|
- self.ReturnError(403, apps.OrderNotBelongToCurrentUser, "", nil)
|
|
|
- }
|
|
|
-
|
|
|
- //该商家管理员是否负责管理该商品?
|
|
|
- isManageTheProduct, _ := tool.Contain(fmt.Sprintf("%d", product.Id), strings.Split(merchantUser.ManageProductIds, ","))
|
|
|
- if merchantUser.ManageProductIds != "0" && !isManageTheProduct {
|
|
|
- self.ReturnError(403, apps.CurrentMerIsNotManageTheProduct, "", nil)
|
|
|
- }
|
|
|
-
|
|
|
- o.ExpressCompany = expressCompany
|
|
|
- o.ExpressOrderNo = expressOrderNo
|
|
|
-
|
|
|
- if !o.Save() {
|
|
|
- beego.BeeLogger.Error("user[%d] complete order[%s] fail", uId, oId)
|
|
|
- }
|
|
|
-
|
|
|
- //发送物流信息
|
|
|
- if status == order_model.STATUS_DISPATCH { //发送发货通知
|
|
|
-
|
|
|
- buyerWxUser := user_model.GetWxUserById(o.WxUserId, true)
|
|
|
- if buyerWxUser != nil {
|
|
|
- helpers.ProductLogisticsChangedNotify(*buyerWxUser, o.DispatchTime, product.Name, o.OrderId, o.ExpressCompany, o.ExpressOrderNo,
|
|
|
- "您兑换的商品已经发货,请注意查收。", "pages/start/start?url=packageUser/pages/user/order/order&id="+o.OrderId)
|
|
|
- }
|
|
|
-
|
|
|
- } else { //发送物流修改信息
|
|
|
-
|
|
|
- buyerWxUser := user_model.GetWxUserById(o.WxUserId, true)
|
|
|
- if buyerWxUser != nil {
|
|
|
- helpers.ProductLogisticsChangedNotify(*buyerWxUser, o.DispatchTime, product.Name, o.OrderId, o.ExpressCompany, o.ExpressOrderNo,
|
|
|
- "您兑换的商品物流信息有改动,请注意查收。", "pages/start/start?url=packageUser/pages/user/order/order&id="+o.OrderId)
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- //同步牛就对了订单发货信息
|
|
|
- if o.OrderType == order_model.ORDER_COW_BUY || o.OrderType == order_model.ORDER_COW_CHANGE {
|
|
|
- cowOrder := cow_order_model.GetCowOrderByCowOrderId(o.OrderId)
|
|
|
- if cowOrder != nil {
|
|
|
- cowOrder.LogisNo = o.ExpressOrderNo
|
|
|
- cowOrder.LogisComp = o.ExpressCompany
|
|
|
- cowOrder.ConFlag = int64(1)
|
|
|
- cowOrder.ConDate = time.Now().Unix()
|
|
|
- cowOrder.Save()
|
|
|
- }
|
|
|
- }
|
|
|
- type apiRet struct {
|
|
|
- Status string `json:"status"`
|
|
|
- StatusCnText string `json:"status_cn_text"`
|
|
|
- }
|
|
|
- self.Data["json"] = &apiRet{
|
|
|
- Status: o.Status,
|
|
|
- StatusCnText: order_model.STATUS_CN_TEXT[o.Status]}
|
|
|
- self.ServeJSON()
|
|
|
-}
|
|
|
-
|
|
|
-// 商家获取订单详情
|
|
|
-func (self *OrderController) MerchantOrderDetail() {
|
|
|
-
|
|
|
- oId := self.Ctx.Input.Param(":order_id")
|
|
|
- o := order_model.GetMerchantOrderById(oId)
|
|
|
- cache, _ := self.GetBool("cache", false)
|
|
|
- if o == nil {
|
|
|
- beego.BeeLogger.Error("order not exist id=[%s]", oId)
|
|
|
- self.ReturnError(404, apps.OrderNotExist, "", nil)
|
|
|
- }
|
|
|
- user := self.GetCurrentUser(cache)
|
|
|
-
|
|
|
- product := product_model.GetProductById(o.ProductId, cache)
|
|
|
- if product == nil {
|
|
|
- self.ReturnError(403, apps.ProductNotExist, "", nil)
|
|
|
- }
|
|
|
-
|
|
|
- merchantUser := merchant_model.GetMerchantUserRelationByUserId(user.Id, cache)
|
|
|
- if merchantUser == nil {
|
|
|
- self.ReturnError(404, apps.OrderNotExist, "", nil)
|
|
|
- } else {
|
|
|
- if product.MerchantId != merchantUser.MerchantId {
|
|
|
- beego.BeeLogger.Error("order not merchant_owner id=[%s]", oId)
|
|
|
- self.ReturnError(404, apps.OrderNotExist, "", nil)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- wxUser := user_model.GetWxUserByUserId(o.UserId, cache)
|
|
|
- if wxUser == nil {
|
|
|
- self.ReturnError(403, apps.UserNotExist, "", nil)
|
|
|
- } else {
|
|
|
- wxUser.Head = user_model.GetFullImgUrl(wxUser.Head)
|
|
|
- }
|
|
|
-
|
|
|
- o.StatusCn = order_model.STATUS_CN_TEXT[o.Status]
|
|
|
- o.CTime = o.CreatedAt.Unix()
|
|
|
- o.DTime = o.DispatchTime.Unix()
|
|
|
- if o.DTime < 0 {
|
|
|
- o.DTime = 0
|
|
|
- }
|
|
|
- o.Product = product
|
|
|
- o.WxUser = wxUser
|
|
|
- o.ExCompanyArray = strings.Split(o.ExpressCompany, "/")
|
|
|
- o.ExOrderNoArray = strings.Split(o.ExpressOrderNo, "/")
|
|
|
- self.Data["json"] = o
|
|
|
- self.ServeJSON()
|
|
|
-}
|
|
|
-
|
|
|
-func (self *OrderController) ExportMerchantOrders() {
|
|
|
- merchantId, _ := self.GetInt64("merchant_id", 0)
|
|
|
- _queryPaiedStart := self.GetString("query_paied_start")
|
|
|
- _queryPaiedEnd := self.GetString("query_paied_end")
|
|
|
- _queryReceiveStart := self.GetString("query_receive_start")
|
|
|
- _queryReceiveEnd := self.GetString("query_receive_end")
|
|
|
- status := self.GetString("status")
|
|
|
- contact := self.GetString("contact")
|
|
|
- tel := self.GetString("tel")
|
|
|
- orderType := self.GetString("order_type")
|
|
|
- orderId := self.GetString("order_id")
|
|
|
- province := self.GetString("province")
|
|
|
- city := self.GetString("city")
|
|
|
- district := self.GetString("district")
|
|
|
- cache, _ := self.GetBool("cache", false)
|
|
|
-
|
|
|
- queryPaiedStart, queryPaiedEnd := int64(0), int64(0)
|
|
|
- queryReceiveStart, queryReceiveEnd := int64(0), int64(0)
|
|
|
- if strings.TrimSpace(_queryPaiedStart) != "" {
|
|
|
- paiedStart, err := time.ParseInLocation("2006-01-02 15:04:05", fmt.Sprintf("%s 00:00:00", _queryPaiedStart), time.Local)
|
|
|
- if err != nil {
|
|
|
- self.ReturnError(403, []string{"paramsError", "查询日期错误"}, "", nil)
|
|
|
- }
|
|
|
- queryPaiedStart = paiedStart.Unix()
|
|
|
- }
|
|
|
- if strings.TrimSpace(_queryPaiedEnd) != "" {
|
|
|
- paiedEnd, err := time.ParseInLocation("2006-01-02 15:04:05", fmt.Sprintf("%s 23:59:59", _queryPaiedEnd), time.Local)
|
|
|
- if err != nil {
|
|
|
- self.ReturnError(403, []string{"paramsError", "查询日期错误"}, "", nil)
|
|
|
- }
|
|
|
- queryPaiedEnd = paiedEnd.Unix()
|
|
|
- }
|
|
|
- if strings.TrimSpace(_queryReceiveStart) != "" {
|
|
|
- receiveStart, err := time.ParseInLocation("2006-01-02 15:04:05", fmt.Sprintf("%s 00:00:00", _queryReceiveStart), time.Local)
|
|
|
- if err != nil {
|
|
|
- self.ReturnError(403, []string{"paramsError", "查询日期错误"}, "", nil)
|
|
|
- }
|
|
|
- queryReceiveStart = receiveStart.Unix()
|
|
|
- }
|
|
|
- if strings.TrimSpace(_queryReceiveEnd) != "" {
|
|
|
- receiveEnd, err := time.ParseInLocation("2006-01-02 15:04:05", fmt.Sprintf("%s 23:59:59", _queryReceiveEnd), time.Local)
|
|
|
- if err != nil {
|
|
|
- self.ReturnError(403, []string{"paramsError", "查询日期错误"}, "", nil)
|
|
|
- }
|
|
|
- queryReceiveEnd = receiveEnd.Unix()
|
|
|
- }
|
|
|
-
|
|
|
- if status != "" && order_model.STATUS_CN_TEXT[status] == "" {
|
|
|
- self.ReturnError(403, []string{"paramsError", "状态错误"}, "", nil)
|
|
|
- }
|
|
|
- if orderType != "" {
|
|
|
- _orderType, err := strconv.ParseInt(orderType, 10, 64)
|
|
|
- if order_model.ORDER_TYPE_CN_TEXT[_orderType] == "" || err != nil {
|
|
|
- self.ReturnError(403, []string{"paramsError", "类型出错"}, "", nil)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- uId := self.GetCurrentUserId()
|
|
|
-
|
|
|
- var orders []*order_model.MerchantOrder
|
|
|
- merchantUser := merchant_model.GetMerchantUserRelationByUserId(uId, cache)
|
|
|
- if merchantUser != nil {
|
|
|
- if merchantUser.MerchantId != merchantId {
|
|
|
- self.ReturnError(403, apps.ParamsError, "", nil)
|
|
|
- }
|
|
|
- } else {
|
|
|
- self.ReturnError(403, apps.ParamsError, "", nil)
|
|
|
- }
|
|
|
-
|
|
|
- orders = order_model.GetMerchantOrders(merchantId, queryPaiedStart, queryPaiedEnd, queryReceiveStart, queryReceiveEnd, status,
|
|
|
- contact, strings.TrimSpace(merchantUser.ManageProductIds),
|
|
|
- tel, orderType, orderId, province, city, district, 0, 0)
|
|
|
-
|
|
|
- fileName := fmt.Sprintf("[%d-%s].csv", merchantUser.UserId, time.Now().Format("2006年01月02日15时04分"))
|
|
|
- self.Ctx.Output.Header("Content-Type", "text/csv")
|
|
|
- self.Ctx.Output.Header("Content-Disposition", "attachment; filename="+fileName)
|
|
|
- writer := csv.NewWriter(self.Controller.Ctx.ResponseWriter)
|
|
|
- writer.Write([]string{"订单号", "微信昵称", "交易时间", "发货时间", "收货时间",
|
|
|
- "商品", "类型", "单价/商家获得(元)", "总额/商家获得(元)",
|
|
|
- "收件号码", "收件人", "收件地址", "物流信息"})
|
|
|
- for _, order := range orders {
|
|
|
- orderId := order.OrderId
|
|
|
- var wxNickname, productName string
|
|
|
- wxUser := user_model.GetWxUserById(order.WxUserId, true)
|
|
|
- if wxUser != nil {
|
|
|
- wxNickname = wxUser.Nickname
|
|
|
- }
|
|
|
-
|
|
|
- var paiedAtFormat, dispatchTimeFormat, receiveTimeFormat string
|
|
|
- if order.PaiedAt > 0 {
|
|
|
- paiedAtFormat = time.Unix(order.PaiedAt, 0).Format("2006-01-02 15:04")
|
|
|
- }
|
|
|
- if order.DispatchTime.Unix() > 0 {
|
|
|
- dispatchTimeFormat = order.DispatchTime.Format("2006-01-02 15:04")
|
|
|
- }
|
|
|
- if order.ReceiveTime.Unix() > 0 {
|
|
|
- receiveTimeFormat = order.ReceiveTime.Format("2006-01-02 15:04")
|
|
|
- }
|
|
|
-
|
|
|
- product := product_model.GetProductById(order.ProductId, true)
|
|
|
- if product != nil {
|
|
|
- productName = product.Name
|
|
|
- }
|
|
|
- orderTypeCn := order_model.ORDER_TYPE_CN_TEXT[order.OrderType]
|
|
|
- unitGet := fmt.Sprintf("%0.2f(%0.2f)", float64(order.UnitPrice)/100.0, float64(order.BuyPrice/order.Count)/100.0)
|
|
|
- totalGet := fmt.Sprintf("%0.2f(%0.2f)", float64(order.UnitPrice*order.Count)/100.0, float64(order.BuyPrice)/100.0)
|
|
|
- tel := order.Tel
|
|
|
- contact := order.Contact
|
|
|
- address := order.Address
|
|
|
- logistics := fmt.Sprintf("物流公司:%s;物流号:%s", order.ExpressCompany, order.ExpressOrderNo)
|
|
|
-
|
|
|
- writer.Write([]string{orderId, wxNickname, paiedAtFormat, dispatchTimeFormat, receiveTimeFormat,
|
|
|
- productName, orderTypeCn, unitGet, totalGet, tel, contact, address, logistics})
|
|
|
- }
|
|
|
- writer.Flush()
|
|
|
- return
|
|
|
-}
|