Selaa lähdekoodia

fix(已出账单): 多用户重复结算问题

likai 4 vuotta sitten
vanhempi
commit
9418a81c09
1 muutettua tiedostoa jossa 10 lisäystä ja 2 poistoa
  1. 10 2
      service/settle_account_bill/settle_account_bill.go

+ 10 - 2
service/settle_account_bill/settle_account_bill.go

@@ -93,6 +93,14 @@ func (s Service) Settle(req accountModel.AccountBillSettleReq, user request.User
 		return errors.New("参数缺失")
 	}
 
+	count, err := s.Dao.DB.Model("settle_account_bill").Where(fmt.Sprintf("Id='%v' AND Status='1'", req.BillId)).Count()
+	if err != nil {
+		return err
+	}
+	if count != 1 {
+		return errors.New("该状态不可结算,请仔细检查")
+	}
+
 	tx, err := s.Dao.DB.Begin()
 	if err != nil {
 		return err
@@ -125,8 +133,8 @@ func (s Service) Confirm(req accountModel.AccountBillConfirmReq, user request.Us
 		return errors.New("参数缺失")
 	}
 	total,_ := s.Dao.DB.Model("settle_account_main").Where(fmt.Sprintf("BillId='%v' And SettleStatus='0'",req.BillId)).Count()
-	if total>0 {
-		return errors.New("实验明细有未确认项")
+	if total > 0 {
+		return errors.New("实验明细有未确认项,不可确认")
 	}
 
 	_, err := s.Dao.Update(fmt.Sprintf("Status='1',VerificationUserId='%v',VerificationUser='%v',VerificationDate='%v'", user.Id, user.RealName, gtime.Now()), fmt.Sprintf("Id='%v'", req.BillId))