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

This commit is contained in:
wucongxing8150 2024-06-13 13:16:26 +08:00
parent c83299f2f4
commit 326e7ef32d
4 changed files with 80 additions and 1 deletions

View File

@ -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 {

View File

@ -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
}

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,

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
}