From 04abb297d6242632cec2f29e30212338bbd043c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 10:51:34 +0800 Subject: [PATCH 01/22] =?UTF-8?q?=E4=BA=AC=E8=A5=BF=E5=94=AE=E5=90=8E?= =?UTF-8?q?=E5=8D=95=E5=8D=95=E4=B8=AA=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 5 +++++ business/partner/purchase/jx/order_afs.go | 2 +- controllers/jx_order2.go | 19 +++++++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 57b7515cb..cc286250c 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -202,6 +202,11 @@ func GetMyOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params m return pagedInfo, err } +func GetMyAfsOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) { + + return pagedInfo, err +} + func GetMyOrderCountInfo(ctx *jxcontext.Context, fromDate, toDate time.Time, statuss []int) (countInfo []*model.GoodsOrderCountInfo, err error) { countInfo, err = dao.GetMyOrderCountInfo(dao.GetDB(), ctx.GetUserID(), fromDate, toDate, statuss) return countInfo, err diff --git a/business/partner/purchase/jx/order_afs.go b/business/partner/purchase/jx/order_afs.go index 77c8c5080..3f042a212 100644 --- a/business/partner/purchase/jx/order_afs.go +++ b/business/partner/purchase/jx/order_afs.go @@ -57,7 +57,7 @@ func (c *PurchaseHandler) ConfirmReceivedReturnGoods(ctx *jxcontext.Context, ord // 发起全款退款 func (c *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) { - err = fmt.Errorf("%s不支持售后全额退款,请让买家发起退款", model.VendorChineseNames[model.VendorIDJX]) + c.PartRefundOrder(ctx, order, order.Skus, reason) return err } diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index 2b5c561f0..f1a56b146 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -111,6 +111,25 @@ func (c *JxOrderController) GetMyOrders() { }) } +// @Title 查询自己的售后单 +// @Description 查询自己的售后单 +// @Param token header string true "认证token" +// @Param vendorOrderID query string false "订单号,如果此项不为空,忽略其它所有查询条件" +// @Param afsOrderID query string false "售后单号" +// @Param fromTime query string false "开始日期(包含),格式(2006-01-02),如果订单号为空此项必须要求" +// @Param toTime query string false "结束日期(包含),格式(2006-01-02),如果订单号为空此项必须要求" +// @Param offset query int false "结果起始序号(以0开始,缺省为0)" +// @Param pageSize query int false "结果页大小(缺省为50,-1表示全部)" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetMyAfsOrders [get] +func (c *JxOrderController) GetMyAfsOrders() { + c.callGetMyAfsOrders(func(params *tJxorderGetMyAfsOrdersParams) (retVal interface{}, errCode string, err error) { + + return retVal, "", err + }) +} + // @Title 查询自己的订单状态数量信息 // @Description 查询自己的订单状态数量信息 // @Param token header string true "认证token" From b6372f62abfea845a09e289994364d867b043183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 11:15:18 +0800 Subject: [PATCH 02/22] =?UTF-8?q?=E5=94=AE=E5=90=8E=E5=8D=95sql=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/dao_order.go | 8 ++++++-- business/partner/purchase/jx/localjx/order.go | 4 ++-- business/partner/purchase/jx/order_afs.go | 17 ++++++++++------- controllers/jx_order.go | 7 ++++--- controllers/jx_order2.go | 2 +- 5 files changed, 23 insertions(+), 15 deletions(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index eeceaa567..0a1ecbc17 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -337,7 +337,7 @@ func GetStoresOrderSaleInfo(db *DaoDB, storeIDList []int, fromTime time.Time, to return saleInfoList, err } -func GetAfsOrderSkuInfo(db *DaoDB, vendorOrderID, afsOrderID string, vendorID int) (skus []*model.OrderFinancialSkuExt, err error) { +func GetAfsOrderSkuInfo(db *DaoDB, vendorOrderID, afsOrderID string, vendorID int, isNotFaild bool) (skus []*model.OrderFinancialSkuExt, err error) { if vendorOrderID == "" && afsOrderID == "" { return nil, fmt.Errorf("必须指定订单或售后单ID") } @@ -346,6 +346,7 @@ func GetAfsOrderSkuInfo(db *DaoDB, vendorOrderID, afsOrderID string, vendorID in FROM order_sku_financial t1 LEFT JOIN sku t2 ON t2.id = IF(t1.jx_sku_id <> 0, t1.jx_sku_id, t1.sku_id) LEFT JOIN sku_name t3 ON t3.id = t2.name_id + LEFT JOIN afs_order t4 ON t4.afs_order_id = t1.afs_order_id WHERE t1.is_afs_order = 1 AND t1.vendor_id = ?` sqlParams := []interface{}{ vendorID, @@ -359,7 +360,10 @@ func GetAfsOrderSkuInfo(db *DaoDB, vendorOrderID, afsOrderID string, vendorID in sql += " AND t1.afs_order_id = ?" sqlParams = append(sqlParams, afsOrderID) } - + if isNotFaild { + sql += " AND t4.status <> ?" + sqlParams = append(sqlParams, model.AfsOrderStatusFailed) + } err = GetRows(db, &skus, sql, sqlParams...) return skus, err } diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index cc286250c..223bc1b0a 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -202,8 +202,8 @@ func GetMyOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params m return pagedInfo, err } -func GetMyAfsOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) { - +func GetMyAfsOrders(ctx *jxcontext.Context, vendorOrderID, afsOrderID, fromTime, toTime string, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) { + return pagedInfo, err } diff --git a/business/partner/purchase/jx/order_afs.go b/business/partner/purchase/jx/order_afs.go index 3f042a212..bffcfb102 100644 --- a/business/partner/purchase/jx/order_afs.go +++ b/business/partner/purchase/jx/order_afs.go @@ -36,13 +36,14 @@ func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *mod StatusTime: time.Now(), Remark: reason, } - partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus) if status == model.AfsOrderStatusFinished { orderPays, err := dao.GetOrderPayList(dao.GetDB(), order.VendorOrderID, order.VendorID) if err == nil { _, err = localjx.RefundOrderByTL(ctx, orderPays[0], order.VendorOrderID, int(order.SkuUserMoney), reason) if err != nil { return err + } else { + partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus) } } } @@ -105,21 +106,23 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G } if skuMap[sku.SkuID] != nil { orderSku.Name = skuMap[sku.SkuID].SkuName - orderSku.UserMoney = skuMap[sku.SkuID].SalePrice - salePrice += skuMap[sku.SkuID].SalePrice + orderSku.UserMoney = skuMap[sku.SkuID].SalePrice * int64(skuMap[sku.SkuID].Count) + salePrice += skuMap[sku.SkuID].SalePrice * int64(skuMap[sku.SkuID].Count) } afsOrder.SkuUserMoney += orderSku.UserMoney afsOrder.Skus = append(afsOrder.Skus, orderSku) } - if afsOrder != nil { - err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) - } + if !isJxShop(appID) { orderPays, err := dao.GetOrderPayList(dao.GetDB(), order.VendorOrderID, order.VendorID) if err == nil { _, err = localjx.RefundOrderByTL(ctx, orderPays[0], order.VendorOrderID, int(salePrice), reason) if err != nil { return err + } else { + if afsOrder != nil { + err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) + } } } } @@ -141,7 +144,7 @@ func buildOrderStatus(ctx *jxcontext.Context, order *model.GoodsOrder, reason st if isJxShop { orderStatus.Status = model.AfsOrderStatusWait4Approve } else { - orderStatus.Status = model.AfsOrderStatusNew + orderStatus.Status = model.AfsOrderStatusFinished } return orderStatus } diff --git a/controllers/jx_order.go b/controllers/jx_order.go index a4d044b51..11b54609c 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -373,14 +373,15 @@ func (c *OrderController) GetAfsOrders() { // @Description 得到售后单SKU信息(订单与售后单必填一项) // @Param token header string true "认证token" // @Param vendorID query int true "售后单所属的厂商ID" -// @Param vendorOrderID query string faslse "订单ID" -// @Param afsOrderID query string faslse "售后单ID" +// @Param vendorOrderID query string false "订单ID" +// @Param afsOrderID query string false "售后单ID" +// @Param isNotFaild query bool false "是否查非失败的" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetAfsOrderSkuInfo [get] func (c *OrderController) GetAfsOrderSkuInfo() { c.callGetAfsOrderSkuInfo(func(params *tOrderGetAfsOrderSkuInfoParams) (retVal interface{}, errCode string, err error) { - retVal, err = dao.GetAfsOrderSkuInfo(dao.GetDB(), params.VendorOrderID, params.AfsOrderID, params.VendorID) + retVal, err = dao.GetAfsOrderSkuInfo(dao.GetDB(), params.VendorOrderID, params.AfsOrderID, params.VendorID, params.IsNotFaild) return retVal, "", err }) } diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index f1a56b146..8ff732a2d 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -125,7 +125,7 @@ func (c *JxOrderController) GetMyOrders() { // @router /GetMyAfsOrders [get] func (c *JxOrderController) GetMyAfsOrders() { c.callGetMyAfsOrders(func(params *tJxorderGetMyAfsOrdersParams) (retVal interface{}, errCode string, err error) { - + retVal, err = localjx.GetMyAfsOrders(params.Ctx, params.VendorOrderID, params.AfsOrderID, params.FromTime, params.ToTime, params.Offset, params.PageSize) return retVal, "", err }) } From 97afd1fbc6e0847c1822918994ee8cf8eca5af53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 11:17:44 +0800 Subject: [PATCH 03/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/jx_order.go | 2 +- controllers/jx_order2.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/controllers/jx_order.go b/controllers/jx_order.go index 11b54609c..e58520e1e 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -857,7 +857,7 @@ func (c *OrderController) RefundOrder() { if err != nil { return nil, "", err } - afsSkuList, err := dao.GetAfsOrderSkuInfo(dao.GetDB(), params.VendorOrderID, "", params.VendorID) + afsSkuList, err := dao.GetAfsOrderSkuInfo(dao.GetDB(), params.VendorOrderID, "", params.VendorID, false) if err != nil { return nil, "", err } diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index 8ff732a2d..ed557a21c 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -116,6 +116,7 @@ func (c *JxOrderController) GetMyOrders() { // @Param token header string true "认证token" // @Param vendorOrderID query string false "订单号,如果此项不为空,忽略其它所有查询条件" // @Param afsOrderID query string false "售后单号" +// @Param userID query string false "用户ID" // @Param fromTime query string false "开始日期(包含),格式(2006-01-02),如果订单号为空此项必须要求" // @Param toTime query string false "结束日期(包含),格式(2006-01-02),如果订单号为空此项必须要求" // @Param offset query int false "结果起始序号(以0开始,缺省为0)" From ab84703d2b9688e469fafa07ce57ae2746a2f7aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 11:45:18 +0800 Subject: [PATCH 04/22] getmyafsorders --- business/model/dao/dao_order.go | 40 +++++++++++++++++++ business/partner/purchase/jx/localjx/order.go | 8 +++- controllers/jx_order2.go | 2 +- routers/commentsRouter_controllers.go | 9 +++++ 4 files changed, 56 insertions(+), 3 deletions(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 0a1ecbc17..d4e846b2e 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1296,3 +1296,43 @@ func GetSimpleOrderSkus(db *DaoDB, vendorOrderID string) (skus []*model.OrderSku err = GetRows(db, &skus, sql, sqlParams) return skus, err } + +func GetAfsOrdersByPage(db *DaoDB, vendorOrderID, afsOrderID, userID string, fromTime, toTime time.Time, offset, pageSize int) (afsOrderList []*model.AfsOrder, totalCount int, err error) { + sql := ` + SELECT SQL_CALC_FOUND_ROWS * + FROM afs_order t1 + LEFT JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id + WHERE 1 = 1 + ` + sqlParams := []interface{}{} + if vendorOrderID != "" { + sql += " AND t1.vendor_order_id = ?" + sqlParams = append(sqlParams, vendorOrderID) + } + if afsOrderID != "" { + sql += " AND t1.afs_order_id = ?" + sqlParams = append(sqlParams, afsOrderID) + } + if !utils.IsTimeZero(fromTime) { + sql += " AND t1.afs_created_at >= ?" + sqlParams = append(sqlParams, fromTime) + } + if !utils.IsTimeZero(toTime) { + sql += " AND t1.afs_created_at <= ?" + sqlParams = append(sqlParams, toTime) + } + if userID != "" { + sql += " AND t2.user_id = ?" + sqlParams = append(sqlParams, userID) + } + sql += ` ORDER BY t1.afs_order_id DESC + LIMIT ? OFFSET ? + ` + sqlParams = append(sqlParams, pageSize, offset) + Begin(db) + defer Commit(db) + if err = GetRows(db, &afsOrderList, sql, sqlParams...); err == nil { + totalCount = GetLastTotalRowCount(db) + } + return afsOrderList, totalCount, err +} diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 223bc1b0a..a9283f3b8 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -202,8 +202,12 @@ func GetMyOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params m return pagedInfo, err } -func GetMyAfsOrders(ctx *jxcontext.Context, vendorOrderID, afsOrderID, fromTime, toTime string, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) { - +func GetMyAfsOrders(ctx *jxcontext.Context, vendorOrderID, afsOrderID, userID, fromTime, toTime string, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) { + afsOrderList, totalCount, err := dao.GetAfsOrdersByPage(dao.GetDB(), vendorOrderID, afsOrderID, userID, utils.Str2Time(fromTime), utils.Str2Time(toTime), offset, pageSize) + pagedInfo = &model.PagedInfo{ + TotalCount: totalCount, + Data: afsOrderList, + } return pagedInfo, err } diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index ed557a21c..707c210c9 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -126,7 +126,7 @@ func (c *JxOrderController) GetMyOrders() { // @router /GetMyAfsOrders [get] func (c *JxOrderController) GetMyAfsOrders() { c.callGetMyAfsOrders(func(params *tJxorderGetMyAfsOrdersParams) (retVal interface{}, errCode string, err error) { - retVal, err = localjx.GetMyAfsOrders(params.Ctx, params.VendorOrderID, params.AfsOrderID, params.FromTime, params.ToTime, params.Offset, params.PageSize) + retVal, err = localjx.GetMyAfsOrders(params.Ctx, params.VendorOrderID, params.AfsOrderID, params.UserID, params.FromTime, params.ToTime, params.Offset, params.PageSize) return retVal, "", err }) } diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index a3199757a..12ca830d3 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -673,6 +673,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], + beego.ControllerComments{ + Method: "GetMyAfsOrders", + Router: `/GetMyAfsOrders`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], beego.ControllerComments{ Method: "GetMyOrderCountInfo", From 59c23ffb42f9fd1686b338b7f06302770d9b4a7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 11:48:06 +0800 Subject: [PATCH 05/22] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=88=91=E7=9A=84=E5=94=AE=E5=90=8E=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/dao_order.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index d4e846b2e..1b0726844 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1331,6 +1331,8 @@ func GetAfsOrdersByPage(db *DaoDB, vendorOrderID, afsOrderID, userID string, fro sqlParams = append(sqlParams, pageSize, offset) Begin(db) defer Commit(db) + fmt.Println(sql) + fmt.Println(sqlParams) if err = GetRows(db, &afsOrderList, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount(db) } From 9b7c4c9a423db89443c7d59a68b5bd9c02553985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 11:56:38 +0800 Subject: [PATCH 06/22] getmyafsorder --- business/model/dao/dao_order.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 1b0726844..7c7304131 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1298,6 +1298,8 @@ func GetSimpleOrderSkus(db *DaoDB, vendorOrderID string) (skus []*model.OrderSku } func GetAfsOrdersByPage(db *DaoDB, vendorOrderID, afsOrderID, userID string, fromTime, toTime time.Time, offset, pageSize int) (afsOrderList []*model.AfsOrder, totalCount int, err error) { + pageSize = jxutils.FormalizePageSize(pageSize) + offset = jxutils.FormalizePageOffset(offset) sql := ` SELECT SQL_CALC_FOUND_ROWS * FROM afs_order t1 @@ -1331,8 +1333,6 @@ func GetAfsOrdersByPage(db *DaoDB, vendorOrderID, afsOrderID, userID string, fro sqlParams = append(sqlParams, pageSize, offset) Begin(db) defer Commit(db) - fmt.Println(sql) - fmt.Println(sqlParams) if err = GetRows(db, &afsOrderList, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount(db) } From 6e07a0a6370f2c7809e65a10948bbfb753b29768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 13:48:23 +0800 Subject: [PATCH 07/22] =?UTF-8?q?=E4=BA=AC=E4=B8=9C=E5=94=AE=E5=90=8E?= =?UTF-8?q?=E5=8D=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 4 ++-- business/partner/partner.go | 2 +- business/partner/purchase/jd/order.go | 20 +++++++++----------- business/partner/purchase/jx/order_afs.go | 2 +- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 0f2aebec6..5f981e63b 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -208,9 +208,9 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m return err } -func (c *OrderManager) ChangeOrderInfo(order *model.GoodsOrder, valid map[string]interface{}) (err error) { +func (c *OrderManager) ChangeOrderInfo(order *model.GoodsOrder) (err error) { db := dao.GetDB() - dao.UpdateEntityLogically(db, order, valid, "jxadmin", nil) + _, err = dao.UpdateEntity(db, order, "ConsigneeAddress", "ConsigneeName", "ConsigneeMobile", "ConsigneeLat", "ConsigneeLng", "BuyerComment") return err } diff --git a/business/partner/partner.go b/business/partner/partner.go index a24968fb8..f1817232b 100644 --- a/business/partner/partner.go +++ b/business/partner/partner.go @@ -114,7 +114,7 @@ type IOrderManager interface { GetOrderWaybillInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID int, isNotEnded, isGetPos bool) (bills []*model.WaybillExt, err error) - ChangeOrderInfo(order *model.GoodsOrder, valid map[string]interface{}) (err error) + ChangeOrderInfo(order *model.GoodsOrder (err error) // afs order OnAfsOrderAdjust(afsOrder *model.AfsOrder, orderStatus *model.OrderStatus) (err error) OnAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *model.OrderStatus) (err error) diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index 273479a04..edbb5c13d 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -127,8 +127,8 @@ func (c *PurchaseHandler) onOrderInfoChangeMsg(vendorOrgCode string, msg *jdapi. order, _, err := c.getOrder(a, msg.BillID) if err == nil { globals.SugarLogger.Debugf("onOrderInfoChangeMsg orderID:%s", msg.BillID) - valid := orderInfoChangeSet(order, msg) - partner.CurOrderManager.ChangeOrderInfo(order, valid) + orderInfoChangeSet(order, msg) + partner.CurOrderManager.ChangeOrderInfo(order) } return retVal } @@ -574,25 +574,23 @@ func (c *PurchaseHandler) ConfirmSelfTake(ctx *jxcontext.Context, order *model.G return err } -func orderInfoChangeSet(order *model.GoodsOrder, msg *jdapi.CallbackOrderInfoChangeMsg) (valid map[string]interface{}) { - valid = make(map[string]interface{}) +func orderInfoChangeSet(order *model.GoodsOrder, msg *jdapi.CallbackOrderInfoChangeMsg) { if msg.BuyerFullAddress != "" { - valid["consigneeAddress"] = msg.BuyerFullAddress + order.ConsigneeAddress = msg.BuyerFullAddress } if msg.BuyerFullName != "" { - valid["consigneeName"] = msg.BuyerFullName + order.ConsigneeName = msg.BuyerFullName } if msg.BuyerMobile != "" { - valid["consigneeMobile"] = msg.BuyerMobile + order.ConsigneeMobile = msg.BuyerMobile } if msg.BuyerLat != 0 { - valid["consigneeLat"] = jxutils.StandardCoordinate2Int(msg.BuyerLat) + order.ConsigneeLat = jxutils.StandardCoordinate2Int(msg.BuyerLat) } if msg.BuyerLng != 0 { - valid["consigneeLng"] = jxutils.StandardCoordinate2Int(msg.BuyerLng) + order.ConsigneeLng = jxutils.StandardCoordinate2Int(msg.BuyerLng) } if msg.OrderBuyerRemark != "" { - valid["buyerComment"] = msg.OrderBuyerRemark + order.BuyerComment = msg.OrderBuyerRemark } - return valid } diff --git a/business/partner/purchase/jx/order_afs.go b/business/partner/purchase/jx/order_afs.go index bffcfb102..2596c13d3 100644 --- a/business/partner/purchase/jx/order_afs.go +++ b/business/partner/purchase/jx/order_afs.go @@ -58,7 +58,7 @@ func (c *PurchaseHandler) ConfirmReceivedReturnGoods(ctx *jxcontext.Context, ord // 发起全款退款 func (c *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) { - c.PartRefundOrder(ctx, order, order.Skus, reason) + err = c.PartRefundOrder(ctx, order, order.Skus, reason) return err } From 36d8b5ac86e6cf8d2c585298cbc5416f94dfdd10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 14:14:43 +0800 Subject: [PATCH 08/22] =?UTF-8?q?=E4=BA=AC=E4=B8=9C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 2 +- business/partner/partner.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 2870ebc70..5890b2b1f 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -393,7 +393,7 @@ func doDailyWork() { dao.SetStoresMapSyncStatus(dao.GetDB(), nil, nil, model.SyncFlagStoreStatus) cms.CurVendorSync.SyncStore2(jxcontext.AdminCtx, dao.GetDB(), nil, nil, true, true) - // syncStoreSku() + syncStoreSku() InitEx() cms.SyncStoresCourierInfo(jxcontext.AdminCtx, nil, false, true) netprinter.RebindAllPrinters(jxcontext.AdminCtx, false, true) diff --git a/business/partner/partner.go b/business/partner/partner.go index f1817232b..8be8aa7a4 100644 --- a/business/partner/partner.go +++ b/business/partner/partner.go @@ -114,7 +114,7 @@ type IOrderManager interface { GetOrderWaybillInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID int, isNotEnded, isGetPos bool) (bills []*model.WaybillExt, err error) - ChangeOrderInfo(order *model.GoodsOrder (err error) + ChangeOrderInfo(order *model.GoodsOrder) (err error) // afs order OnAfsOrderAdjust(afsOrder *model.AfsOrder, orderStatus *model.OrderStatus) (err error) OnAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *model.OrderStatus) (err error) From 3b456a550f56430f0ea2e2d4b9cf6ba1f28566d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 14:23:55 +0800 Subject: [PATCH 09/22] =?UTF-8?q?=E4=BA=AC=E8=A5=BF=E5=94=AE=E5=90=8E?= =?UTF-8?q?=E5=8D=95=EF=BC=8C=E7=94=A8=E6=88=B7=E7=94=B3=E8=AF=B7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/order_afs.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/business/partner/purchase/jx/order_afs.go b/business/partner/purchase/jx/order_afs.go index 2596c13d3..027dc473e 100644 --- a/business/partner/purchase/jx/order_afs.go +++ b/business/partner/purchase/jx/order_afs.go @@ -5,6 +5,8 @@ import ( "strings" "time" + "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/globals/api" @@ -64,6 +66,7 @@ func (c *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.Goods // 发起部分退款 func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error) { + globals.SugarLogger.Debugf("PartRefundOrder jx, orderID :%v", order.VendorOrderID) var ( skuMap = make(map[int]*model.OrderSku) appID = "" @@ -125,6 +128,8 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G } } } + } else { + err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) } return err } From e048b6ab2c43b2765079a4f43674c5e7560059bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 14:58:21 +0800 Subject: [PATCH 10/22] =?UTF-8?q?=E5=A4=96=E5=8D=96=E7=AE=A1=E5=AE=B6?= =?UTF-8?q?=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/printer/xiaowm/xiaowm.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/business/partner/printer/xiaowm/xiaowm.go b/business/partner/printer/xiaowm/xiaowm.go index 9ea887829..74b47098c 100644 --- a/business/partner/printer/xiaowm/xiaowm.go +++ b/business/partner/printer/xiaowm/xiaowm.go @@ -213,7 +213,7 @@ func (c *PrinterHandler) getOrderContent2(order *model.GoodsOrder, storeTel stri |5 |5 |5商品明细: -|5品名 数量 单价 小计 +|5品名 数量 |5-------------------------------- ` // |6实际支付: %s @@ -234,7 +234,8 @@ func (c *PrinterHandler) getOrderContent2(order *model.GoodsOrder, storeTel stri for _, sku := range order.Skus { orderFmt += `|5%s` orderFmt += `|5%8s` - orderParams = append(orderParams, sku.SkuName, "x"+utils.Int2Str(sku.Count), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice*int64(sku.Count))) + orderParams = append(orderParams, sku.SkuName, "x"+utils.Int2Str(sku.Count)) + // jxutils.IntPrice2StandardCurrencyString(sku.SalePrice), jxutils.IntPrice2StandardCurrencyString(sku.SalePrice*int64(sku.Count)) } orderFmt += ` |5 From aa014dcdc888486bdcc50f0c59f4196ad34fa1cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 15:52:20 +0800 Subject: [PATCH 11/22] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=BA=AC=E8=A5=BF?= =?UTF-8?q?=E5=95=86=E5=9F=8E=E5=94=AE=E5=90=8E=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/order_afs.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/jx/order_afs.go b/business/partner/purchase/jx/order_afs.go index 027dc473e..7d1ed91eb 100644 --- a/business/partner/purchase/jx/order_afs.go +++ b/business/partner/purchase/jx/order_afs.go @@ -48,6 +48,8 @@ func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *mod partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus) } } + } else { + partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus) } return err } @@ -109,8 +111,8 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G } if skuMap[sku.SkuID] != nil { orderSku.Name = skuMap[sku.SkuID].SkuName - orderSku.UserMoney = skuMap[sku.SkuID].SalePrice * int64(skuMap[sku.SkuID].Count) - salePrice += skuMap[sku.SkuID].SalePrice * int64(skuMap[sku.SkuID].Count) + orderSku.UserMoney = skuMap[sku.SkuID].SalePrice * int64(sku.Count) + salePrice += skuMap[sku.SkuID].SalePrice * int64(sku.Count) } afsOrder.SkuUserMoney += orderSku.UserMoney afsOrder.Skus = append(afsOrder.Skus, orderSku) From 119e65c8fba4bc04afb81916508a0defc70e50e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 16:51:14 +0800 Subject: [PATCH 12/22] =?UTF-8?q?getmyafsorder=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/dao_order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 7c7304131..5e6bec6e6 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1301,7 +1301,7 @@ func GetAfsOrdersByPage(db *DaoDB, vendorOrderID, afsOrderID, userID string, fro pageSize = jxutils.FormalizePageSize(pageSize) offset = jxutils.FormalizePageOffset(offset) sql := ` - SELECT SQL_CALC_FOUND_ROWS * + SELECT SQL_CALC_FOUND_ROWS t1.* FROM afs_order t1 LEFT JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id WHERE 1 = 1 From a97c9bed9638d4a00b356ce2f89b7cd7967b427e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 17:07:01 +0800 Subject: [PATCH 13/22] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=A6=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/delivery/mtps/waybill.go | 53 ++++++++++++----------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index a602fcfa8..5cb8a7cb2 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -61,7 +61,13 @@ func OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg) (retVal *mtpsapi.Ca } func (c *DeliveryHandler) OnWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *mtpsapi.CallbackResponse) { - c.pushToGy(msg) + vendorOrderID, _ := jxutils.SplitUniversalOrderID(msg.OrderID) + order, _ := dao.GetSimpleOrder(dao.GetDB(), vendorOrderID) + //查不到订单可能就是果园的订单 + if order == nil { + c.pushToGy(msg) + return mtpsapi.Err2CallbackResponse(nil, order.VendorStatus) + } jxutils.CallMsgHandler(func() { retVal = c.onWaybillMsg(msg) }, jxutils.ComposeUniversalOrderID(msg.OrderID, model.VendorIDMTPS)) @@ -110,32 +116,27 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m } func (c *DeliveryHandler) pushToGy(msg *mtpsapi.CallbackOrderMsg) { - vendorOrderID, _ := jxutils.SplitUniversalOrderID(msg.OrderID) - order, _ := dao.GetSimpleOrder(dao.GetDB(), vendorOrderID) - //查不到订单可能就是果园的订单 - if order == nil { - cl := http.Client{} - params := make(map[string]interface{}) - params["mt_peisong_id"] = msg.MtPeisongID - params["courier_name"] = msg.CourierName - params["delivery_id"] = msg.DeliveryID - params["appkey"] = msg.AppKey - params["order_id"] = msg.OrderID - params["courier_phone"] = msg.CourierPhone - params["status"] = msg.Status - params["timestamp"] = msg.Timestamp - params["cancel_reason_id"] = msg.CancelReasonId - params["cancel_reason"] = msg.CancelReason - urls := utils.Map2URLValues(params) - sign := signParams(urls) - params["sign"] = sign - request, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtps/status", strings.NewReader(utils.Map2URLValues(params).Encode())) - if err != nil { - return - } - request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") - cl.Do(request) + cl := http.Client{} + params := make(map[string]interface{}) + params["mt_peisong_id"] = msg.MtPeisongID + params["courier_name"] = msg.CourierName + params["delivery_id"] = msg.DeliveryID + params["appkey"] = msg.AppKey + params["order_id"] = msg.OrderID + params["courier_phone"] = msg.CourierPhone + params["status"] = msg.Status + params["timestamp"] = msg.Timestamp + params["cancel_reason_id"] = msg.CancelReasonId + params["cancel_reason"] = msg.CancelReason + urls := utils.Map2URLValues(params) + sign := signParams(urls) + params["sign"] = sign + request, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtps/status", strings.NewReader(utils.Map2URLValues(params).Encode())) + if err != nil { + return } + request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") + cl.Do(request) } func signParams(params url.Values) string { From ebf768d83bee0e39a9bd9c290c0299e837a860bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 17:12:19 +0800 Subject: [PATCH 14/22] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=A6=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/delivery/mtps/waybill.go | 53 +++++++++++------------ 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index 5cb8a7cb2..a602fcfa8 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -61,13 +61,7 @@ func OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg) (retVal *mtpsapi.Ca } func (c *DeliveryHandler) OnWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *mtpsapi.CallbackResponse) { - vendorOrderID, _ := jxutils.SplitUniversalOrderID(msg.OrderID) - order, _ := dao.GetSimpleOrder(dao.GetDB(), vendorOrderID) - //查不到订单可能就是果园的订单 - if order == nil { - c.pushToGy(msg) - return mtpsapi.Err2CallbackResponse(nil, order.VendorStatus) - } + c.pushToGy(msg) jxutils.CallMsgHandler(func() { retVal = c.onWaybillMsg(msg) }, jxutils.ComposeUniversalOrderID(msg.OrderID, model.VendorIDMTPS)) @@ -116,27 +110,32 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m } func (c *DeliveryHandler) pushToGy(msg *mtpsapi.CallbackOrderMsg) { - cl := http.Client{} - params := make(map[string]interface{}) - params["mt_peisong_id"] = msg.MtPeisongID - params["courier_name"] = msg.CourierName - params["delivery_id"] = msg.DeliveryID - params["appkey"] = msg.AppKey - params["order_id"] = msg.OrderID - params["courier_phone"] = msg.CourierPhone - params["status"] = msg.Status - params["timestamp"] = msg.Timestamp - params["cancel_reason_id"] = msg.CancelReasonId - params["cancel_reason"] = msg.CancelReason - urls := utils.Map2URLValues(params) - sign := signParams(urls) - params["sign"] = sign - request, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtps/status", strings.NewReader(utils.Map2URLValues(params).Encode())) - if err != nil { - return + vendorOrderID, _ := jxutils.SplitUniversalOrderID(msg.OrderID) + order, _ := dao.GetSimpleOrder(dao.GetDB(), vendorOrderID) + //查不到订单可能就是果园的订单 + if order == nil { + cl := http.Client{} + params := make(map[string]interface{}) + params["mt_peisong_id"] = msg.MtPeisongID + params["courier_name"] = msg.CourierName + params["delivery_id"] = msg.DeliveryID + params["appkey"] = msg.AppKey + params["order_id"] = msg.OrderID + params["courier_phone"] = msg.CourierPhone + params["status"] = msg.Status + params["timestamp"] = msg.Timestamp + params["cancel_reason_id"] = msg.CancelReasonId + params["cancel_reason"] = msg.CancelReason + urls := utils.Map2URLValues(params) + sign := signParams(urls) + params["sign"] = sign + request, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtps/status", strings.NewReader(utils.Map2URLValues(params).Encode())) + if err != nil { + return + } + request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") + cl.Do(request) } - request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") - cl.Do(request) } func signParams(params url.Values) string { From 8136f72674e9528459f612550e2eb977f0a4cd82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 17:32:41 +0800 Subject: [PATCH 15/22] =?UTF-8?q?=E6=9E=9C=E5=9B=AD=E5=8F=91=E7=BE=8E?= =?UTF-8?q?=E5=9B=A2=E5=B0=9D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/delivery/mtps/waybill.go | 54 +++++++++++------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index a602fcfa8..1b283639c 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -61,7 +61,13 @@ func OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg) (retVal *mtpsapi.Ca } func (c *DeliveryHandler) OnWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *mtpsapi.CallbackResponse) { - c.pushToGy(msg) + vendorOrderID, _ := jxutils.SplitUniversalOrderID(msg.OrderID) + order, _ := dao.GetSimpleOrder(dao.GetDB(), vendorOrderID) + //查不到订单可能就是果园的订单 + if order == nil { + c.pushToGy(msg) + return mtpsapi.SuccessResponse + } jxutils.CallMsgHandler(func() { retVal = c.onWaybillMsg(msg) }, jxutils.ComposeUniversalOrderID(msg.OrderID, model.VendorIDMTPS)) @@ -105,37 +111,31 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m globals.SugarLogger.Warnf("onWaybillMsg unknown msg:%v", msg) return mtpsapi.SuccessResponse } - globals.SugarLogger.Debugf("onWaybillMsg test, %v", msg) return mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus) } func (c *DeliveryHandler) pushToGy(msg *mtpsapi.CallbackOrderMsg) { - vendorOrderID, _ := jxutils.SplitUniversalOrderID(msg.OrderID) - order, _ := dao.GetSimpleOrder(dao.GetDB(), vendorOrderID) - //查不到订单可能就是果园的订单 - if order == nil { - cl := http.Client{} - params := make(map[string]interface{}) - params["mt_peisong_id"] = msg.MtPeisongID - params["courier_name"] = msg.CourierName - params["delivery_id"] = msg.DeliveryID - params["appkey"] = msg.AppKey - params["order_id"] = msg.OrderID - params["courier_phone"] = msg.CourierPhone - params["status"] = msg.Status - params["timestamp"] = msg.Timestamp - params["cancel_reason_id"] = msg.CancelReasonId - params["cancel_reason"] = msg.CancelReason - urls := utils.Map2URLValues(params) - sign := signParams(urls) - params["sign"] = sign - request, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtps/status", strings.NewReader(utils.Map2URLValues(params).Encode())) - if err != nil { - return - } - request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") - cl.Do(request) + cl := http.Client{} + params := make(map[string]interface{}) + params["mt_peisong_id"] = msg.MtPeisongID + params["courier_name"] = msg.CourierName + params["delivery_id"] = msg.DeliveryID + params["appkey"] = msg.AppKey + params["order_id"] = msg.OrderID + params["courier_phone"] = msg.CourierPhone + params["status"] = msg.Status + params["timestamp"] = msg.Timestamp + params["cancel_reason_id"] = msg.CancelReasonId + params["cancel_reason"] = msg.CancelReason + urls := utils.Map2URLValues(params) + sign := signParams(urls) + params["sign"] = sign + request, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtps/status", strings.NewReader(utils.Map2URLValues(params).Encode())) + if err != nil { + return } + request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") + cl.Do(request) } func signParams(params url.Values) string { From d9cf8466de4e3b8b673cc37c88362e1b59c8c2fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sat, 27 Jun 2020 18:17:42 +0800 Subject: [PATCH 16/22] =?UTF-8?q?=E7=BE=8E=E5=9B=A2=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/mtwm/order.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 71f6e81c9..28b16a250 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -396,14 +396,14 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *mtwmapi.CallbackMsg) (orderSta if msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund { if notifyType == mtwmapi.NotifyTypePartyApply { if globals.EnableMtwmStoreWrite { - goods, err := dao.GetSimpleOrder(dao.GetDB(), orderID) - if err == nil { - if goods.Status < model.OrderStatusDelivering { - api.MtwmAPI.OrderRefundAgree(utils.Str2Int64(orderID), "自动确认退款") - } else { - api.MtwmAPI.OrderRefundReject(utils.Str2Int64(orderID), "商品配送中,请联系门店。") // todo 京东与饿百都没有售前用户提出订单调整的,自动拒绝调整单 - } - } + // goods, err := dao.GetSimpleOrder(dao.GetDB(), orderID) + // if err == nil { + // if goods.Status < model.OrderStatusDelivering { + api.MtwmAPI.OrderRefundAgree(utils.Str2Int64(orderID), "自动确认退款") + // } else { + // api.MtwmAPI.OrderRefundReject(utils.Str2Int64(orderID), "商品配送中,请联系门店。") // todo 京东与饿百都没有售前用户提出订单调整的,自动拒绝调整单 + // } + // } } } else if notifyType == mtwmapi.NotifyTypeSuccess { vendorStatus = fakeOrderAdjustFinished From af545c9cd3047875e1a701da7e64b3d0cdad93fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sun, 28 Jun 2020 08:57:33 +0800 Subject: [PATCH 17/22] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=B0=B4=E5=8D=B0=E6=94=B9=E4=B8=BA=E5=8F=AA=E6=89=93=E6=A0=87?= =?UTF-8?q?=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 21 +++++++++++++-------- business/jxstore/misc/misc.go | 5 +++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 667f1d49d..d3069e6d9 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -713,12 +713,14 @@ func buildSetFinishHook(task tasksch.ITask, ctx *jxcontext.Context) { globals.SugarLogger.Debugf("同步错误发送钉钉消息失败, authinfo [%v] , [%v]", *authInfo, err) } } else { - if time.Now().Hour() >= 20 || time.Now().Hour() < 7 { - downloadURL, _, _ := WirteToExcelBySyncFailed(task) - user, err := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913") - noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) - if user != nil && err == nil { - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg) + if len(task.GetFailedList()) > 1 { + if time.Now().Hour() >= 20 || time.Now().Hour() < 7 { + downloadURL, _, _ := WirteToExcelBySyncFailed(task) + user, err := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913") + noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) + if user != nil && err == nil { + ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg) + } } } } @@ -1235,9 +1237,12 @@ func SyncSkuExperfixAndWatermark(ctx *jxcontext.Context) (err error) { for _, v := range skuIDs { OnUpdateThing(ctx, db, nil, int64(v), model.ThingTypeSku) } - CurVendorSync.SyncSkus(ctx, db, nil, skuIDs, true, true, ctx.GetUserName()) + // CurVendorSync.SyncSkus(ctx, db, nil, skuIDs, true, true, ctx.GetUserName()) } else { - CurVendorSync.SyncStoresSkus2(ctx, nil, 0, db, []int{skuExinfo.VendorID}, nil, false, skuIDs, nil, model.SyncFlagModifiedMask, true, true) + if len(skuIDs) > 0 { + SetStoreSkuSyncStatus2(db, nil, []int{skuExinfo.VendorID}, skuIDs, model.SyncFlagModifiedMask) + } + // CurVendorSync.SyncStoresSkus2(ctx, nil, 0, db, []int{skuExinfo.VendorID}, nil, false, skuIDs, nil, model.SyncFlagModifiedMask, true, true) } return retVal, err }, skuExinfos) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 5890b2b1f..2f84dd366 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -390,6 +390,9 @@ func doDailyWork2() { func doDailyWork() { globals.SugarLogger.Debug("doDailyWork") + //同步商品额外前缀和水印图(打标记) + cms.SyncSkuExperfixAndWatermark(jxcontext.AdminCtx) + dao.SetStoresMapSyncStatus(dao.GetDB(), nil, nil, model.SyncFlagStoreStatus) cms.CurVendorSync.SyncStore2(jxcontext.AdminCtx, dao.GetDB(), nil, nil, true, true) @@ -419,8 +422,6 @@ func doDailyWork() { orderman.RefreshJdShopOrdersEarningPrice(jxcontext.AdminCtx, time.Now().AddDate(0, 0, -3).Format("20060102"), time.Now().Format("20060102")) //同步上架京东商城待售商品 cms.RefreshJdsSkusStatus(jxcontext.AdminCtx) - //同步商品额外前缀和水印图 - cms.SyncSkuExperfixAndWatermark(jxcontext.AdminCtx) } func RefreshRealMobile(ctx *jxcontext.Context, vendorID int, fromTime, toTime time.Time, isAsync, isContinueWhenError bool) (hint string, err error) { From af4438c9e672334930800352f7d635dbba74d04e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sun, 28 Jun 2020 10:22:58 +0800 Subject: [PATCH 18/22] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=BD=AC=E7=A7=BB?= =?UTF-8?q?=E5=92=8C=E9=97=A8=E5=BA=97=E8=90=A5=E4=B8=9A=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E8=8C=83=E5=9B=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 41 +++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 5f981e63b..c1ed054de 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -1126,6 +1126,7 @@ func result2Orders(ctx *jxcontext.Context, result *jdshopapi.AllOrdersResult) (o if jdsOrder.OrderStatus == jdshopapi.JdsOrderStatusPause { order.BusinessType = model.BusinessTypeDingshida order.ExpectedDeliveredTime = utils.Str2Time(orderDetail.ExpectedDeliveredTime) + order.PickDeadline = order.ExpectedDeliveredTime.Add(-time.Hour) } else if jdsOrder.OrderStatus == jdshopapi.JdsOrderStatusWaittingExport { order.ExpectedDeliveredTime = order.OrderCreatedAt.Add(time.Hour) order.BusinessType = model.BusinessTypeImmediate @@ -1230,6 +1231,46 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) order.StoreID = storeID order.StoreName = stores[0].Name order.VendorStoreID = storeMaps[0].VendorStoreID + //如果是立即达的订单,要判断一下送达时间是否在门店营业时间范围内 + //若没有,则要把这个订单变成定时达,预计送达时间改为门店的营业时间 + //如果门店没有营业时间,则直接报错 + if order.BusinessType == model.BusinessTypeImmediate { + store := stores[0] + var ( + opentime1 = jxutils.JxOperationTime2TimeByDate(store.OpenTime1, order.ExpectedDeliveredTime) + opentime2 = jxutils.JxOperationTime2TimeByDate(store.OpenTime2, order.ExpectedDeliveredTime) + closetime1 = jxutils.JxOperationTime2TimeByDate(store.CloseTime1, order.ExpectedDeliveredTime) + closetime2 = jxutils.JxOperationTime2TimeByDate(store.CloseTime2, order.ExpectedDeliveredTime) + expectedTime = order.ExpectedDeliveredTime + ) + if store.OpenTime1 == 0 || store.CloseTime1 == 0 { + return "", fmt.Errorf("该门店没有营业时间,不能接单!门店:[%v]", storeID) + } + if !(expectedTime.Sub(opentime1) >= 0 && expectedTime.Sub(closetime1) <= 0) { + if store.OpenTime2 != 0 && store.CloseTime2 != 0 { + if !(expectedTime.Sub(opentime2) >= 0 && expectedTime.Sub(closetime2) <= 0) { + if expectedTime.Sub(opentime1) < 0 { + order.ExpectedDeliveredTime = opentime1 + order.BusinessType = model.BusinessTypeDingshida + } else { + if expectedTime.Sub(opentime2) < 0 { + order.ExpectedDeliveredTime = opentime2 + } else { + order.ExpectedDeliveredTime = opentime1.AddDate(0, 0, 1) + } + order.BusinessType = model.BusinessTypeDingshida + } + } + } else { + if expectedTime.Sub(opentime1) < 0 { + order.ExpectedDeliveredTime = opentime1 + } else { + order.ExpectedDeliveredTime = opentime1.AddDate(0, 0, 1) + } + order.BusinessType = model.BusinessTypeDingshida + } + } + } } else { return "", fmt.Errorf("未查询到该门店对应的平台信息!门店:[%v]", order.StoreID) } From cf6cd943c9c5afdff2c4b71f98b0d430430b9f3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sun, 28 Jun 2020 15:27:05 +0800 Subject: [PATCH 19/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E8=B4=9F=E8=B4=A3=E4=BA=BA=EF=BC=8C=E4=B8=A5=E5=B0=8F=E5=BA=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 4f8f76c24..0681573fc 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -194,6 +194,7 @@ var ( "18328080405": "18328080405", "17380734342": "17380734342", "15208271238": "15208271238", + "18583684218": "18583684218", } ) From d0df671091f3f3773efc162a1995647a100ab7dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sun, 28 Jun 2020 17:53:16 +0800 Subject: [PATCH 20/22] =?UTF-8?q?shopprice=E4=B8=BA0=E7=9A=84=E6=9A=82?= =?UTF-8?q?=E6=97=B6=E6=8C=89saleprice*0.7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index c1ed054de..f59c51459 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -381,6 +381,9 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao. } } else { v.ShopPrice = int64(skuBindInfo.Price) + if v.ShopPrice == 0 { + v.ShopPrice = v.SalePrice * 70 / 100 + } } v.Weight = skuBindInfo.Weight // 以本地信息中的WEIGHT为准 //饿鲜达的订单做一下处理 From 086f6f389177e380482d8476f654bddab2dec4b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 29 Jun 2020 08:28:57 +0800 Subject: [PATCH 21/22] =?UTF-8?q?=E8=AE=A2=E5=8D=95shopprice=E4=B8=BA0?= =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index f59c51459..63ddab5dc 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -363,6 +363,9 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao. if intVendorSkuID != 0 && v.VendorSkuID != "-70000" { // todo hard code skuBindInfo := skumapper[v.VendorSkuID] if skuBindInfo == nil { + if v.ShopPrice == 0 { + v.ShopPrice = v.SalePrice * 70 / 100 + } globals.SugarLogger.Infof("updateOrderSkuOtherInfo [运营%s]%s订单sku找不到门店价格(或商品映射),orderID:%s, StoreID:%d, VendorSkuID:%s, sku:%v", opNumStr, model.VendorChineseNames[order.VendorID], order.VendorOrderID, jxStoreID, v.VendorSkuID, v) } else { // TODO 客户端当前逻辑认为SkuID为0为赠品 From 61a0c5aad8da7b7750e399ea61ca7c3c2ec4a053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 29 Jun 2020 08:52:15 +0800 Subject: [PATCH 22/22] =?UTF-8?q?=E4=BA=AC=E4=B8=9C=E8=A1=97=E9=81=93?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/tempop/tempop.go | 45 ++++++++++++++++--------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/business/jxstore/tempop/tempop.go b/business/jxstore/tempop/tempop.go index 4a8654820..4f120b32a 100644 --- a/business/jxstore/tempop/tempop.go +++ b/business/jxstore/tempop/tempop.go @@ -1560,28 +1560,29 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) { // } //京东商城街道name - // var stores []*model.Store - // sql := ` - // SELECT b.* - // FROM store_map a, store b - // WHERE a.store_id = b.id - // AND a.vendor_store_id = '' AND a.vendor_id = 5 AND a.deleted_at = ? - // AND b.deleted_at = ? - // ` - // sqlParams := []interface{}{utils.DefaultTimeValue, utils.DefaultTimeValue} - // err = dao.GetRows(db, &stores, sql, sqlParams) - // for _, v := range stores { - // result, _ := api.AutonaviAPI.GetCoordinateAreaInfo(jxutils.IntCoordinate2Standard(v.Lng), jxutils.IntCoordinate2Standard(v.Lat)) - // if result["regeocode"] != nil { - // street := result["regeocode"].(map[string]interface{})["addressComponent"].(map[string]interface{})["township"].(string) - // if street != "" { - // storeMaps, _ := dao.GetStoresMapList(db, []int{model.VendorIDJDShop}, []int{v.ID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "") - // storeMap := storeMaps[0] - // storeMap.JdsStreetName = street - // dao.UpdateEntity(db, storeMap, "JdsStreetName") - // } - // } - // } + var stores []*model.Store + var db = dao.GetDB() + sql := ` + SELECT b.* + FROM store_map a, store b + WHERE a.store_id = b.id + AND a.vendor_store_id = '' AND a.vendor_id = 5 AND a.deleted_at = ? + AND b.deleted_at = ? + ` + sqlParams := []interface{}{utils.DefaultTimeValue, utils.DefaultTimeValue} + err = dao.GetRows(db, &stores, sql, sqlParams) + for _, v := range stores { + result, _ := api.AutonaviAPI.GetCoordinateAreaInfo(jxutils.IntCoordinate2Standard(v.Lng), jxutils.IntCoordinate2Standard(v.Lat)) + if result["regeocode"] != nil { + street := result["regeocode"].(map[string]interface{})["addressComponent"].(map[string]interface{})["township"].(string) + if street != "" { + storeMaps, _ := dao.GetStoresMapList(db, []int{model.VendorIDJDShop}, []int{v.ID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "") + storeMap := storeMaps[0] + storeMap.JdsStreetName = street + dao.UpdateEntity(db, storeMap, "JdsStreetName") + } + } + } // var stores []*model.Store // sql := `