Просмотр исходного кода

Merge remote-tracking branch 'origin/dev-mysql' into dev-mysql

hejq 7 лет назад
Родитель
Сommit
9e933fa8e3
1 измененных файлов с 13 добавлено и 13 удалено
  1. 13 13
      src/main/java/com/uas/platform/b2b/service/impl/VendorsServiceImpl.java

+ 13 - 13
src/main/java/com/uas/platform/b2b/service/impl/VendorsServiceImpl.java

@@ -348,18 +348,18 @@ public class VendorsServiceImpl implements VendorService {
 				.append(enUU).append(" and en_name not like '%测试%' and lower(en_name) not like '%test%' and ").append(enterpriseMatchCondition).append(" group by en_uu order by count(1) desc" +
 				" ) a on en.en_uu = a.en_uu order by en.en_weight desc, counts desc");
 		// rownum 控制
-		String rownumSql = ") t where rownum <= " + page * size + ") s where r1 > " + (page - 1) * size;
+		String rownumSql = ") s limit " + (page - 1) * size + "," + size;
 		// 查找非供应商的卖当前商品的企业UU
 		StringBuffer vendorRecommendUusSql = new StringBuffer();
 		// and instr(Pr_Title,'测试')<1 and instr(lower(Pr_Title),'test')<1
-		vendorRecommendUusSql.append("select s.*,( select wm_concat(pr_title || (case when pr_brand is not null then '(' || pr_brand || ')' else ' ' end)) from v$products where pr_enuu=en_uu and ")
-				.append(productMatchCondition).append(" and pr_issale = 1 and pr_b2bdisabled <> 1 " +
-				" and rownum<5 ) productInfo, (select 1 from purc$vendors where ve_vendenuu = en_uu and ve_myenuu = ").append(enUU)
-				.append(") isVendor from (select t.*,rownum as r1 from (").append(enterpriseSql).append(rownumSql);
+		vendorRecommendUusSql.append("select s.*,( select group_concat(pr_title , (case when pr_brand is not null then concat('(', pr_brand, ')') else ' ' end)) from v$products where pr_enuu=en_uu and ")
+				.append(productMatchCondition).append(" and pr_issale = 1 and pr_b2bdisabled <> 1 limit 0,5 " +
+				" ) productInfo, (select 1 from purc$vendors where ve_vendenuu = en_uu and ve_myenuu = ").append(enUU)
+				.append(") isVendor from (").append(enterpriseSql).append(rownumSql);
 		// 因为需求更改为所有有销售产品的企业都会被返回,所以total直接取除本企业外其他有销售产品的企业数即可,之前的匹配企业数不再返回
 		StringBuffer totalSql = new StringBuffer().append(" select count(1) from (select en_uu from sec$enterprises left join " +
 				" products on en_uu = pr_enuu where en_name not like '%测试%' and lower(en_name) not like '%test%' and en_uu <> ")
-				.append(enUU).append(" and ").append(productMatchCondition).append(" and ").append(enterpriseMatchCondition).append(" group by en_uu)");
+				.append(enUU).append(" and ").append(productMatchCondition).append(" and ").append(enterpriseMatchCondition).append(" group by en_uu) a");
 //        System.out.println("SQL:" + vendorRecommendUusSql.toString());
 //        System.out.println("NUM_SQL:" + totalSql.toString());
 		Integer total = commonDao.queryForObject(totalSql.toString(), Integer.class);
@@ -393,26 +393,26 @@ public class VendorsServiceImpl implements VendorService {
 //		Long enUU = SystemSession.getUser().getEnterprise().getUu();
 			StringBuffer cmpCodesSql = new StringBuffer();
 			cmpCodesSql.append("select 1 from v$products where pr_cmpcode = p1.pr_cmpcode and pr_enuu = ")
-					.append(enUU).append(" and nvl(pr_issale,0) <> 1 and pr_ispurchase = 1 and pr_b2bdisabled <> 1 and Pr_Title not like '%测试%' and lower(Pr_Title) not like '%test%' and Pr_code not like '%测试%' and lower(Pr_code) not like '%test%' ");
+					.append(enUU).append(" and ifnull(pr_issale,0) <> 1 and pr_ispurchase = 1 and pr_b2bdisabled <> 1 and Pr_Title not like '%测试%' and Pr_Title not like '%test%' and Pr_code not like '%测试%' and Pr_code not like '%test%' ");
 //			if (null != productMatchCondition) {
 //				cmpCodesSql.append(" and ").append(productMatchCondition);
 //			}
 			// 查找匹配在售物料的语句
 			StringBuffer productsMatchSql = new StringBuffer();
 			productsMatchSql.append("select pr_id from (select pr_id from v$products p1 where exists (").append(cmpCodesSql).append(") and p1.pr_enuu = ").append(vendUU)
-					.append(" and p1.pr_issale = 1 and p1.pr_b2bdisabled <> 1 and p1.Pr_Title not like '%测试%' and lower(p1.Pr_Title) not like '%test%' and p1.Pr_code not like '%测试%' and lower(p1.Pr_code) not like '%test%' and ")
-					.append(whereCondition).append(" order by pr_standard desc, pr_id desc)");
+					.append(" and p1.pr_issale = 1 and p1.pr_b2bdisabled <> 1 and p1.Pr_Title not like '%测试%' and p1.Pr_Title not like '%test%' and p1.Pr_code not like '%测试%' and p1.Pr_code not like '%test%' and ")
+					.append(whereCondition).append(" order by pr_standard desc, pr_id desc) a");
 			// 查找不匹配但是在售物料的语句  union all 方便排序
 			StringBuffer notMatchProductsSql = new StringBuffer();
 			notMatchProductsSql.append("select pr_id from (select pr_id from v$products p1 where not exists (").append(cmpCodesSql).append(") and p1.pr_enuu = ").append(vendUU)
-					.append(" and p1.pr_issale = 1 and p1.pr_b2bdisabled <> 1 and p1.Pr_Title not like '%测试%' and lower(p1.Pr_Title) not like '%test%' and p1.Pr_code not like '%测试%' and lower(p1.Pr_code) not like '%test%' and ")
+					.append(" and p1.pr_issale = 1 and p1.pr_b2bdisabled <> 1 and p1.Pr_Title not like '%测试%' and p1.Pr_Title not like '%test%' and p1.Pr_code not like '%测试%' and p1.Pr_code not like '%test%' and ")
 					.append(whereCondition).append(" order by pr_standard desc, pr_id desc)");
 			// 物料id
 			StringBuffer idSql = new StringBuffer();
 			// rownum 控制
-			String rownumSql = " t where rownum <= " + page * size + ") where r1 > " + (page - 1) * size;
-			idSql.append("select pr_id from (select t.*,rownum as r1 from (").append(productsMatchSql).append(" union all ").append(notMatchProductsSql)
-					.append(")").append(rownumSql);
+			String rownumSql = " ) t limit " + (page - 1) * size + "," + size;
+			idSql.append("select pr_id from (").append(productsMatchSql).append(" union all ").append(notMatchProductsSql)
+					.append(" b").append(rownumSql);
 			List<Long> matchedIds = commonDao.queryForList(productsMatchSql.toString(), Long.class);
 			List<Long> ids = commonDao.queryForList(idSql.toString(), Long.class);
 //			System.out.println("id:" + idSql);