|
|
@@ -3,6 +3,7 @@ package account
|
|
|
import (
|
|
|
"dashoo.cn/micro_libary/request"
|
|
|
"database/sql"
|
|
|
+ "errors"
|
|
|
"fmt"
|
|
|
"github.com/gogf/gf/os/gtime"
|
|
|
dao "lims_adapter/dao/account"
|
|
|
@@ -33,6 +34,30 @@ func (s AccountService) Save(req *account.BaseAccount, user request.UserInfo) er
|
|
|
req.CreateUserId = int(user.Id)
|
|
|
req.CreateBy = user.RealName
|
|
|
req.CreateOn = now
|
|
|
+ } else {
|
|
|
+ var original account.BaseAccount
|
|
|
+ err := s.Dao.Where("Id=?", req.Id).Scan(&original)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if req.MainUserId != original.MainUserId { // 更换了主用户,需要进行校验
|
|
|
+ count, err := s.Dao.DB.Model("settle_account_bill").Where(fmt.Sprintf("(Status='0' OR Status='1') AND AccountId='%v'", original.Id)).Count()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ return errors.New("该主用户存在未结算的已出账单,不可更改")
|
|
|
+ }
|
|
|
+
|
|
|
+ // 该主用户存在未结算的未出账单(判断的是该主用户所有的账号)
|
|
|
+ count, err = s.Dao.DB.Model("settle_account_main").Where(fmt.Sprintf("AccountStatus<>'1' AND MainUserId='%v'", original.MainUserId)).Count()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ return errors.New("该主用户存在未结算的未出账单,不可更改")
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
req.UpdateUserId = int(user.Id)
|
|
|
req.UpdateBy = user.RealName
|