package services import ( "xugu_license/internal/api" "xugu_license/internal/global" middlewares "xugu_license/internal/middleware" "xugu_license/internal/models" "github.com/pkg/errors" ) func GetDistributeButtenCheckService(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 } func GetConditionalSearchService(request api.ConditionalSearchRequest, role middlewares.Permission, user string) (*[]models.OALicenseInfo, int, error) { if role == middlewares.ReadAllLicense { lic, total, err := models.GetConditionalSearchAll(request) if err != nil { return nil, total, err } return lic, total, nil } else if role == middlewares.ReadLicense { lic, total, err := models.GetConditionalSearchUser(request, user) if err != nil { return nil, total, err } return lic, total, nil } else { return nil, 0, errors.Errorf("没有权限") } }