|
@@ -456,11 +456,46 @@ func CheckOaLicRequest(oaRequestID int64, userUNIQUEID string) (bool, error) {
|
|
|
}
|
|
|
|
|
|
// ------------------按搜索条件查询license表--------------------
|
|
|
-// 假设你有一个结构体保存传入的参数
|
|
|
-
|
|
|
-func buildSQL(params api.ConditionalSearchRequest) (string, []interface{}) {
|
|
|
+/*生成sql
|
|
|
+flag : 1 是全部
|
|
|
+ 2 是用户拥有的license
|
|
|
+*/
|
|
|
+func buildConditionalSearchAllSQL(params api.ConditionalSearchRequest, flag int, user string) (string, []interface{}) {
|
|
|
// 基础SQL查询
|
|
|
- baseSQL := `SELECT
|
|
|
+ var baseSQL string
|
|
|
+
|
|
|
+ switch flag {
|
|
|
+ case 1:
|
|
|
+ baseSQL = `SELECT
|
|
|
+ la.ID, la.Unique_ID, la.OA_ID, la.OA_REQUESTID, la.OA_REQUESTNAME, la.OA_REQUESTNAMENEW,
|
|
|
+ la.OA_REQUESTNAMEHTMLNEW, la.OA_GLXMID ,la.OA_GLXMNAME ,la.OA_SQSJ, la.OA_SALESPERSONNAME, la.OA_XSJSYX,
|
|
|
+ la.OA_OPERATIONSPERSONNAME, la.OA_JFJSYX, la.OA_SYDW, la.OA_XMXXMS, la.OA_JDS,
|
|
|
+ la.OA_NODECOUNT, la.OA_PRODUCTCODE, la.OA_PRODUCTNAME, la.OA_PRODUCTVERSION,
|
|
|
+ la.OA_CPU, la.OA_OPERATINGSYSTEM, la.OA_MAINMAC, la.OA_SECONDMAC, la.OA_CREATIONDATE,
|
|
|
+ la.OA_CREATIONTIME, la.OA_LASTOPERATEDATE, la.OA_LASTOPERATETIME, la.capture_Time,
|
|
|
+ la.del_Time, la.LAST_OPERATE_TIME,
|
|
|
+ li.ID AS License_ID, li.OA_ID, li.License_UniqueID, li.License_Flage, li.lic1, li.lic2, li.Creator_generate
|
|
|
+ FROM
|
|
|
+ target_OA_license la
|
|
|
+ INNER JOIN
|
|
|
+ License_generate_Info li
|
|
|
+ ON
|
|
|
+ la.Unique_ID = li.License_UniqueID
|
|
|
+ WHERE
|
|
|
+ OA_REQUESTID IN (
|
|
|
+ SELECT OA_REQUESTID
|
|
|
+ FROM (
|
|
|
+ SELECT OA_REQUESTID, rownum AS a
|
|
|
+ FROM (
|
|
|
+ SELECT DISTINCT OA_REQUESTID FROM TARGET_OA_LICENSE
|
|
|
+ ) a
|
|
|
+ ) s
|
|
|
+ WHERE a BETWEEN 1 AND 1000
|
|
|
+ )
|
|
|
+ AND la.del_Time IS NULL
|
|
|
+ AND 1=1`
|
|
|
+ case 2:
|
|
|
+ baseSQL = fmt.Sprintf(`SELECT
|
|
|
la.ID, la.Unique_ID, la.OA_ID, la.OA_REQUESTID, la.OA_REQUESTNAME, la.OA_REQUESTNAMENEW,
|
|
|
la.OA_REQUESTNAMEHTMLNEW, la.OA_GLXMID ,la.OA_GLXMNAME ,la.OA_SQSJ, la.OA_SALESPERSONNAME, la.OA_XSJSYX,
|
|
|
la.OA_OPERATIONSPERSONNAME, la.OA_JFJSYX, la.OA_SYDW, la.OA_XMXXMS, la.OA_JDS,
|
|
@@ -475,6 +510,10 @@ INNER JOIN
|
|
|
License_generate_Info li
|
|
|
ON
|
|
|
la.Unique_ID = li.License_UniqueID
|
|
|
+INNER JOIN
|
|
|
+ LICENSERECORDTOUSER ltr
|
|
|
+ ON
|
|
|
+ la.OA_REQUESTID = ltr.OA_REQUESTID AND ltr.USER_ACCOUNT = '%s'
|
|
|
WHERE
|
|
|
OA_REQUESTID IN (
|
|
|
SELECT OA_REQUESTID
|
|
@@ -487,7 +526,8 @@ WHERE
|
|
|
WHERE a BETWEEN 1 AND 1000
|
|
|
)
|
|
|
AND la.del_Time IS NULL
|
|
|
-AND 1=1`
|
|
|
+AND 1=1`, user)
|
|
|
+ }
|
|
|
|
|
|
// 动态条件部分
|
|
|
var conditions []string
|
|
@@ -519,7 +559,60 @@ AND 1=1`
|
|
|
return baseSQL, args
|
|
|
}
|
|
|
|
|
|
-func GetConditionalSearch(params api.ConditionalSearchRequest) (*[]OALicenseInfo, int, error) {
|
|
|
+func GetConditionalSearchAll(params api.ConditionalSearchRequest) (*[]OALicenseInfo, int, error) {
|
|
|
+ total := 0
|
|
|
+ err := global.XuguDB.QueryRow(`
|
|
|
+ SELECT COUNT(*) from (SELECT OA_REQUESTID AS RequestCount
|
|
|
+ FROM TARGET_OA_LICENSE
|
|
|
+ where Del_Time IS NULL
|
|
|
+ GROUP BY OA_REQUESTID
|
|
|
+ )
|
|
|
+ HAVING COUNT(*) > 1;`).Scan(&total)
|
|
|
+ if err != nil {
|
|
|
+ return nil, 0, fmt.Errorf("count query error: %v", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建SQL语句和参数
|
|
|
+ query, args := buildConditionalSearchAllSQL(params, 1, "")
|
|
|
+ // 输出SQL语句和参数
|
|
|
+ fmt.Println("Query:", query)
|
|
|
+ fmt.Println("Args:", args)
|
|
|
+ rows, err := global.XuguDB.Query(query, args...)
|
|
|
+ if err != nil {
|
|
|
+ global.Logger.Errorln("getLicInfoByOAUniqueID 数据查询失败: ", err.Error())
|
|
|
+ return nil, 0, fmt.Errorf("getLicInfoByOAUniqueID 数据查询失败: %v", err)
|
|
|
+ }
|
|
|
+ defer rows.Close()
|
|
|
+ var rest []OALicenseInfo
|
|
|
+ for rows.Next() {
|
|
|
+ var info OALicenseInfo
|
|
|
+ err = rows.Scan(
|
|
|
+ &info.LicInfo.ID, &info.LicInfo.UniqueID, &info.LicInfo.OAId, &info.LicInfo.OARequestID,
|
|
|
+ &info.LicInfo.OARequestName, &info.LicInfo.OARequestNameNew, &info.LicInfo.OARequestNameHTMLNew,
|
|
|
+ &info.LicInfo.OAGLXMID, &info.LicInfo.OAGLXMName,
|
|
|
+ &info.LicInfo.OASQSJ, &info.LicInfo.OASalespersonName, &info.LicInfo.OAXSJSYX,
|
|
|
+ &info.LicInfo.OAOperationsPersonName, &info.LicInfo.OAJFJSYX, &info.LicInfo.OASYDW,
|
|
|
+ &info.LicInfo.OAXMXXMS, &info.LicInfo.OAJDS, &info.LicInfo.OANodeCount,
|
|
|
+ &info.LicInfo.OAProductCode, &info.LicInfo.OAProductName, &info.LicInfo.OAProductVersion,
|
|
|
+ &info.LicInfo.OACPU, &info.LicInfo.OAOperatingSystem, &info.LicInfo.OAMainMAC,
|
|
|
+ &info.LicInfo.OASecondMAC, &info.LicInfo.OACreationDate, &info.LicInfo.OACreationTime,
|
|
|
+ &info.LicInfo.OALastOperateDate, &info.LicInfo.OALastOperateTime, &info.LicInfo.CaptureTime,
|
|
|
+ &info.LicInfo.DelTime, &info.LicInfo.LastOperateTime,
|
|
|
+ &info.GenrateInfo.ID, &info.GenrateInfo.OAId, &info.GenrateInfo.LicenseUniqueID, &info.GenrateInfo.LicenseFlage,
|
|
|
+ &info.GenrateInfo.Lic1, &info.GenrateInfo.Lic2, &info.GenrateInfo.CreatorGenerate,
|
|
|
+ )
|
|
|
+ if err != nil {
|
|
|
+ log.Fatal(err)
|
|
|
+ }
|
|
|
+ rest = append(rest, info)
|
|
|
+
|
|
|
+ fmt.Println("info", info)
|
|
|
+ }
|
|
|
+
|
|
|
+ return &rest, total, nil
|
|
|
+}
|
|
|
+
|
|
|
+func GetConditionalSearchUser(params api.ConditionalSearchRequest, user string) (*[]OALicenseInfo, int, error) {
|
|
|
total := 0
|
|
|
err := global.XuguDB.QueryRow(`
|
|
|
SELECT COUNT(*) from (SELECT OA_REQUESTID AS RequestCount
|
|
@@ -533,7 +626,7 @@ func GetConditionalSearch(params api.ConditionalSearchRequest) (*[]OALicenseInfo
|
|
|
}
|
|
|
|
|
|
// 构建SQL语句和参数
|
|
|
- query, args := buildSQL(params)
|
|
|
+ query, args := buildConditionalSearchAllSQL(params, 2, user)
|
|
|
// 输出SQL语句和参数
|
|
|
fmt.Println("Query:", query)
|
|
|
fmt.Println("Args:", args)
|