diff --git a/controllers/client/good.go b/controllers/client/good.go
index fb2b14f..a0c38ad 100644
--- a/controllers/client/good.go
+++ b/controllers/client/good.go
@@ -7,6 +7,7 @@ import (
"hudongzhuanjia/models"
pay_service "hudongzhuanjia/services/pay"
"hudongzhuanjia/utils/code"
+ "hudongzhuanjia/utils/define"
"strings"
"time"
)
@@ -84,7 +85,7 @@ func (t *GoodCtl) ListOrder() {
for _, order := range orders {
outTradeNos = append(outTradeNos, order.OutTradeNo)
}
- subs, err := models.GetCustomerOrderSubByOutTradeNos(outTradeNos)
+ subs, err := models.GetCustomerOrderSubByOutTradeNos(outTradeNos...)
t.CheckErr(err)
for index, order := range orders {
order.ServicePhone = option.MainServicePhone
@@ -220,9 +221,9 @@ func (t *GoodCtl) Order() {
//ExpressId: 0,
//ExpressName: "",
//ExpressNo: "",
- //CancelTime: time.Time{},
- //AutoReceiveTime: time.Now().AddDate(0, 0, 15),
- //OrderTime: time.Now(),
+ CancelTime: define.DefaultTime,
+ AutoReceiveTime: define.DefaultTime,
+ //OrderTime: ,
//Good: nil,
//User: nil,
//OrderEntryPersonName: "",
@@ -289,8 +290,34 @@ func (t *GoodCtl) CancelOrder() {
if order.Status != 0 {
t.ERROR("非待支付状态不能取消", code.MSG_CUSTOMER_ORDER_ERROR)
}
- _, err = order.UpdateStatusBy(outTradeNo, 0, 9)
+ session := core.GetXormAuto().NewSession()
+ defer session.Close()
+ err = session.Begin()
+ t.CheckErr(err)
+ order.Status = 9
+ _, err = session.Where("is_delete=0 and status=? and out_trade_no=?",
+ 0, outTradeNo).Cols("status, cancel_time").Update(order)
+ if err != nil {
+ session.Rollback()
+ t.CheckErr(err)
+ }
+ subs := make([]*models.CustomerOrderSub, 0)
+ err = session.Where("is_delete=0 and out_trade_no=?", outTradeNo).Find(&subs)
+ if err != nil {
+ session.Rollback()
+ t.CheckErr(err)
+ }
+ for _, sub := range subs {
+ _, err = session.Where("id=?", sub.GoodsId).
+ Incr("stock", sub.GoodsNum).Update(&models.CustomerGoods{})
+ if err != nil {
+ session.Rollback()
+ t.CheckErr(err)
+ }
+ }
+ err = session.Commit()
t.CheckErr(err)
+ pay_service.Close(outTradeNo)
t.SUCCESS("成功取消订单")
}
diff --git a/log/hdzj.log b/log/hdzj.log
index 43cb3cf..5edb19c 100644
--- a/log/hdzj.log
+++ b/log/hdzj.log
@@ -25,3 +25,9 @@
2020-04-23 16:37:49.184 ERROR logger/logger.go:92 check err {"error": "FAILinvalid total_fee"}
2020-04-23 19:00:16.688 ERROR logger/logger.go:92 check err {"error": "json: cannot unmarshal string into Go struct field OrderParam.activity_id of type int64"}
2020-04-23 19:33:15.206 ERROR logger/logger.go:92 check err {"error": "Error 1052: Column 'is_delete' in where clause is ambiguous"}
+2020-04-24 16:15:19.869 ERROR logger/logger.go:92 check err {"error": "Error 1292: Incorrect datetime value: '' for column 'cancel_time' at row 1"}
+2020-04-24 16:15:39.242 ERROR logger/logger.go:92 check err {"error": "Error 1292: Incorrect datetime value: '' for column 'cancel_time' at row 1"}
+2020-04-24 16:17:25.348 ERROR logger/logger.go:92 check err {"error": "Error 1292: Incorrect datetime value: '' for column 'cancel_time' at row 1"}
+2020-04-24 16:18:18.277 ERROR logger/logger.go:92 check err {"error": "Error 1048: Column 'cancel_time' cannot be null"}
+2020-04-24 16:51:38.582 ERROR logger/logger.go:92 查询订单出现错误 {"错误原因": "FAIL当前使用此业务的用户过多,请稍后再试", "交易订单号": "6VxH4qIla22QsgBQDZRuOHZVTbBVtGhx"}
+2020-04-24 17:15:07.448 ERROR logger/logger.go:92 check err {"error": "No content found to be updated"}
diff --git a/models/customer_order.go b/models/customer_order.go
index f9a0eb4..f5b348c 100644
--- a/models/customer_order.go
+++ b/models/customer_order.go
@@ -37,8 +37,8 @@ type CustomerOrder struct {
ExpressId int `json:"express_id" xorm:"not null default '0' comment('快递公司名字') INT(11)"`
ExpressName string `json:"express_name" xorm:"not null default '' comment('快递名字') VARCHAR(128)"`
ExpressNo string `json:"express_no" xorm:"not null default '' comment('快递单号') VARCHAR(128)"`
- CancelTime time.Time `json:"cancel_time" xorm:"not null default '1970-01-01 08:00:00' comment('取消时间') TIMESTAMP"`
- AutoReceiveTime time.Time `json:"auto_receive_time" xorm:"not null default '1970-01-01 08:00:00' comment('自动收货时间') TIMESTAMP"`
+ CancelTime time.Time `json:"cancel_time" xorm:"comment('取消时间') DATETIME"`
+ AutoReceiveTime time.Time `json:"auto_receive_time" xorm:"comment('自动收货时间') DATETIME"`
// 无关变量
OrderTime string `json:"order_time,omitempty" xorm:"-"`
diff --git a/models/customer_order_sub.go b/models/customer_order_sub.go
index db6cbf7..85d9713 100644
--- a/models/customer_order_sub.go
+++ b/models/customer_order_sub.go
@@ -32,7 +32,7 @@ func (t *CustomerOrderSub) Alias(n string) string {
return fmt.Sprintf("%s as %s", t.TableName(), n)
}
-func GetCustomerOrderSubByOutTradeNos(outTradeNos []string) (subs []map[string]string, err error) {
+func GetCustomerOrderSubByOutTradeNos(outTradeNos ...string) (subs []map[string]string, err error) {
err = core.GetXormAuto().Table(new(CustomerOrderSub)).Alias("s").
Select("s.out_trade_no, s.goods_id, s.goods_num, s.good_name, s.good_price, g.goods_pic_url").Join("left",
new(CustomerGoods).Alias("g"), "g.id=s.goods_id").
diff --git a/utils/define/define.go b/utils/define/define.go
index 282b9c2..72cfd2a 100644
--- a/utils/define/define.go
+++ b/utils/define/define.go
@@ -1,5 +1,7 @@
package define
+import "time"
+
const TimeFormat = "2006-01-01 15:04:05"
const (
@@ -83,3 +85,5 @@ const (
TYPE_CUSTOMER = "customer"
TYPE_ENTRYPEOPLE = "entry_people"
)
+
+var DefaultTime = time.Date(1970, 1, 1, 8, 0, 0, 0, time.UTC)