Project

General

Profile

Wiki » History » Revision 26

Revision 25 (Soh Keong, 06/19/2023 02:32 PM) → Revision 26/28 (Soh Keong, 08/14/2023 11:45 AM)

{{toc}} 

 h1. Specification 


 h1. Programming Guide 

 h2. Jar version  

 |_. version |_. Description    | 
 | 1.0         | Init             | 

 h2. Jar File Download 

 "Jar":/redmine/attachments/download/771/keyword-1.0.jar 
 "Lib":/redmine/attachments/download/602/lib.rar 

 h3. Test Link 

 https://202.129.164.38:9093/TestPage/page/keyword/addKeyword 

 h3. Diagram  

 !FlowChart.jpg! 


 h2. Database Table 

 <pre> 
 CREATE TABLE KEYWORD_PRODUCT ( 
	 KEYWORD_REF_NO INTEGER NOT NULL, 
	 KEYWORD VARCHAR(50) NOT NULL, 
	 STATUS VARCHAR(2) DEFAULT 'A',  
	 CREATE_BY VARCHAR(15) NOT NULL, 
	 CREATE_DATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 
	 MODIFY_BY VARCHAR(15), 
	 MODIFY_DATETIME TIMESTAMP, 
	 PRIMARY KEY (KEYWORD_REF_NO)) 

 CREATE UNIQUE INDEX UI_PROD_KEYWORD ON KEYWORD_PRODUCT(KEYWORD) 
 </pre> 

 <pre> 
 CREATE TABLE KEYWORD_PRODUCT_PATTERN ( 
	 PRODUCT_REF_NO INTEGER NOT NULL, 
	 KEYWORD_REF_NO INTEGER NOT NULL, 
	 PRIORITY INTEGER NOT NULL, 
	 STATUS VARCHAR(2) DEFAULT 'A',  
	 CREATE_BY VARCHAR(15) NOT NULL, 
	 CREATE_DATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 
	 MODIFY_BY VARCHAR(15), 
	 MODIFY_DATETIME TIMESTAMP, 
	 PRIMARY KEY (PRODUCT_REF_NO,KEYWORD_REF_NO,PRIORITY)) 
	
 CREATE INDEX IX_KEYWORD_PRODUCT_PATTERN_STATUS ON KEYWORD_PRODUCT_PATTERN(STATUS) 
 </pre> 

 <pre> 
 CREATE TABLE KEYWORD_PRODUCT_PATTERN_AUDIT ( 
	 PRODUCT_REF_NO INTEGER NOT NULL, 
	 KEYWORD_REF_NO INTEGER NOT NULL, 
	 PRIORITY INTEGER NOT NULL, 
	 STATUS VARCHAR(2) DEFAULT 'A',  
	 CREATE_BY VARCHAR(15) NOT NULL, 
	 CREATE_DATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 
	 MODIFY_BY VARCHAR(15), 
	 MODIFY_DATETIME TIMESTAMP, 
	 PRIMARY KEY (PRODUCT_REF_NO,KEYWORD_REF_NO,PRIORITY)) 
 </pre> 

 <pre> 
 CREATE TABLE KEYWORD_SEARCH_PRODUCT ( 
	 PRODUCT_REF_NO INTEGER NOT NULL, 
	 SHOPPER_REF_NO INTEGER NOT NULL, 
	 SEARCH_TYPE VARCHAR(5) NOT NULL,  
	 CREATE_DATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 
	 MODIFY_DATETIME TIMESTAMP, 
	 PRIMARY KEY (PRODUCT_REF_NO,SHOPPER_REF_NO,SEARCH_TYPE)) 
	
 CREATE INDEX IX_KEYWORD_SEARCH_PRODUCT_MODI ON KEYWORD_SEARCH_PRODUCT(MODIFY_DATETIME) 
 CREATE INDEX IX_KEYWORD_SEARCH_PRODUCT_ ON KEYWORD_SEARCH_PRODUCT(SHOPPER_REF_NO,SEARCH_TYPE) 
 </pre> 

 <pre> 
 CREATE TABLE KEYWORD_SEARCH_PATTERN ( 
	 SHOPPER_REF_NO INTEGER NOT NULL, 
	 KEYWORD_REF_NO INTEGER NOT NULL, 
	 PRIORITY INTEGER NOT NULL, 
	 CREATE_DATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 
	 MODIFY_DATETIME TIMESTAMP, 
	 PRIMARY KEY (SHOPPER_REF_NO, KEYWORD_REF_NO, PRIORITY)) 
 </pre> 

 h1. Methods 

 h2. Keyword 

 <pre> 
 com.cosway.keyword.service.KeywordService service = new com.cosway.keyword.service.KeywordService(); 
 </pre> 

 boolean added        = service.addProductKeyword(Connection conn, KeywordBean keywordBean) 
 boolean updated      = service.updateKeywordByRefNo(Connection conn, KeywordBean keywordBean) 

 *KeywordBean* 
 > * *Keyword* -  
 > * *Status*    -  
 > * *User*      - Who perform the action 


 boolean updated      = service.updateKeywordStatus(Connection conn, int keywordRefNo, String status) 

 KeywordBean = service.getKeywordBeanByRefNo(); 

 int totalRecord = service.getKeywordActiveTotal(Connection conn) 
 int totalRecord = service.getTotalKeywordInActive(Connection conn) 
 int totalRecord = service.getTotalKeywordAll(Connection conn) 
 int totalRecord = service.getTotalKeywordPrefix(Connection conn, String search) 
 int totalRecord = service.getTotalKeywordwildcard(Connection conn, String search) 

 List<KeywordBean> keywordList = getKeywordActiveList(Connection conn, *int startFrom, int totalRecord* ) 
 List<KeywordBean> keywordList = service.getKeywordAInActiveList(Connection conn, *int startFrom, int totalRecord* ) 
 List<KeywordBean> keywordList = service.getKeywordAllList(Connection conn, *int startFrom, int totalRecord* ) 
 List<KeywordBean> keywordList = service.getKeywordPrefixList(Connection conn, String search, *int startFrom, int totalRecord* ) 
 List<KeywordBean> keywordList = service.getKeywordwildcardList(Connection conn, String search, *int startFrom, int totalRecord* ) 

 *NOTE :* startFrom & totalRecord are optional field 





 h2. Product 

 <pre> 
 com.cosway.keyword.service.ProductService service = new com.cosway.keyword.service.ProductService(); 
 </pre> 


 boolean added        = service.addProductKeyword(Connection conn, KeywordBean keyword) 
 boolean updated      = service.updateProductStatus(Connection conn, int productRefNo, String status, String user) 
 boolean updated      = service.updateProductStatus(Connection conn, int[] productRefNo, String status, String user) 
 boolean updated      = service.updateAddProductKeywordByProductAndPriority(Connection conn, List<KeywordBean> beanList) 

 *KeywordBean* 
 > * *productRefNo*    -  
 > * *keywordRefNo*    -  
 > * *priority*        -  
 > * *User*            - Who perform the action 

 int                                totalRecord = service.getTotalProductKeyword(Connection conn) 
 int                                totalRecord = service.getTotalProductSetByStatus(Connection conn, String status) 

 Vector<KeywordBean>                 productSet = service.getProductKeywordSetByProductRefNo(Connection conn, int productRefNo) 

 Map<Integer, Vector<KeywordBean>> productMap = service.getProductKeywordMap(Connection conn, *int startFrom, int totalRecord* ) 
 Vector<Integer>                     productSet = service.getProductSetByStatus(Connection conn, String status, *int startFrom, int totalRecord* ) 

 *NOTE :* startFrom & totalRecord are optional field 

 > * *productRefNo* -  
 > * *keywordRefNo* -  
 > * *priority*       -  






 h2. Add product Keyword 

 <pre> 
 com.cosway.keyword.service.PurchaseService service = new com.cosway.keyword.service.PurchaseService(); 
 </pre> 

 boolean added = service.addProductPattern(Connection conn, PurchaseBean bean) 

 > * *productRefNo* -  
 > * *searchType*     - com.cosway.keyword.constant.SearchType [A("All"), P("Purchase"), V("View"), C("Cart"), S("Search"), F("Favourite")] 
 > * *shopperRefNo* -  






 h2. Search 

 <pre> 
 com.cosway.keyword.service.SearchService service = new com.cosway.keyword.service.SearchService(); 
 </pre> 

 Set<Integer>            productSet = service.getProductListByType(Connection conn, SearchBean searchBean) 
 Set<Integer>            productSet = service.getProductListByProduct(Connection conn, SearchBean searchBean) 

 Map<Integer, Integer> productMap = service.getProductRefNoByLevel(Connection conn, SearchBean searchBean) 

 > By Type 
 > * *shopperRefNo* -  
 > * *noOfRecords*    -  
 > * *searchType*     - com.cosway.keyword.constant.SearchType [A("All"), P("Purchase"), V("View"), C("Cart"), S("Search"), F("Favourite")] 

 > By Level  
 > * *shopperRefNo* -  
 > * *noOfRecords*    -  
 > * *level*          -  

 > By Product 
 > * *productRefNo* -  
 > * *noOfRecords*    -  
 > * *level*          - (By Level & Product only)