取消药品订单增加了回退健康包已使用药品数量

This commit is contained in:
2024-06-13 13:16:26 +08:00
parent c83299f2f4
commit 326e7ef32d
4 changed files with 80 additions and 1 deletions
+35 -1
View File
@@ -246,7 +246,7 @@ func (r *OrderProductService) CancelOrderProduct(req requests.CancelOrderProduct
return false, errors.New("取消订单失败")
}
// 修改问诊订单退款状态
// 修改订单退款状态
orderProductData["refund_status"] = refundStatus
orderProductData["order_product_status"] = 5 // 订单状态(1:待支付 2:待发货 3:已发货 4:已签收 5:已取消)
orderProductData["cancel_time"] = time.Now().Format("2006-01-02 15:04:05") // 订单取消时间
@@ -305,6 +305,40 @@ func (r *OrderProductService) CancelOrderProduct(req requests.CancelOrderProduct
return false, errors.New(err.Error())
}
// 获取患者家庭成员进行中的服务包订单-健康包
OrderServicePackageService := OrderServicePackageService{}
patientFamilyInProgressServicePackage, err := OrderServicePackageService.GetPatientFamilyInProgressServicePackage(orderProduct.UserPatient.UserId, orderProduct.FamilyId, orderProduct.DoctorId, 1)
if patientFamilyInProgressServicePackage != nil {
// 获取药品订单列表
orderProductItemDao := dao.OrderProductItemDao{}
orderProductItems, err := orderProductItemDao.GetOrderProductItemByOrderProductId(orderProductId)
if err != nil || len(orderProductItems) <= 0 {
tx.Rollback()
return false, errors.New("订单数据错误")
}
for _, item := range orderProductItems {
orderServicePackageProductDao := dao.OrderServicePackageProductDao{}
// 回退服务包已使用药品数量
maps := make(map[string]interface{})
maps["order_service_id"] = patientFamilyInProgressServicePackage.OrderServiceId
maps["order_product_id"] = item.OrderProductId
maps["product_item_id"] = item.ProductItemId
maps["product_id"] = item.ProductId
orderServicePackageProduct, err := orderServicePackageProductDao.GetOrderServicePackageProduct(maps)
if err == nil && orderServicePackageProduct != nil {
orderServicePackageProductData := make(map[string]interface{})
orderServicePackageProductData["used_quantity"] = 0
err := orderServicePackageProductDao.EditOrderServicePackageProductById(tx, orderServicePackageProduct.ServiceProductId, orderServicePackageProductData)
if err != nil {
tx.Rollback()
return false, errors.New(err.Error())
}
}
}
}
// 记录日志
orderOperationLog := &model.OrderOperationLog{
OrderId: orderProduct.OrderProductId,
+18
View File
@@ -604,3 +604,21 @@ func (r *OrderServicePackageService) GetOrderServiceProductCanUseQuantity(orderS
return remainingQuantity, err
}
// GetPatientFamilyInProgressServicePackage 获取患者家庭成员进行中的服务包订单
func (r *OrderServicePackageService) GetPatientFamilyInProgressServicePackage(patientUserId, familyId, doctorId int64, serviceType int) (*model.OrderServicePackage, error) {
orderServicePackageDao := dao.OrderServicePackageDao{}
maps := make(map[string]interface{})
maps["user_id"] = patientUserId
maps["doctor_id"] = doctorId
maps["family_id"] = familyId
maps["order_service_type"] = serviceType
maps["order_service_status"] = 3
orderServicePackage, err := orderServicePackageDao.GetOrderServicePackage(maps)
if err != nil {
return nil, err
}
return orderServicePackage, err
}