Procházet zdrojové kódy

fix(管理员撤销): 管理员撤销不扣费

likai před 3 roky
rodič
revize
02c9609dd4

+ 1 - 1
model/account/settle_account_main.go

@@ -52,7 +52,7 @@ type AccountMainAddReq struct {
 
 type AccountMainCancelReq struct {
 	AppointId  int     `json:"appointId"`
-	IsAuto     string  `json:"is_auto"`
+	IsAuto     string  `json:"is_auto"` // 0 手动取消;1 自动取消;2 管理员撤销
 }
 
 type MainInfo struct {

+ 5 - 0
service/settle_account_main/settle_account_main.go

@@ -332,6 +332,7 @@ func (s Service) Cancel(req accountModel.AccountMainCancelReq) error {
 	//1、上一个实验人未结束实验,未占用下一个预约开始时间,下一个实验取消预约,需要进行违约扣费
 	//2、上一个实验人未结束实验,占用了下一个预约开始时间,下一个实验取消预约,不需要进行违约扣费
 	//3、上一个实验人结束了实验,占用了下一个预约开始时间,下一个实验取消预约,不需要进行违约扣费
+	//4、管理员撤销,不需要进行违约扣费
 	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
@@ -377,6 +378,10 @@ func (s Service) Cancel(req accountModel.AccountMainCancelReq) error {
 		detail.Data4 = "机器被占用,取消不扣费"
 		per = 0
 	}
+	if req.IsAuto == "2" { // 管理员手动撤销
+		detail.Data4 = "管理员撤销,取消不扣费"
+		per = 0
+	}
 
 	main.ActualMachineHour = 0
 	for _, item := range details {