From 326e7ef32dc55f329d7724cbb0f541c9fd81da37 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Thu, 13 Jun 2024 13:16:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=8D=AF=E5=93=81=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=9B=9E=E9=80=80=E5=81=A5?= =?UTF-8?q?=E5=BA=B7=E5=8C=85=E5=B7=B2=E4=BD=BF=E7=94=A8=E8=8D=AF=E5=93=81?= =?UTF-8?q?=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/dao/orderServicePackage.go | 9 +++++++ api/dao/orderServicePackageProduct.go | 18 ++++++++++++++ api/service/orderProduct.go | 36 ++++++++++++++++++++++++++- api/service/orderServicePackage.go | 18 ++++++++++++++ 4 files changed, 80 insertions(+), 1 deletion(-) diff --git a/api/dao/orderServicePackage.go b/api/dao/orderServicePackage.go index 5071020..9d4ec53 100644 --- a/api/dao/orderServicePackage.go +++ b/api/dao/orderServicePackage.go @@ -77,6 +77,15 @@ func (r *OrderServicePackageDao) GetOrderServicePackageList(maps interface{}) (m return m, nil } +// GetOrderServicePackage 获取 +func (r *OrderServicePackageDao) GetOrderServicePackage(maps interface{}) (m *model.OrderServicePackage, err error) { + err = global.Db.Where(maps).First(&m).Error + if err != nil { + return nil, err + } + return m, nil +} + // AddOrderServicePackage 新增 func (r *OrderServicePackageDao) AddOrderServicePackage(tx *gorm.DB, model *model.OrderServicePackage) (*model.OrderServicePackage, error) { if err := tx.Create(model).Error; err != nil { diff --git a/api/dao/orderServicePackageProduct.go b/api/dao/orderServicePackageProduct.go index c5dde9e..4fef133 100644 --- a/api/dao/orderServicePackageProduct.go +++ b/api/dao/orderServicePackageProduct.go @@ -46,6 +46,15 @@ func (r *OrderServicePackageProductDao) EditOrderServicePackageProduct(tx *gorm. return nil } +// EditOrderServicePackageProductById 修改 +func (r *OrderServicePackageProductDao) EditOrderServicePackageProductById(tx *gorm.DB, serviceProductId int64, data interface{}) error { + err := tx.Model(&model.OrderServicePackageProduct{}).Where("service_product_id = ?", serviceProductId).Updates(data).Error + if err != nil { + return err + } + return nil +} + // GetOrderServicePackageProductList 获取列表 func (r *OrderServicePackageProductDao) GetOrderServicePackageProductList(maps interface{}) (m []*model.OrderServicePackageProduct, err error) { err = global.Db.Where(maps).Find(&m).Error @@ -54,3 +63,12 @@ func (r *OrderServicePackageProductDao) GetOrderServicePackageProductList(maps i } return m, nil } + +// GetOrderServicePackageProduct 获取 +func (r *OrderServicePackageProductDao) GetOrderServicePackageProduct(maps interface{}) (m *model.OrderServicePackageProduct, err error) { + err = global.Db.Where(maps).First(&m).Error + if err != nil { + return nil, err + } + return m, nil +} diff --git a/api/service/orderProduct.go b/api/service/orderProduct.go index ca7d08d..5cba44d 100644 --- a/api/service/orderProduct.go +++ b/api/service/orderProduct.go @@ -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, diff --git a/api/service/orderServicePackage.go b/api/service/orderServicePackage.go index 0bbdab9..0922781 100644 --- a/api/service/orderServicePackage.go +++ b/api/service/orderServicePackage.go @@ -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 +}