OALicenseInfo_services_sub.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package services
  2. import (
  3. "xugu_license/internal/global"
  4. "xugu_license/internal/models"
  5. "github.com/pkg/errors"
  6. )
  7. func checkDistributeToUser(OaLicRequest int64, UserUniqueIDs []string, UserNames []string) (licToUser []string, err error) {
  8. for i, UserUID := range UserUniqueIDs {
  9. //查询该license是否已经分发给了该用户
  10. if isTurn, err := models.CheckOaLicRequest(OaLicRequest, UserUID); err != nil {
  11. global.Logger.Errorln("该license查询是否分发给用户失败 ", UserUID, err.Error())
  12. return nil, err
  13. } else if isTurn {
  14. global.Logger.Info("该license已经分发给了该用户 ", UserUID, UserNames[i])
  15. licToUser = append(licToUser, UserNames[i])
  16. }
  17. }
  18. return licToUser, nil
  19. }
  20. func CheckOaLicInfoRequest(OARequestId int64) (error, bool) {
  21. if OARequestId != 0 {
  22. //一个OARequestId会有多条数据UniqueID
  23. OALics, _, err := models.GetOALicenseInfo(0, 0, "", "", "", OARequestId)
  24. if err != nil || OALics == nil {
  25. global.Logger.Errorln("LicenseInfo数据查询失败: ", err.Error())
  26. return errors.Errorf("LicenseInfo数据查询失败 : %v", err.Error()), false
  27. }
  28. //校验license信息是否与oa一致
  29. var isCheck bool
  30. for _, license := range *OALics {
  31. //检测该数据是否与oa库数据库一致 //todo
  32. isCheckTmp, err := models.CheckLicenseInfoInOADB(&license.LicInfo)
  33. if err != nil {
  34. global.Logger.Errorln("LicenseInfo数据对比oa库 校验失败: ", err.Error())
  35. return errors.Errorf("LicenseInfo数据对比oa库 校验失败 %v", err.Error()), false
  36. }
  37. if isCheckTmp {
  38. global.Logger.Errorf("\nLicenseInfo数据对比oa库 不一致: %v\n", license.LicInfo.UniqueID)
  39. isCheck = isCheckTmp
  40. err = models.UpdatelicenseInfoRow(license)
  41. if err != nil {
  42. return err, false
  43. }
  44. err = models.UpdatelicenseGenerateInfoRow(license)
  45. if err != nil {
  46. return err, false
  47. }
  48. }
  49. }
  50. //不一致则返回
  51. if isCheck {
  52. return nil, true
  53. }
  54. return nil, false
  55. }
  56. return errors.Errorf("该申请单没有oa单号"), false
  57. }