123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681 |
- package controllers
- import (
- "fmt"
- "net/http"
- "sort"
- "strconv"
- "strings"
- "xugu_license/internal/api"
- "xugu_license/internal/global"
- middlewares "xugu_license/internal/middleware"
- "xugu_license/internal/models"
- "xugu_license/internal/module/capture"
- "xugu_license/internal/services"
- "xugu_license/internal/utils"
- "github.com/gin-gonic/gin"
- "github.com/pkg/errors"
- )
- func getLoginInfo(c *gin.Context) (*middlewares.UserAuthInfo, error) {
- //获取当前登录用户信息
- userAny, exists := c.Get("userInfo")
- if !exists {
- global.Logger.Errorln("GetLicenseInfo: 用户信息不存在")
- return nil, errors.New("GetLicenseInfo: 用户信息不存在")
- // c.JSON(http.StatusUnauthorized, gin.H{"error": "用户信息不存在"})
- // c.Abort()
- }
- userInfo := userAny.(*middlewares.UserAuthInfo)
- return userInfo, nil
- }
- func GetSingleLicenseInfoController(c *gin.Context) {
- // userInfo, err := getLoginInfo(c)
- // if err != nil {
- // c.JSON(http.StatusUnauthorized, gin.H{"error": "用户信息不存在"})
- // c.Abort()
- // }
- //获取请求参数
- page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
- pageSize, _ := strconv.Atoi(c.DefaultQuery("pageSize", "10"))
- LicUniqueID := c.DefaultQuery("LicUniqueID", "10")
- //获取指定的license信息
- applications, total, err := models.GetOALicenseInfo(page, pageSize, "", LicUniqueID, "", "")
- if err != nil {
- global.Logger.Errorln("指定UniqueID查询错误:", err.Error())
- c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("指定UniqueID查询错误: ", err.Error())})
- return
- }
- c.JSON(http.StatusOK, gin.H{
- "data": *applications,
- "page": 1,
- "pageSize": 1,
- "total": total,
- })
- }
- // func GetAllLicenseInfoControllerToDb(c *gin.Context) {
- // // userInfo, err := getLoginInfo(c)
- // // if err != nil {
- // // c.JSON(http.StatusUnauthorized, gin.H{"error": "用户信息不存在"})
- // // c.Abort()
- // // }
- // //获取请求参数
- // page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
- // pageSize, _ := strconv.Atoi(c.DefaultQuery("pageSize", "10"))
- // //获取指定的license信息
- // applications, total, err := models.GetOALicenseInfo(page, pageSize, "read_all_license", "", "", "")
- // if err != nil {
- // global.Logger.Errorln("read_all_license查询错误:", err.Error())
- // c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("read_all_license查询错误: ", err.Error())})
- // return
- // }
- // var datas []api.AllLicenseInfoResponse
- // for _, v := range *applications {
- // data := api.AllLicenseInfoResponse{
- // UniqueID: utils.ToString(v.LicInfo.UniqueID),
- // OARequestID: utils.ToInt64(v.LicInfo.OARequestID),
- // OARequestName: utils.ToString(v.LicInfo.OARequestName),
- // OARequestNameNew: utils.ToString(v.LicInfo.OARequestNameNew),
- // OARequestNameHTMLNew: utils.ToString(v.LicInfo.OARequestNameHTMLNew),
- // OAGLXMId: utils.ToInt64(v.LicInfo.OAGLXMID),
- // OAGLXMName: utils.ToString(v.LicInfo.OAGLXMName),
- // OASQSJ: utils.ToTimeString(v.LicInfo.OASQSJ),
- // OASalespersonName: utils.ToString(v.LicInfo.OASalespersonName),
- // OAXSJSYX: utils.ToString(v.LicInfo.OAXSJSYX),
- // OAOperationsPersonName: utils.ToString(v.LicInfo.OAOperationsPersonName),
- // OAJFJSYX: utils.ToString(v.LicInfo.OAJFJSYX),
- // OASYDW: utils.ToString(v.LicInfo.OASYDW),
- // OAXMXXMS: utils.ToString(v.LicInfo.OAXMXXMS),
- // OAJDS: utils.ToInt64(v.LicInfo.OAJDS),
- // OANodeCount: utils.ToInt64(v.LicInfo.OANodeCount),
- // OAProductCode: utils.ToString(v.LicInfo.OAProductCode),
- // OAProductName: utils.ToString(v.LicInfo.OAProductName),
- // OAProductVersion: utils.ToString(v.LicInfo.OAProductVersion),
- // OACPU: utils.ToString(v.LicInfo.OACPU),
- // OAOperatingSystem: utils.ToString(v.LicInfo.OAOperatingSystem),
- // OAMainMAC: utils.ToString(v.LicInfo.OAMainMAC),
- // OASecondMAC: utils.ToString(v.LicInfo.OASecondMAC),
- // OACreationDate: utils.ToString(v.LicInfo.OACreationDate),
- // OACreationTime: utils.ToString(v.LicInfo.OACreationTime),
- // OALastOperateDate: utils.ToString(v.LicInfo.OALastOperateDate),
- // OALastOperateTime: utils.ToString(v.LicInfo.OALastOperateTime),
- // CaptureTime: utils.ToTimeString(v.LicInfo.CaptureTime),
- // DelTime: utils.ToTimeString(v.LicInfo.DelTime),
- // LastOperateTime: utils.ToTimeString(v.LicInfo.LastOperateTime),
- // LicenseUniqueID: utils.ToString(v.GenrateInfo.LicenseUniqueID),
- // LicenseFlage: utils.ToString(v.GenrateInfo.LicenseFlage),
- // Lic1: utils.ToString(v.GenrateInfo.Lic1),
- // Lic2: utils.ToString(v.GenrateInfo.Lic2),
- // CreatorGenerate: utils.ToTimeString(v.GenrateInfo.CreatorGenerate),
- // }
- // datas = append(datas, data)
- // }
- // c.JSON(http.StatusOK, gin.H{
- // "data": datas,
- // "page": page,
- // "pageSize": pageSize,
- // "total": total,
- // })
- // }
- func GetAllLicenseInfoController(c *gin.Context) {
- //获取请求参数
- page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
- pageSize, _ := strconv.Atoi(c.DefaultQuery("pageSize", "10"))
- //获取用户信息和权限
- userInfo, err := getLoginInfo(c)
- if err != nil {
- c.JSON(http.StatusUnauthorized, gin.H{"error": "用户信息不存在"})
- c.Abort()
- }
- // if t := userInfo.Permission[middlewares.ReadAllLicense]; t == middlewares.ReadAllLicense {
- // }
- var datas [][]api.AllLicenseInfoResponse
- var Total int
- // 初始化存储 `OARequestID` 相同的 `ApiLicenseInfoTemp` 列表的 map
- oaRequestIDMap := make(map[int64][]api.AllLicenseInfoResponse)
- if userInfo.Permission[middlewares.ReadAllLicense] == middlewares.ReadAllLicense {
- datas1, total, err := models.GetOALicenseInfo(pageSize, page, "read_all_license", "", "", "")
- if err != nil {
- global.Logger.Errorln("error", err.Error())
- c.JSON(http.StatusNotFound, gin.H{"error": err.Error()})
- return
- }
- Total = total
- //var ApiLicenseInfoTemp []api.AllLicenseInfoResponse
- for _, data := range *datas1 {
- ApiLicenseInfo := api.AllLicenseInfoResponse{
- UniqueID: utils.ToString(data.LicInfo.UniqueID),
- OAId: utils.ToInt64(data.LicInfo.OAId),
- OARequestID: utils.ToInt64(data.LicInfo.OARequestID),
- OARequestName: utils.ToString(data.LicInfo.OARequestName),
- OARequestNameNew: utils.ToString(data.LicInfo.OARequestNameNew),
- OARequestNameHTMLNew: utils.ToString(data.LicInfo.OARequestNameHTMLNew),
- OAGLXMId: utils.ToInt64(data.LicInfo.OAGLXMID),
- OAGLXMName: utils.ToString(data.LicInfo.OAGLXMName),
- OASQSJ: utils.ToString(data.LicInfo.OASQSJ),
- OASalespersonName: utils.ToString(data.LicInfo.OASalespersonName),
- OAXSJSYX: utils.ToString(data.LicInfo.OAXSJSYX),
- OAOperationsPersonName: utils.ToString(data.LicInfo.OAOperationsPersonName),
- OAJFJSYX: utils.ToString(data.LicInfo.OAJFJSYX),
- OASYDW: utils.ToString(data.LicInfo.OASYDW),
- OAXMXXMS: utils.ToString(data.LicInfo.OAXMXXMS),
- OAJDS: utils.ToInt64(data.LicInfo.OAJDS),
- OANodeCount: utils.ToInt64(data.LicInfo.OANodeCount),
- OAProductCode: utils.ToString(data.LicInfo.OAProductCode),
- OAProductName: utils.ToString(data.LicInfo.OAProductName),
- OAProductVersion: utils.ToString(data.LicInfo.OAProductVersion),
- OACPU: utils.ToString(data.LicInfo.OACPU),
- OAOperatingSystem: utils.ToString(data.LicInfo.OAOperatingSystem),
- OAMainMAC: utils.ToString(data.LicInfo.OAMainMAC),
- OASecondMAC: utils.ToString(data.LicInfo.OASecondMAC),
- OACreationDate: utils.ToString(data.LicInfo.OACreationDate),
- OACreationTime: utils.ToString(data.LicInfo.OACreationTime),
- OALastOperateDate: utils.ToString(data.LicInfo.OALastOperateDate),
- OALastOperateTime: utils.ToString(data.LicInfo.OALastOperateTime),
- CaptureTime: utils.ToTimeString(data.LicInfo.CaptureTime),
- DelTime: utils.ToTimeString(data.LicInfo.DelTime),
- LastOperateTime: utils.ToTimeString(data.LicInfo.LastOperateTime),
- LicenseFlage: utils.ToString(data.GenrateInfo.LicenseFlage),
- Lic1: utils.ToString(data.GenrateInfo.Lic1),
- Lic2: utils.ToString(data.GenrateInfo.Lic2),
- CreatorGenerate: utils.ToTimeString(data.GenrateInfo.CreatorGenerate),
- }
- // 将 `ApiLicenseInfo` 添加到 `OARequestID` 对应的数组中
- oaRequestID := utils.ToInt64(data.LicInfo.OARequestID)
- oaRequestIDMap[oaRequestID] = append(oaRequestIDMap[oaRequestID], ApiLicenseInfo)
- }
- } else if userInfo.Permission[middlewares.ReadLicense] == middlewares.ReadLicense {
- datas1, total, err := models.GetOALicenseInfo(pageSize, page, "", "", userInfo.UniqueID, "")
- if err != nil {
- global.Logger.Errorln("error", err.Error())
- c.JSON(http.StatusNotFound, gin.H{"error": err.Error()})
- return
- }
- Total = total
- //var ApiLicenseInfoTemp []api.AllLicenseInfoResponse
- for _, data := range *datas1 {
- ApiLicenseInfo := api.AllLicenseInfoResponse{
- UniqueID: utils.ToString(data.LicInfo.UniqueID),
- OARequestID: utils.ToInt64(data.LicInfo.OARequestID),
- OARequestName: utils.ToString(data.LicInfo.OARequestName),
- OARequestNameNew: utils.ToString(data.LicInfo.OARequestNameNew),
- OARequestNameHTMLNew: utils.ToString(data.LicInfo.OARequestNameHTMLNew),
- OAGLXMId: utils.ToInt64(data.LicInfo.OAGLXMID),
- OAGLXMName: utils.ToString(data.LicInfo.OAGLXMName),
- OASQSJ: utils.ToString(data.LicInfo.OASQSJ),
- OASalespersonName: utils.ToString(data.LicInfo.OASalespersonName),
- OAXSJSYX: utils.ToString(data.LicInfo.OAXSJSYX),
- OAOperationsPersonName: utils.ToString(data.LicInfo.OAOperationsPersonName),
- OAJFJSYX: utils.ToString(data.LicInfo.OAJFJSYX),
- OASYDW: utils.ToString(data.LicInfo.OASYDW),
- OAXMXXMS: utils.ToString(data.LicInfo.OAXMXXMS),
- OAJDS: utils.ToInt64(data.LicInfo.OAJDS),
- OANodeCount: utils.ToInt64(data.LicInfo.OANodeCount),
- OAProductCode: utils.ToString(data.LicInfo.OAProductCode),
- OAProductName: utils.ToString(data.LicInfo.OAProductName),
- OAProductVersion: utils.ToString(data.LicInfo.OAProductVersion),
- OACPU: utils.ToString(data.LicInfo.OACPU),
- OAOperatingSystem: utils.ToString(data.LicInfo.OAOperatingSystem),
- OAMainMAC: utils.ToString(data.LicInfo.OAMainMAC),
- OASecondMAC: utils.ToString(data.LicInfo.OASecondMAC),
- OACreationDate: utils.ToString(data.LicInfo.OACreationDate),
- OACreationTime: utils.ToString(data.LicInfo.OACreationTime),
- OALastOperateDate: utils.ToString(data.LicInfo.OALastOperateDate),
- OALastOperateTime: utils.ToString(data.LicInfo.OALastOperateTime),
- CaptureTime: utils.ToTimeString(data.LicInfo.CaptureTime),
- DelTime: utils.ToTimeString(data.LicInfo.DelTime),
- LastOperateTime: utils.ToTimeString(data.LicInfo.LastOperateTime),
- LicenseFlage: utils.ToString(data.GenrateInfo.LicenseFlage),
- Lic1: utils.ToString(data.GenrateInfo.Lic1),
- Lic2: utils.ToString(data.GenrateInfo.Lic2),
- CreatorGenerate: utils.ToTimeString(data.GenrateInfo.CreatorGenerate),
- }
- // 将 `ApiLicenseInfo` 添加到 `OARequestID` 对应的数组中
- oaRequestID := utils.ToInt64(data.LicInfo.OARequestID)
- oaRequestIDMap[oaRequestID] = append(oaRequestIDMap[oaRequestID], ApiLicenseInfo)
- }
- }
- //获取指定的license缓存信息
- //data, err := global.LicCache.GetPaginatedData(page, pageSize)
- //返回[][]data 的方式
- // var datas [][]api.AllLicenseInfoResponse
- // for _, lic := range data {
- // var dataTemp []api.AllLicenseInfoResponse
- // for _, v := range lic {
- // data := api.AllLicenseInfoResponse{
- // UniqueID: v.UniqueID.String,
- // OARequestID: v.OARequestID.Int64,
- // OARequestName: utils.ToString(v.OARequestName),
- // OARequestNameNew: utils.ToString(v.OARequestNameNew),
- // OARequestNameHTMLNew: utils.ToString(v.OARequestNameHTMLNew),
- // OAGLXMId: utils.ToInt64(v.OAGLXMId),
- // OAGLXMName: utils.ToString(v.OAGLXMName),
- // OASQSJ: utils.ToTimeString(v.OASQSJ),
- // OASalespersonName: utils.ToString(v.OASalespersonName),
- // OAXSJSYX: utils.ToString(v.OAXSJSYX),
- // OAOperationsPersonName: utils.ToString(v.OAOperationsPersonName),
- // OAJFJSYX: utils.ToString(v.OAJFJSYX),
- // OASYDW: utils.ToString(v.OASYDW),
- // OAXMXXMS: utils.ToString(v.OAXMXXMS),
- // OAJDS: utils.ToInt64(v.OAJDS),
- // OANodeCount: utils.ToInt64(v.OANodeCount),
- // OAProductCode: utils.ToString(v.OAProductCode),
- // OAProductName: utils.ToString(v.OAProductName),
- // OAProductVersion: utils.ToString(v.OAProductVersion),
- // OACPU: utils.ToString(v.OACPU),
- // OAOperatingSystem: utils.ToString(v.OAOperatingSystem),
- // OAMainMAC: utils.ToString(v.OAMainMAC),
- // OASecondMAC: utils.ToString(v.OASecondMAC),
- // OACreationDate: utils.ToString(v.OACreationDate),
- // OACreationTime: utils.ToString(v.OACreationTime),
- // OALastOperateDate: utils.ToString(v.OALastOperateDate),
- // OALastOperateTime: utils.ToString(v.OALastOperateTime),
- // CaptureTime: utils.ToTimeString(v.CaptureTime),
- // DelTime: utils.ToTimeString(v.DelTime),
- // LastOperateTime: utils.ToTimeString(v.LastOperateTime),
- // LicenseUniqueID: utils.ToString(v.LicenseUniqueID),
- // LicenseFlage: utils.ToString(v.LicenseFlage),
- // Lic1: utils.ToString(v.Lic1),
- // Lic2: utils.ToString(v.Lic2),
- // CreatorGenerate: utils.ToString(v.CreatorGenerate),
- // }
- // dataTemp = append(dataTemp, data)
- // }
- // datas = append(datas, dataTemp)
- // }
- // 将 `oaRequestIDMap` 中的所有 `ApiLicenseInfoTemp` 列表添加到 `datas` 中
- for _, apiLicenseInfoTemp := range oaRequestIDMap {
- datas = append(datas, apiLicenseInfoTemp)
- }
- // 对 datas 的第一维进行排序
- // sort.Slice(datas, func(i, j int) bool {
- // // 假设你需要根据每个数组第一个元素的 OACreationDate 和 OACreationTime 来排序
- // if datas[i][0].OACreationDate == datas[j][0].OACreationDate {
- // return datas[i][0].OACreationTime > datas[j][0].OACreationTime
- // }
- // return datas[i][0].OACreationDate > datas[j][0].OACreationDate
- // })
- // 对 datas 的第一维进行排序
- sort.Slice(datas, func(i, j int) bool {
- // 先按 OACreationDate 和 OACreationTime 排序
- if datas[i][0].OACreationDate == datas[j][0].OACreationDate {
- if datas[i][0].OACreationTime == datas[j][0].OACreationTime {
- // 如果 OACreationDate 和 OACreationTime 相同,则按 OARequestID 从大到小排序
- return datas[i][0].OARequestID > datas[j][0].OARequestID
- }
- return datas[i][0].OACreationTime > datas[j][0].OACreationTime
- }
- return datas[i][0].OACreationDate > datas[j][0].OACreationDate
- })
- c.JSON(http.StatusOK, gin.H{
- "data": datas,
- "page": page,
- "pageSize": pageSize,
- "total": Total,
- })
- }
- func GenerateOALicenseStrController(c *gin.Context) {
- var request api.GenerateLicenseStrRequest
- if err := c.ShouldBindJSON(&request); err != nil {
- global.Logger.Errorln("解析request失败 : ", err.Error())
- c.JSON(400, gin.H{
- "error": fmt.Sprintf("解析请求失败: ", err.Error()),
- })
- return
- }
- err := services.GenerateOALicenseStrServices(request)
- if err != nil {
- c.JSON(http.StatusOK, gin.H{
- "error": fmt.Sprintf("生成错误: ", err.Error()),
- })
- return
- }
- c.JSON(http.StatusOK, gin.H{
- "success": true,
- "message": "License生成成功!",
- })
- // applications, _, err := models.GetOALicenseInfo(0, 1, "", request.UniqueID, "")
- // if err != nil {
- // global.Logger.Errorln("LicenseInfo数据查询失败: ", err.Error())
- // c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("数据查询失败: ", err.Error())})
- // return
- // }
- // pj := license.ProjectInfo{
- // ProjectName: utils.ToString((*applications)[0].LicInfo.OAProductName),
- // UserName: utils.ToString((*applications)[0].LicInfo.OAProductVersion),
- // UserAddr: "未填写",
- // SerialNumber: "未填写",
- // }
- // ei := license.EnvironmentInfo{
- // CpuSN: "未填写",
- // BaseboardSN: "未填写",
- // MacAddr: utils.ToString((*applications)[0].LicInfo.OAMainMAC),
- // DiskID: "未填写",
- // IPAddr: "未填写",
- // }
- // LicType := utils.SwitchLicenseType(utils.ToString((*applications)[0].LicInfo.OAProductName))
- // lI := license.LicenseInfo{
- // GenDate: "2024-07-15",
- // ExpireDate: "9999-12-31",
- // LicenseType: LicType,
- // LicenseVersion: 1,
- // HardType: 3,
- // }
- //这里调用的是license模块中的生成license的方法
- // res := true
- // if res {
- // //生成副主节点license
- // if (*applications)[0].LicInfo.OASecondMAC.String != "" {
- // // var licStr2 []byte
- // // ei.MacAddr = applications[0].SecondaryMasterMacAddress
- // // licStr2 = license.GenerateLicense(pj, ei, lI)
- // err = models.UpdateOALicenseStr(utils.ToString((*applications)[0].LicInfo.UniqueID), []byte("b4j6z4rE2IfG1av0wIPT7YnvyGZFHxwIBikMGjgCLQILR0xsT1NHiuzoi+Dqq+bmiNDEiuPyitDVgdvlRmYbFAk+MAAGASlPTkdMbE9"), []byte("b4j6z4rE2IfG1av0wIPT7YnvyGZFHxwIBikMGjgCLQILR0xsT1NHiuzoi+Dqq+bmiNDEiuPyitDVgdvlRmYbFAk+MAAGASlPTkdMbE9"))
- // } else {
- // //fmt.Println("licStr licStr2", licStr, licStr2)
- // //插入到数据库
- // err = models.UpdateOALicenseStr(utils.ToString((*applications)[0].LicInfo.UniqueID), []byte("b4j6z4rE2IfG1av0wIPT7YnvyGZFHxwIBikMGjgCLQILR0xsT1NHiuzoi+Dqq+bmiNDEiuPyitDVgdvlRmYbFAk+MAAGASlPTkdMbE9"), nil)
- // }
- // } else {
- // licStr := license.GenerateLicense(pj, ei, lI)
- // //生成副主节点license
- // if (*applications)[0].LicInfo.OASecondMAC.String != "" {
- // var licStr2 []byte
- // ei.MacAddr = (*applications)[0].LicInfo.OASecondMAC.String
- // licStr2 = license.GenerateLicense(pj, ei, lI)
- // err = models.UpdateOALicenseStr(utils.ToString((*applications)[0].LicInfo.UniqueID), licStr, licStr2)
- // } else {
- // //插入到数据库
- // err = models.UpdateOALicenseStr(utils.ToString((*applications)[0].LicInfo.UniqueID), licStr, nil)
- // }
- // }
- // if err != nil {
- // fmt.Println(err)
- // if err := c.ShouldBindJSON(&request); err != nil {
- // c.JSON(400, gin.H{
- // "error": err.Error(),
- // })
- // return
- // }
- // }
- // if err != nil {
- // fmt.Println(err)
- // if err := c.ShouldBindJSON(&request); err != nil {
- // global.Logger.Errorln("LicenseInfo数据查询失败: ", err.Error())
- // c.JSON(400, gin.H{
- // "error": fmt.Sprintf("数据查询失败: ", err.Error()),
- // })
- // return
- // }
- // }
- //xlsx.ExcelToMail(lic, licStr, licStr2)
- }
- // func CheckDistributeOALicenseToOaDbController(c *gin.Context) {
- // var CheckDisLicense struct {
- // LicUniqueID string `json:"lic_unique_id"`
- // }
- // var request CheckDisLicense
- // if err := c.ShouldBindJSON(&request); err != nil {
- // global.Logger.Errorln("license分发请求解析失败 %s", err.Error())
- // c.JSON(400, gin.H{
- // "error": fmt.Sprintf("license分发请求解析失败 %s", err.Error()),
- // })
- // return
- // }
- // //检测该数据是否与oa库数据库一致
- // OALicenseInfo, err := models.CheckLicenseInfoInOADB((*applications)[0].LicInfo.ID)
- // if err != nil {
- // global.Logger.Errorln("LicenseInfo数据对比oa库 查询失败: ", err.Error())
- // // c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("数据查询失败: ", err.Error())})
- // return errors.Errorf("LicenseInfo数据对比oa库 查询失败 %v", err.Error())
- // }
- // checkTemp := CompareOALicenseInfo(&(*applications)[0], OALicenseInfo)
- // //如果不一致,则修改源数据
- // }
- /*
- 对单条lic或是申请单的处理
- 检测lic是否以及分发过给用户
- */
- func DistributeOALicenseController(c *gin.Context) {
- //判断是否发邮件
- //数据库查询license信息
- var request api.DistributeLicenseRequest
- if err := c.ShouldBindJSON(&request); err != nil {
- global.Logger.Errorln("license分发请求解析失败 %s", err.Error())
- c.JSON(400, gin.H{
- "error": fmt.Sprintf("license分发请求解析失败 %s", err.Error()),
- })
- return
- }
- EmailArray := strings.Split(request.Emails, ",")
- err, existUsers := services.DistributeOALicenseServices(request.OperatorUniqueID, request.OaRequestId, request.UserUniqueIDs, request.UserAccounts, request.UserNames, EmailArray)
- if err != nil {
- global.Logger.Errorln("license分发失败 %s", err.Error())
- c.JSON(400, gin.H{
- "error": fmt.Sprintf("license分发失败 %s", err.Error()),
- })
- return
- }
- if existUsers != nil {
- global.Logger.Errorf("license分发失败,以下用户已经分发过 %s")
- c.JSON(400, gin.H{
- "error": fmt.Sprintf("以下用户已经分发过 %s", existUsers),
- })
- return
- }
-
- c.JSON(http.StatusOK, gin.H{
- "success": true,
- "data": "分发成功!",
- })
- }
- // 获取分发历史
- func GetlicenseRecordInfo(c *gin.Context) {
- // type licenseRecordInfoRequest struct {
- // UniqueID string `json:"uniqueID"`
- // Id int `json:"id"`
- // }
- var request api.GetDistributeHistoryRequest
- if err := c.ShouldBindJSON(&request); err != nil {
- global.Logger.Errorln("解析请求失败 ", err.Error())
- c.JSON(400, gin.H{
- "error": fmt.Sprintf("解析请求失败: ", err.Error()),
- })
- return
- }
- LicUers, err := models.GetlicenseRecordByUser(request.OaRequestId, request.UniqueID)
- if err != nil {
- global.Logger.Errorln("数据查询失败 ", err.Error())
- c.JSON(400, gin.H{
- "error": fmt.Sprintf("数据查询失败: ", err.Error()),
- })
- return
- }
- LicEmails, err := models.GetlicenseRecordByEmail(request.OaRequestId, request.UniqueID)
- if err != nil {
- global.Logger.Errorln("数据查询失败 ", err.Error())
- c.JSON(400, gin.H{
- "error": fmt.Sprintf("数据查询失败: ", err.Error()),
- })
- return
- }
- licR := models.LicenseRecord{
- LicenseRecordToUser: LicUers,
- LicenseRecordToEmails: LicEmails,
- }
- fmt.Println("分发历史applications", licR)
- c.JSON(http.StatusOK, gin.H{
- "success": true,
- "data": licR,
- })
- }
- // 更新license信息
- func UpdateLicense(c *gin.Context) {
- var license api.UpdateLicenseInfoRequest
- // 绑定JSON数据到License结构体
- if err := c.ShouldBindJSON(&license); err != nil {
- c.JSON(http.StatusBadRequest, gin.H{
- "success": false,
- "error": err.Error(),
- })
- return
- }
- // fmt.Printf(" license.ApplicationDate: %#v ", license)
- err := models.UpdatelicenseInfoRow(models.OALicenseInfo{
- LicInfo: models.TargetOALicenseInfo{
- UniqueID: utils.StringToNullString(license.UniqueID),
- OARequestName: utils.StringToNullString(license.Creator),
- OACreationDate: utils.StringToNullString(license.ApplicationDate),
- OAGLXMName: utils.StringToNullString(license.AssociatedProject),
- OANodeCount: utils.IntToNullInt64(license.NodeCount),
- OASalespersonName: utils.StringToNullString(license.SalesPerson),
- OAOperationsPersonName: utils.StringToNullString(license.SupportPerson),
- OAXSJSYX: utils.StringToNullString(license.SalesEmail),
- OAJFJSYX: utils.StringToNullString(license.SupportEmail),
- OAJDS: utils.IntToNullInt64(license.TotalNodes),
- OAProductName: utils.StringToNullString(license.ProductName),
- OAProductVersion: utils.StringToNullString(license.Version),
- OASYDW: utils.StringToNullString(license.Company),
- },
- })
- if err != nil {
- global.Logger.Errorln("数据插入失败 ", err.Error())
- c.JSON(http.StatusBadRequest, gin.H{"success": false, "error": fmt.Sprintf("数据插入失败: ", err.Error())})
- return
- }
- //刷新缓存
- // layout := "2006-01-02 15:04:05"
- // startTime, _ := time.Parse(layout, "2023-07-30 14:00:00")
- // endTime, _ := time.Parse(layout, "2023-08-26 16:00:00")
- // if err := global.LicCache.RefreshCache(global.XuguDB, startTime, endTime, 0, 20); err != nil {
- // global.Logger.Errorln("LicenseInfo数据刷新缓存失败: ", err.Error())
- // c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("数据刷新缓存失败: ", err.Error())})
- // return
- // }
- c.JSON(http.StatusOK, gin.H{
- "success": true,
- })
- }
- // 删除一行lincese信息
- func DelLicenseInfoRow(c *gin.Context) {
- // 解析 JSON 请求体
- var request UniqueIDRequest
- if err := c.ShouldBindJSON(&request); err != nil {
- c.JSON(400, gin.H{
- "error": err.Error(),
- })
- return
- }
- err := models.DelLicenseInfoRow(request.UniqueID)
- if err != nil {
- global.Logger.Errorln("删除一行License信息失败 ", err.Error())
- c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("删除失败: ", err.Error())})
- return
- }
- //刷新缓存
- // layout := "2006-01-02 15:04:05"
- // startTime, _ := time.Parse(layout, "2023-07-30 14:00:00")
- // endTime, _ := time.Parse(layout, "2023-08-26 16:00:00")
- // if err := global.LicCache.RefreshCache(global.XuguDB, startTime, endTime, 0, 20); err != nil {
- // global.Logger.Errorln("LicenseInfo数据刷新缓存失败: ", err.Error())
- // c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("数据刷新缓存失败: ", err.Error())})
- // return
- // }
- c.JSON(http.StatusOK, gin.H{
- "success": true,
- "data": "删除成功",
- })
- }
- // 主动抓取一次license信息到支撑库
- func CaptureLicenseOnceToDb(c *gin.Context) {
- if err := capture.CaptureOnce(global.OaDB, global.XuguDB); err != nil {
- global.Logger.Errorln("主动抓取license信息到支撑库失败: ", err.Error())
- c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("主动抓取license信息数据失败: %s", err.Error())})
- return
- }
- c.JSON(http.StatusOK, gin.H{
- "success": true,
- })
- }
- func SearchLicInfoToDb(c *gin.Context) {
- // var request string
- // if err := c.ShouldBindJSON(&request); err != nil {
- // c.JSON(400, gin.H{
- // "error": err.Error(),
- // })
- // return
- // }
- request := c.Param("data")
- if datas, err := models.SearchLicInfoToDb(request); err != nil {
- global.Logger.Errorln("搜索license信息失败: ", err.Error())
- c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("搜索license信息失败失败: %s", err.Error())})
- return
- } else {
- c.JSON(http.StatusOK, gin.H{
- "success": true,
- "data": datas,
- })
- }
- }
|