123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- package services
- import (
- "fmt"
- "strings"
- "xugu_license/internal/api"
- "xugu_license/internal/global"
- "xugu_license/internal/models"
- "xugu_license/internal/module/email"
- "xugu_license/internal/utils"
- "github.com/pkg/errors"
- )
- func DistributeOALicenseServices(OperatorUniqueID, OaRequestId string, UserUniqueIDs, UserAccounts, UserNames, EmailArray []string) (error, []string) {
-
- existUsers, err := checkDistributeToUser(OaRequestId, UserUniqueIDs, UserNames)
- if err != nil {
- global.Logger.Errorln("license分发请求检测是否已发放给用户失败 %s", err.Error())
- return err, nil
- }
-
- if len(existUsers) != 0 {
- return nil, existUsers
- }
- fmt.Println("DistributeOALicenseServices : ")
-
- LicInfos, _, err := models.GetOALicenseInfo(1, 1, "", "", "", OaRequestId)
- if err != nil {
- return err, nil
- }
-
- for _, licInfo := range *LicInfos {
- for userIdx, userUID := range UserUniqueIDs {
-
- if licInfo.GenrateInfo.Lic1.String == "" {
- global.Logger.Errorln("DistributeOALicenseServices : license生成信息为空 ")
- return errors.New("license生成信息为空"), nil
- }
- err = models.InsertlicenseRecordByUserRow(OaRequestId, licInfo.LicInfo.UniqueID.String, userUID, UserAccounts[userIdx], OperatorUniqueID)
- if err != nil {
- global.Logger.Errorln("DistributeOALicenseServices: 数据库插入失败: ", err.Error())
- return err, nil
- }
- }
- }
-
-
-
- fmt.Println("len(EmailArray) == ")
- if len(EmailArray) == 0 {
- return nil, nil
- }
- fmt.Println("EmailArray : ", EmailArray)
- emails := strings.Join(EmailArray, ",")
- if !strings.Contains(emails, "@") {
- return nil, nil
- }
- for _, lic := range *LicInfos {
- if lic.GenrateInfo.Lic1.String == "" {
- global.Logger.Errorln("DistributeOALicenseServices : license生成信息为空 ")
- return errors.New("license生成信息为空"), nil
- }
-
- em, err := email.BuildEmail(&lic, EmailArray, lic.GenrateInfo.Lic1.String, lic.GenrateInfo.Lic2.String)
- if err != nil {
- global.Logger.Errorln("邮件生成失败", err.Error())
- return err, nil
- }
-
- err = email.SendEmail(em)
- if err != nil {
- global.Logger.Errorln("邮件发送失败", err.Error())
- return err, nil
- }
-
- err = models.InsertlicenseRecordByEmailRow(OaRequestId, lic.LicInfo.UniqueID.String, emails, OperatorUniqueID)
- if err != nil {
- global.Logger.Errorln("数据库插入失败: ", err.Error())
- return err, nil
- }
- }
- return nil, nil
- }
- func GenerateOALicenseStrServices(request api.GenerateLicenseStrRequest) error {
-
- if request.UniqueID != "" {
- if err, isCheck := generateLicenseStrSub(request.UniqueID); err != nil {
- global.Logger.Errorf("请联系管理员, LicenseInfo%v生成失败: %v\n", request.UniqueID, err.Error())
- return errors.Errorf("请联系管理员, LicenseInfo%v生成失败: %v", err.Error())
- } else if isCheck {
- return errors.Errorf("该申请信息与OA库不一致,请刷新页面")
- }
- } else if request.OARequestId != "" {
-
- OALics, _, err := models.GetOALicenseInfo(0, 0, "", "", "", request.OARequestId)
- if err != nil || OALics == nil {
- global.Logger.Errorln("LicenseInfo数据查询失败: ", err.Error())
- return errors.Errorf("LicenseInfo数据查询失败 : %v", err.Error())
- }
-
- for _, v := range *OALics {
- if v.GenrateInfo.LicenseFlage.String == "未生成" {
- err, isCheck := generateLicenseStrSub(utils.ToString(v.LicInfo.UniqueID))
- if err != nil {
- global.Logger.Errorf("请联系管理员, LicenseInfo%v生成失败: %v\n", v.LicInfo.UniqueID, err.Error())
- return errors.Errorf("请联系管理员, LicenseInfo%v生成失败: %v\n", v.LicInfo.UniqueID, err.Error())
- } else if isCheck {
- return errors.Errorf("该申请信息与OA库不一致,请刷新页面")
- }
- }
- }
- } else {
- global.Logger.Errorln("未指定明确License行生成 ")
- return errors.Errorf("未指定明确License行生成\n")
- }
- return nil
- }
- func generateLicenseStrSub(UniqueID string) (error, bool) {
- var applications *[]models.OALicenseInfo
- var err error
- if UniqueID != "" {
- applications, _, err = models.GetOALicenseInfo(0, 1, "", UniqueID, "", "")
- if err != nil {
- global.Logger.Errorln("LicenseInfo数据查询失败: ", err.Error())
-
- return errors.Errorf("LicenseInfo数据查询失败: %v", err.Error()), false
- }
- }
-
-
-
-
- fmt.Printf("applications%#v\n", applications)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if applications == nil {
- global.Logger.Errorln("LicenseInfo数据生成失败 ,数据查询为空 ")
-
- return errors.Errorf("LicenseInfo数据生成失败 ,数据查询为空 "), false
- }
- if (*applications)[0].LicInfo.OASecondMAC.String != "" {
-
-
-
- err = models.UpdateOALicenseStr(utils.ToString((*applications)[0].LicInfo.UniqueID), []byte("b4j6z4rE2IfG1av0wIPT7YnvyGZFHxwIBikMGjgCLQILR0xsT1NHiuzoi+Dqq+bmiNDEiuPyitDVgdvlRmYbFAk+MAAGASlPTkdMbE9"), []byte("b4j6z4rE2IfG1av0wIPT7YnvyGZFHxwIBikMGjgCLQILR0xsT1NHiuzoi+Dqq+bmiNDEiuPyitDVgdvlRmYbFAk+MAAGASlPTkdMbE9"))
- if err != nil {
- global.Logger.Errorln("LicenseInfo生成插入失败: ", err.Error())
-
- return errors.Errorf("LicenseInfo生成插入失败:: ", err.Error()), false
- }
- } else {
-
-
- err = models.UpdateOALicenseStr(utils.ToString((*applications)[0].LicInfo.UniqueID), []byte("b4j6z4rE2IfG1av0wIPT7YnvyGZFHxwIBikMGjgCLQILR0xsT1NHiuzoi+Dqq+bmiNDEiuPyitDVgdvlRmYbFAk+MAAGASlPTkdMbE9"), nil)
- if err != nil {
- global.Logger.Errorln("LicenseInfo2生成插入失败: ", err.Error())
-
- return errors.Errorf("LicenseInfo2生成插入失败:: ", err.Error()), false
- }
- }
- return nil, false
- }
|