Sfoglia il codice sorgente

商品组查询优化

shenjingwei 7 mesi fa
parent
commit
2166526b48

+ 16 - 18
src/custom/restcontroller/sale/itemgroup/itemgroup.java

@@ -91,13 +91,6 @@ public class itemgroup extends Controller {
             ArrayList<Long> auth_itemList = itemRows.toArrayList("itemid", new ArrayList<>());
             ArrayList<Long> auth_itemList = itemRows.toArrayList("itemid", new ArrayList<>());
 
 
             itemList.addAll(auth_itemList);
             itemList.addAll(auth_itemList);
-
-
-        }else{
-            Rows itemclassRows = dbConnect.runSqlQuery("select itemclassid from plm_itemclass where siteid='" + siteid + "'");
-            ArrayList<Long> auth_itemclassList = itemclassRows.toArrayList("itemclassid", new ArrayList<>());
-            itemclassList.addAll(auth_itemclassList);
-            itemclassList.addAll(ItemClass.getSubItemClassIds(this, auth_itemclassList));
         }
         }
 
 
 
 
@@ -116,9 +109,9 @@ public class itemgroup extends Controller {
                         + "%' or s2.model like '%" + whereObject.getString("condition")
                         + "%' or s2.model like '%" + whereObject.getString("condition")
                         + "%') and s1.sa_itemgroupid=t1.sa_itemgroupid) ) ";
                         + "%') and s1.sa_itemgroupid=t1.sa_itemgroupid) ) ";
 
 
-                pageSorting="t1.groupname like'%" + whereObject.getString("condition")+"%' desc,exists(select 1 from sa_itemgroupmx s1 " +
-                        " LEFT JOIN plm_item s2 ON s1.itemid = s2.itemid AND s1.siteid = s2.siteid  where s2.itemname like'%"+whereObject.getString("condition")+"%') desc,exists(select 1 from sa_itemgroupmx s1 " +
-                        " LEFT JOIN plm_item s2 ON s1.itemid = s2.itemid AND s1.siteid = s2.siteid  where s2.itemno like'%"+whereObject.getString("condition")+"%') desc,t1.groupnum like'%" + whereObject.getString("condition")+"%' desc";
+                pageSorting = "t1.groupname like'%" + whereObject.getString("condition") + "%' desc,exists(select 1 from sa_itemgroupmx s1 " +
+                        " LEFT JOIN plm_item s2 ON s1.itemid = s2.itemid AND s1.siteid = s2.siteid  where s2.itemname like'%" + whereObject.getString("condition") + "%') desc,exists(select 1 from sa_itemgroupmx s1 " +
+                        " LEFT JOIN plm_item s2 ON s1.itemid = s2.itemid AND s1.siteid = s2.siteid  where s2.itemno like'%" + whereObject.getString("condition") + "%') desc,t1.groupnum like'%" + whereObject.getString("condition") + "%' desc";
 
 
             }
             }
             if (whereObject.containsKey("tradefield") && !"".equals(whereObject.getString("tradefield"))) {
             if (whereObject.containsKey("tradefield") && !"".equals(whereObject.getString("tradefield"))) {
@@ -135,8 +128,6 @@ public class itemgroup extends Controller {
                 list.add(itemclassid);
                 list.add(itemclassid);
                 if (saleclassauth) {//如果需要授权,则只显示授权范围内的商品类别
                 if (saleclassauth) {//如果需要授权,则只显示授权范围内的商品类别
                     itemclassList.removeIf(id -> !list.contains(id));
                     itemclassList.removeIf(id -> !list.contains(id));
-                } else {//如果不需要授权,则显示所有指定的商品类别
-                    itemclassList = list;
                 }
                 }
             }
             }
         }
         }
