取消药品订单增加了回退健康包已使用药品数量
This commit is contained in:
parent
c83299f2f4
commit
326e7ef32d
@ -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 {
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user