|
@@ -2,6 +2,7 @@ package settle_account_main
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
"dashoo.cn/micro_libary/request"
|
|
"dashoo.cn/micro_libary/request"
|
|
|
|
|
+ "database/sql"
|
|
|
"errors"
|
|
"errors"
|
|
|
"fmt"
|
|
"fmt"
|
|
|
"github.com/gogf/gf/os/gtime"
|
|
"github.com/gogf/gf/os/gtime"
|
|
@@ -242,6 +243,9 @@ func (s Service) Cancel(req accountModel.AccountMainCancelReq) error {
|
|
|
}
|
|
}
|
|
|
err = one.Struct(&main)
|
|
err = one.Struct(&main)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
|
+ if err == sql.ErrNoRows {
|
|
|
|
|
+ return nil
|
|
|
|
|
+ }
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -288,6 +292,7 @@ func (s Service) Cancel(req accountModel.AccountMainCancelReq) error {
|
|
|
detail.Data1 = main.AppointStartDate.Format("Y-m-d H:m:s")
|
|
detail.Data1 = main.AppointStartDate.Format("Y-m-d H:m:s")
|
|
|
detail.Data2 = main.AppointEndDate.Format("Y-m-d H:m:s")
|
|
detail.Data2 = main.AppointEndDate.Format("Y-m-d H:m:s")
|
|
|
detail.Data3 = now.Format("Y-m-d H:m:s") // 取消时间
|
|
detail.Data3 = now.Format("Y-m-d H:m:s") // 取消时间
|
|
|
|
|
+ detail.Pid = main.Id
|
|
|
|
|
|
|
|
mins := now.Sub(main.AppointStartDate).Minutes()
|
|
mins := now.Sub(main.AppointStartDate).Minutes()
|
|
|
if mins > 0 { // 正向超时,计算违约收费
|
|
if mins > 0 { // 正向超时,计算违约收费
|
|
@@ -295,7 +300,7 @@ func (s Service) Cancel(req accountModel.AccountMainCancelReq) error {
|
|
|
for _, rule := range rules {
|
|
for _, rule := range rules {
|
|
|
value1, _ := strconv.ParseFloat(rule.Code, 64)
|
|
value1, _ := strconv.ParseFloat(rule.Code, 64)
|
|
|
if mins < value1 {
|
|
if mins < value1 {
|
|
|
- per, _ := strconv.ParseFloat(rule.Value, 64)
|
|
|
|
|
|
|
+ per, _ = strconv.ParseFloat(rule.Value, 64)
|
|
|
per /= 100
|
|
per /= 100
|
|
|
r += rule.Code + "分钟内" + rule.Value + "%"
|
|
r += rule.Code + "分钟内" + rule.Value + "%"
|
|
|
}
|
|
}
|
|
@@ -315,12 +320,13 @@ func (s Service) Cancel(req accountModel.AccountMainCancelReq) error {
|
|
|
main.ActualMachineHour = 0
|
|
main.ActualMachineHour = 0
|
|
|
for _, item := range details {
|
|
for _, item := range details {
|
|
|
// 计算费用
|
|
// 计算费用
|
|
|
- discount := float64(1) // 计算折扣
|
|
|
|
|
- if item.Data5 != "" {
|
|
|
|
|
- d, _ := strconv.ParseFloat(item.Data5, 64)
|
|
|
|
|
- discount = 1 - d / 100
|
|
|
|
|
- }
|
|
|
|
|
- detail.PaymentAccount += item.PaymentAccount * discount * per
|
|
|
|
|
|
|
+ //discount := float64(1) // 计算折扣
|
|
|
|
|
+ //if item.Data5 != "" {
|
|
|
|
|
+ // d, _ := strconv.ParseFloat(item.Data5, 64)
|
|
|
|
|
+ // discount = 1 - d / 100
|
|
|
|
|
+ //}
|
|
|
|
|
+ //detail.PaymentAccount += item.PaymentAccount * discount * per
|
|
|
|
|
+ detail.PaymentAccount += item.PaymentAccount * 1 * per // 取消不算折扣
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
oldAmount := main.TotalPrice
|
|
oldAmount := main.TotalPrice
|