@@ -144,11 +135,18 @@ public class itemgroup extends Controller {
 
 
         itemclassList.add(0l);
         itemclassList.add(0l);
         itemList.add(0l);
         itemList.add(0l);
-        String sql ="select t1.sa_itemgroupid from sa_itemgroup t1 inner join  sa_itemgroupmx t2 on t1.sa_itemgroupid=t2.sa_itemgroupid and t1.siteid=t2.siteid" +
-                "  LEFT JOIN sa_itemsaleclass t4 ON t2.itemid = t4.itemid AND t2.siteid = t4.siteid and t4.classtype='营销'" +
-                "  where t1.siteid='"+siteid+"' and (t2.itemid in "+itemList+" or t4.itemclassid in "+itemclassList+")";
-        sql = sql.replace("[", "(").replace("]", ")");
-        Rows rowsgroupids= dbConnect.runSqlQuery(sql);
+        String sql;
+        if (saleclassauth) {
+            sql = "select t1.sa_itemgroupid from sa_itemgroup t1 inner join  sa_itemgroupmx t2 on t1.sa_itemgroupid=t2.sa_itemgroupid and t1.siteid=t2.siteid" +
+                    "  LEFT JOIN sa_itemsaleclass t4 ON t2.itemid = t4.itemid AND t2.siteid = t4.siteid and t4.classtype='营销'" +
+                    "  where t1.siteid='" + siteid + "' and (t2.itemid in " + itemList + " or t4.itemclassid in " + itemclassList + ")";
+            sql = sql.replace("[", "(").replace("]", ")");
+        } else {
+            sql = "select t1.sa_itemgroupid from sa_itemgroup t1 inner join  sa_itemgroupmx t2 on t1.sa_itemgroupid=t2.sa_itemgroupid and t1.siteid=t2.siteid" +
+                    "  LEFT JOIN sa_itemsaleclass t4 ON t2.itemid = t4.itemid AND t2.siteid = t4.siteid and t4.classtype='营销'" +
+                    "  where t1.siteid='" + siteid + "'";
+        }
+        Rows rowsgroupids = dbConnect.runSqlQuery(sql);
 
 
         //品牌过滤
         //品牌过滤
         JSONArray brandids = content.getJSONArray("brandids");
         JSONArray brandids = content.getJSONArray("brandids");
@@ -230,7 +228,7 @@ public class itemgroup extends Controller {
         RowsMap itemgroupAttRowsMap = getAttachmentUrl("sa_itemgroup", itemgroupids);
         RowsMap itemgroupAttRowsMap = getAttachmentUrl("sa_itemgroup", itemgroupids);
 
 
 
 
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_itemsaleclass", "itemid","classtype").setTableAlias("t1");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_itemsaleclass", "itemid", "classtype").setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.inner, "plm_itemclass", "t2", "t1.itemclassid = t2.itemclassid AND t1.siteid = t2.siteid", "itemclassname", "itemclassfullname");
         querySQL.addJoinTable(JOINTYPE.inner, "plm_itemclass", "t2", "t1.itemclassid = t2.itemclassid AND t1.siteid = t2.siteid", "itemclassname", "itemclassfullname");
         querySQL.addJoinTable(JOINTYPE.inner, "sa_brand", "t3", "t2.sa_brandid = t3.sa_brandid AND t2.siteid = t3.siteid", "brandname");
         querySQL.addJoinTable(JOINTYPE.inner, "sa_brand", "t3", "t2.sa_brandid = t3.sa_brandid AND t2.siteid = t3.siteid", "brandname");
         querySQL.setSiteid(siteid);
         querySQL.setSiteid(siteid);

+ 2 - 0
src/custom/restcontroller/sale/salestarget/enterprise.java

@@ -126,6 +126,8 @@ public class enterprise extends Controller {
         if (totalRows > 0) {
         if (totalRows > 0) {
             rows.totalRows = totalRows;
             rows.totalRows = totalRows;
             rows.totalPage = totalPage;
             rows.totalPage = totalPage;
+            rows.pageSize = pageSize;
+            rows.pageNumber = pageNumber;
         }
         }
 
 
 
 

+ 2 - 0
src/custom/restcontroller/webmanage/sale/salestarget/enterprisetarget.java

@@ -198,6 +198,8 @@ public class enterprisetarget extends Controller {
         if (totalRows > 0) {
         if (totalRows > 0) {
             rows.totalRows = totalRows;
             rows.totalRows = totalRows;
             rows.totalPage = totalPage;
             rows.totalPage = totalPage;
+            rows.pageSize = pageSize;
+            rows.pageNumber = pageNumber;
         }
         }
 
 
         return getSucReturnObject().setData(rows).toString();
         return getSucReturnObject().setData(rows).toString();