// =================================================================================== // Select // ====== private PagingResultBean<Product> selectProductPage(int pageNumber, ProductSearchForm form) { verifyOrClientError("The pageNumber should be positive number: " + pageNumber, pageNumber > 0); return productBhv.selectPage( cb -> { cb.setupSelect_ProductStatus(); cb.setupSelect_ProductCategory(); cb.specify() .derivedPurchase() .max( purchaseCB -> { purchaseCB.specify().columnPurchaseDatetime(); }, Product.ALIAS_latestPurchaseDate); if (form.productName != null) { cb.query().setProductName_LikeSearch(form.productName, op -> op.likeContain()); } if (form.purchaseMemberName != null) { cb.query() .existsPurchase( purchaseCB -> { purchaseCB .query() .queryMember() .setMemberName_LikeSearch( form.purchaseMemberName, op -> op.likeContain()); }); } if (form.productStatus != null) { cb.query().setProductStatusCode_Equal_AsProductStatus(form.productStatus); } cb.query().addOrderBy_ProductName_Asc(); cb.query().addOrderBy_ProductId_Asc(); cb.paging(4, pageNumber); }); }
// =================================================================================== // Select // ====== private PagingResultBean<Product> selectProductPage(int pageNumber, WxValidatorForm form) { verifyOrClientError("The pageNumber should be positive number: " + pageNumber, pageNumber > 0); return productBhv.selectPage( cb -> { cb.ignoreNullOrEmptyQuery(); cb.setupSelect_ProductStatus(); cb.setupSelect_ProductCategory(); cb.specify() .derivedPurchase() .count( purchaseCB -> { purchaseCB.specify().columnPurchaseId(); }, Product.ALIAS_purchaseCount); cb.query().setProductName_LikeSearch(form.productName, op -> op.likeContain()); final String purchaseMemberName = form.purchaseMemberName; if (LaStringUtil.isNotEmpty(purchaseMemberName)) { cb.query() .existsPurchase( purchaseCB -> { purchaseCB .query() .queryMember() .setMemberName_LikeSearch(purchaseMemberName, op -> op.likeContain()); }); } cb.query().setProductStatusCode_Equal_AsProductStatus(form.productStatus); cb.query().addOrderBy_ProductName_Asc(); cb.query().addOrderBy_ProductId_Asc(); cb.paging(4, pageNumber); }); }
@AllowAnyoneAccess // TODO s.tadokoro Remove this when JSON Login feature is implemented. @Execute public JsonResponse<List<MypageProductResult>> index() { ListResultBean<Product> memberList = productBhv.selectList( cb -> { cb.query().addOrderBy_RegularPrice_Desc(); cb.fetchFirst(3); }); List<MypageProductResult> beans = memberList .stream() .map( member -> { return new MypageProductResult(member); }) .collect(Collectors.toList()); return asJson(beans); }