|
|
@@ -263,6 +263,7 @@ func (s Service) Cancel(req accountModel.AccountMainCancelReq) error {
|
|
|
var baseAccount accountModel.BaseAccount
|
|
|
var rules []Param
|
|
|
now := gtime.Now()
|
|
|
+ nowStr := now.Format("Y-m-d H:i:s")
|
|
|
per := float64(0)
|
|
|
userNumber := 0
|
|
|
|
|
|
@@ -300,7 +301,10 @@ func (s Service) Cancel(req accountModel.AccountMainCancelReq) error {
|
|
|
return err
|
|
|
}
|
|
|
// 计算当前机器占用数量
|
|
|
- userNumber, err = s.Dao.DB.Model("appointment").Where(fmt.Sprintf("RelevanceId='%v' AND SignInTime IS NOT NULL AND SignOutTime IS NULL", main.InstrumentId)).Count()
|
|
|
+ //1、上一个实验人未结束实验,未占用下一个预约开始时间,下一个实验取消预约,需要进行违约扣费
|
|
|
+ //2、上一个实验人未结束实验,占用了下一个预约开始时间,下一个实验取消预约,不需要进行违约扣费
|
|
|
+ //3、上一个实验人结束了实验,占用了下一个预约开始时间,下一个实验取消预约,不需要进行违约扣费
|
|
|
+ userNumber, err = s.Dao.DB.Model("appointment").Where(fmt.Sprintf("RelevanceId='%v' AND ((SignInTime IS NOT NULL AND SignOutTime IS NULL AND '%v' > '%v') OR (SignOutTime > '%v'))", main.InstrumentId, nowStr, main.AppointStartDate.Format("Y-m-d H:i:s"), main.AppointStartDate.Format("Y-m-d H:i:s"))).Count()
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|