取消药品订单增加了回退健康包已使用药品数量
This commit is contained in:
parent
c83299f2f4
commit
326e7ef32d
@ -77,6 +77,15 @@ func (r *OrderServicePackageDao) GetOrderServicePackageList(maps interface{}) (m
|
|||||||
return m, nil
|
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 新增
|
// AddOrderServicePackage 新增
|
||||||
func (r *OrderServicePackageDao) AddOrderServicePackage(tx *gorm.DB, model *model.OrderServicePackage) (*model.OrderServicePackage, error) {
|
func (r *OrderServicePackageDao) AddOrderServicePackage(tx *gorm.DB, model *model.OrderServicePackage) (*model.OrderServicePackage, error) {
|
||||||
if err := tx.Create(model).Error; err != nil {
|
if err := tx.Create(model).Error; err != nil {
|
||||||
|
|||||||
@ -46,6 +46,15 @@ func (r *OrderServicePackageProductDao) EditOrderServicePackageProduct(tx *gorm.
|
|||||||
return nil
|
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 获取列表
|
// GetOrderServicePackageProductList 获取列表
|
||||||
func (r *OrderServicePackageProductDao) GetOrderServicePackageProductList(maps interface{}) (m []*model.OrderServicePackageProduct, err error) {
|
func (r *OrderServicePackageProductDao) GetOrderServicePackageProductList(maps interface{}) (m []*model.OrderServicePackageProduct, err error) {
|
||||||
err = global.Db.Where(maps).Find(&m).Error
|
err = global.Db.Where(maps).Find(&m).Error
|
||||||
@ -54,3 +63,12 @@ func (r *OrderServicePackageProductDao) GetOrderServicePackageProductList(maps i
|
|||||||
}
|
}
|
||||||
return m, nil
|
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("取消订单失败")
|
return false, errors.New("取消订单失败")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改问诊订单退款状态
|
// 修改订单退款状态
|
||||||
orderProductData["refund_status"] = refundStatus
|
orderProductData["refund_status"] = refundStatus
|
||||||
orderProductData["order_product_status"] = 5 // 订单状态(1:待支付 2:待发货 3:已发货 4:已签收 5:已取消)
|
orderProductData["order_product_status"] = 5 // 订单状态(1:待支付 2:待发货 3:已发货 4:已签收 5:已取消)
|
||||||
orderProductData["cancel_time"] = time.Now().Format("2006-01-02 15:04:05") // 订单取消时间
|
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())
|
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{
|
orderOperationLog := &model.OrderOperationLog{
|
||||||
OrderId: orderProduct.OrderProductId,
|
OrderId: orderProduct.OrderProductId,
|
||||||
|
|||||||
@ -604,3 +604,21 @@ func (r *OrderServicePackageService) GetOrderServiceProductCanUseQuantity(orderS
|
|||||||
|
|
||||||
return remainingQuantity, err
|
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