作者 tangxvhui

更新

package command
//DisableOrderCommand 开启关闭订单
type DisableOrderCommand struct {
OrderId int64 `json:"orderId"`
IsDisable int `json:"isDisable"`
OrderType int `json:"orderType"`
}
... ...
... ... @@ -336,7 +336,7 @@ func (service OrderInfoService) UpdateOrderData(cmd command.UpdateOrderCommand)
}
//判定要求的更新的订单类型
if oldOrderData.OrderType != cmd.OrderType {
return nil, lib.ThrowError(lib.BUSINESS_ERROR, fmt.Sprintf("待更新的订单的类型已变更"))
return nil, lib.ThrowError(lib.BUSINESS_ERROR, fmt.Sprintf("操作失败,待更新的订单的类型已变更"))
}
//获取旧的订单中的商品
oldOrderGoods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{
... ... @@ -499,3 +499,46 @@ func (service OrderInfoService) Delivery(cmd command.OrderDeliveryCommand) error
}
return nil
}
//DisableOrEnable 开启关闭订单
func (service OrderInfoService) DisableOrEnable(cmd command.DisableOrderCommand) error {
var (
transactionContext, _ = factory.CreateTransactionContext(nil)
err error
)
if err = transactionContext.StartTransaction(); err != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
}
defer func() {
transactionContext.RollbackTransaction()
}()
var (
orderBaseRepository domain.OrderBaseRepository
oldOrderData *domain.OrderBase
)
if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{
"transactionContext": transactionContext,
}); err != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
}
//获取旧的订单
oldOrderData, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{
OrderId: cmd.OrderId,
})
if err != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("未找到指定的订单:%s", err))
}
if oldOrderData.OrderType != cmd.OrderType {
return lib.ThrowError(lib.BUSINESS_ERROR, fmt.Sprintf("操作失败,指定的订单的类型发生变更"))
}
oldOrderData.IsDisable = cmd.IsDisable
err = orderBaseRepository.Save(oldOrderData)
if err != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("保存订单数据失败:%s", err))
}
err = transactionContext.CommitTransaction()
if err != nil {
return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
}
return nil
}
... ...
... ... @@ -58,7 +58,7 @@ func (repository OrderBaseRepository) Save(orderInfo *domain.OrderBase) error {
UseOrderAmount: orderInfo.OrderCompute.UseOrderAmount, DeliveryTime: orderInfo.DeliveryTime,
PlanPartnerBonus: orderInfo.OrderCompute.PlanPartnerBonus, UsePartnerBonus: orderInfo.OrderCompute.UsePartnerBonus,
PartnerBonusHas: orderInfo.OrderCompute.PartnerBonusHas, PartnerBonusNot: orderInfo.OrderCompute.PartnerBonusNot,
PartnerBonusExpense: orderInfo.OrderCompute.PartnerBonusExpense,
PartnerBonusExpense: orderInfo.OrderCompute.PartnerBonusExpense, IsDisable: orderInfo.IsDisable,
}
if m.Id == 0 {
_, err = tx.Model(m).
... ...
... ... @@ -570,7 +570,7 @@ func (c *OrderInfoController) addOrderReal(param postRealOrderDetail) error {
}
func (c *OrderInfoController) editOrderReal(param postRealOrderDetail) error {
orderSrv := orderService.NewOrderInfoService(nil)
newGoods := []orderCmd.OrderGoodData{}
for _, v := range param.Product {
g := orderCmd.OrderGoodData{
... ... @@ -592,6 +592,46 @@ func (c *OrderInfoController) editOrderReal(param postRealOrderDetail) error {
SalesmanBonusPercent: param.CommissionProportion,
Goods: newGoods,
}
orderSrv := orderService.NewOrderInfoService(nil)
_, err := orderSrv.UpdateOrderData(updatecmd)
return err
}
//OrderDisable 关闭开启订单,限实发订单可操作
func (c *OrderInfoController) OrderDisable() {
//用与适配前端定义的数据结构
type PostParameter struct {
Id string `json:"id"`
Status int `json:"status"`
}
var (
param PostParameter
err error
)
if err = c.BindJsonData(&param); err != nil {
logs.Error(err)
c.ResponseError(errors.New("json数据解析失败"))
return
}
orderId, _ := strconv.ParseInt(param.Id, 10, 64)
if orderId == 0 {
c.ResponseError(errors.New("参数错误"))
return
}
if !(param.Status == domain.OrderDisableNot || param.Status == domain.OrderDisableYes) {
c.ResponseError(errors.New("参数错误"))
return
}
cmd := orderCmd.DisableOrderCommand{
OrderId: orderId,
IsDisable: param.Status,
OrderType: domain.OrderReal,
}
orderSrv := orderService.NewOrderInfoService(nil)
err = orderSrv.DisableOrEnable(cmd)
if err != nil {
c.ResponseError(err)
}
c.ResponseData(nil)
return
}
... ...
... ... @@ -47,8 +47,9 @@ func init() {
beego.NSRouter("/actual/list", &controllers.OrderInfoController{}, "POST:PageListOrderReal"),
beego.NSRouter("/actual/detail", &controllers.OrderInfoController{}, "POST:GetOrderReal"),
beego.NSRouter("/actual/update", &controllers.OrderInfoController{}, "POST:UpdateOrderReal"),
beego.NSRouter("/actual/close", &controllers.OrderInfoController{}, "POST:OrderDisable"),
),
beego.NSNamespace("/common",
beego.NSRouter("/partner", &controllers.CommonController{}, "POST:GetPartnerList"),
),
... ...