package services import ( "xugu_license/internal/global" "xugu_license/internal/models" "github.com/pkg/errors" ) func checkDistributeToUser(OaLicRequest int64, UserUniqueIDs []string, UserNames []string) (licToUser []string, err error) { for i, UserUID := range UserUniqueIDs { //查询该license是否已经分发给了该用户 if isTurn, err := models.CheckOaLicRequest(OaLicRequest, UserUID); err != nil { global.Logger.Errorln("该license查询是否分发给用户失败 ", UserUID, err.Error()) return nil, err } else if isTurn { global.Logger.Info("该license已经分发给了该用户 ", UserUID, UserNames[i]) licToUser = append(licToUser, UserNames[i]) } } return licToUser, nil } func CheckOaLicInfoRequest(OARequestId int64) (error, bool) { if OARequestId != 0 { //一个OARequestId会有多条数据UniqueID OALics, _, err := models.GetOALicenseInfo(0, 0, "", "", "", OARequestId) if err != nil || OALics == nil { global.Logger.Errorln("LicenseInfo数据查询失败: ", err.Error()) return errors.Errorf("LicenseInfo数据查询失败 : %v", err.Error()), false } //校验license信息是否与oa一致 var isCheck bool for _, license := range *OALics { //检测该数据是否与oa库数据库一致 //todo isCheckTmp, err := models.CheckLicenseInfoInOADB(&license.LicInfo) if err != nil { global.Logger.Errorln("LicenseInfo数据对比oa库 校验失败: ", err.Error()) return errors.Errorf("LicenseInfo数据对比oa库 校验失败 %v", err.Error()), false } if isCheckTmp { global.Logger.Errorf("\nLicenseInfo数据对比oa库 不一致: %v\n", license.LicInfo.UniqueID) isCheck = isCheckTmp err = models.UpdatelicenseInfoRow(license) if err != nil { return err, false } err = models.UpdatelicenseGenerateInfoRow(license) if err != nil { return err, false } } } //不一致则返回 if isCheck { return nil, true } return nil, false } return errors.Errorf("该申请单没有oa单号"), false }