Project

General

Profile

其他 #440

Updated by Xihua Fan 10 months ago

*Background* 
 # New requirement for v4.0 OTS 
   See: OneDrive\赤蓝商贸(上海)有限公司\Shanghai Group - IT\开发相关\OTS V4\开发需求 

 *Task Details* 
 * *Rule* 
 # %{color:red}DONE%: %{color:red}TO-DO%: ENGINE = MyISAM -> InnoDB 
 # %{color:red}DONE%: Don’t need to specify the length or precision for your *numeric* data.  
 
 # %{color:red}DONE%: Set Remain the default text type obviously -> utf8mb4_general_ci > utf8mb3_general_ci  
 # %{color:red}TO-DO%: 需要维护v3数据库 -不再需要维护v3数据库-  

 * *Record all SQL changes (v4)*: ENGINE = MyISAM -> InnoDB 
 |. Issue |. SQL    | 
 | #441      | <pre> 
 ALTER TABLE `ots_order_status` 
     ADD COLUMN `code` INT NOT NULL AFTER `name`, 
     ADD COLUMN `hex` VARCHAR(32) NOT NULL DEFAULT '' AFTER `code`; 
 ALTER TABLE ots_order_status 
     ADD COLUMN status TINYINT NOT NULL DEFAULT '1' AFTER hex; 
 ALTER TABLE ots_order_status 
     ADD COLUMN shipped TINYINT NOT NULL DEFAULT '0' AFTER hex, 
     ADD COLUMN sort_order INT NOT NULL DEFAULT (0) AFTER shipped; 

 TRUNCATE TABLE ots_order_status; 
 INSERT INTO ots_order_status (order_status_id, language_id, name, code, hex, shipped, sort_order, status) VALUES 
 (5, 1, 'Packing', 60, '#ffe699', 0, 60, 1), 
 (4, 1, 'P-Finished', 50, '#66ffff', 0, 50, 1), 
 (3, 1, 'P-Started', 30, '#fce4d6', 0, 30, 1), 
 (2, 1, 'New', 20, '#ffffff', 0, 20, 1), 
 (6, 1, 'Labelled', 0, '#0099ff', 0, 0, 0), 
 (7, 2, 'Completed', 80, '#92d050', 1, 80, 1), 
 (8, 1, 'Shipped', 70, '#cc99ff', 1, 70, 1), 
 (6, 2, 'Labelled', 0, '#0099ff', 0, 0, 0), 
 (1, 1, 'Sample', 10, '#e7e6e6', 0, 10, 1), 
 (7, 1, 'Completed', 80, '#92d050', 1, 80, 1), 
 (8, 2, 'Shipped', 70, '#cc99ff', 1, 70, 1), 
 (1, 2, 'Sample', 10, '#e7e6e6', 0, 10, 1), 
 (5, 2, 'Packing', 60, '#ffe699', 0, 60, 1), 
 (3, 2, 'P-Started', 30, '#fce4d6', 0, 30, 1), 
 (4, 2, 'P-Finished', 50, '#66ffff', 0, 50, 1), 
 (2, 2, 'New', 20, '#ffffff', 0, 20, 1);</pre> |  
 | #437      |  
 *Support 'SE' language, and language id = 2.(EN = 1, SE = 2, CN = 3)* 
 <pre> 
 TRUNCATE TABLE ots_language; 
 INSERT INTO `ots_language` (`language_id`, `name`, `code`, `locale`, `image`, `directory`, `sort_order`, `status`) VALUES 
	 (1, 'English', 'en', 'en-US,en_US.UTF-8,en_US,en-gb,english', 'gb.png', 'english', 1, 1), 
	 (2, 'Swedish', 'se', 'sv_SE.UTF-8,sv_SE,swedish', '', '', 2, 1), 
	 (3, 'Chinese', 'zh', 'zh,zh-CN', '', '', 3, 1); 

 TRUNCATE TABLE ots_order_status; 
 INSERT INTO `ots_order_status` (`order_status_id`, `language_id`, `name`, `code`, `hex`, `shipped`, `sort_order`, `status`) VALUES 
	 (5, 2, 'Packing', 60, '#ffe699', 0, 60, 1), 
	 (4, 2, 'P-Finished', 50, '#66ffff', 0, 50, 1), 
	 (3, 2, 'P-Started', 30, '#fce4d6', 0, 30, 1), 
	 (2, 2, 'New', 20, '#ffffff', 0, 20, 1), 
	 (6, 2, 'Labelled', 0, '#0099ff', 0, 0, 0), 
	 (8, 2, 'Shipped', 70, '#cc99ff', 1, 70, 1), 
	 (1, 2, 'Sample', 10, '#e7e6e6', 0, 10, 1), 
	 (7, 2, 'Completed', 80, '#92d050', 1, 80, 1), 
	 (5, 1, 'Packing', 60, '#ffe699', 0, 60, 1), 
	 (4, 1, 'P-Finished', 50, '#66ffff', 0, 50, 1), 
	 (3, 1, 'P-Started', 30, '#fce4d6', 0, 30, 1), 
	 (2, 1, 'New', 20, '#ffffff', 0, 20, 1), 
	 (6, 1, 'Labelled', 0, '#0099ff', 0, 0, 0), 
	 (8, 1, 'Shipped', 70, '#cc99ff', 1, 70, 1), 
	 (1, 1, 'Sample', 10, '#e7e6e6', 0, 10, 1), 
	 (7, 1, 'Completed', 80, '#92d050', 1, 80, 1), 
	 (7, 3, 'Completed', 80, '#92d050', 1, 80, 1), 
	 (6, 3, 'Labelled', 0, '#0099ff', 0, 0, 0), 
	 (2, 3, 'New', 20, '#ffffff', 0, 20, 1), 
	 (4, 3, 'P-Finished', 50, '#66ffff', 0, 50, 1), 
	 (3, 3, 'P-Started', 30, '#fce4d6', 0, 30, 1), 
	 (5, 3, 'Packing', 60, '#ffe699', 0, 60, 1), 
	 (1, 3, 'Sample', 10, '#e7e6e6', 0, 10, 1), 
	 (8, 3, 'Shipped', 70, '#cc99ff', 1, 70, 1);</pre> |  
 | #454      |  
 <pre> 
     CREATE TABLE `ots_unit_class` ( 
         `unit_class_id` INT NOT NULL AUTO_INCREMENT, 
         `status` TINYINT(1) NOT NULL DEFAULT '0', 
       PRIMARY KEY (`unit_class_id`) 
     ) ENGINE=INNODB DEFAULT CHARSET=UTF8; 

     CREATE TABLE `ots_unit_class_description` ( 
         `unit_class_id` INT NOT NULL AUTO_INCREMENT, 
         `language_id` INT NOT NULL, 
         `title` VARCHAR(32) NOT NULL, 
         `unit` VARCHAR(4) NOT NULL, 
       PRIMARY KEY (`unit_class_id`, `language_id`) 
     ) ENGINE=INNODB DEFAULT CHARSET=utf8; 
 </pre> |  

 * *Record all SQL changes (v3)* 
 |. Issue |. SQL    | 
 | #441      | <pre>CREATE TABLE `t_user_order_product` ( 
   `id` INT NOT NULL AUTO_INCREMENT, 
   `user_id` INT NOT NULL, 
   `order_product_id` INT NOT NULL, 
   `create_time` datetime NOT NULL, 
   PRIMARY KEY (`id`), 
   KEY `user_id` (`user_id`), 
   KEY `order_product_id` (`order_product_id`) 
 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;</pre> |  
 | #441      | <pre>ALTER TABLE `t_user_search` 
     ADD COLUMN `is_default` TINYINT NOT NULL DEFAULT '0' AFTER `search_data`;</pre> |  
 

 *v4 coding standard:* 
 # Git提交 
   #xxx(redmine number): xxx(redmine title) - xxx(任意:补充内容) 
    
 # 代码规范 
  2.1: 结构:Public -> Protected -> Private 
  2.2: 其他代码规范同SBX 
    
 # 数据层规范(Model) 
  3.1: 数据库操作只应出现在model或者system中。 
  3.2: v3/v4的model分为两个文件,比如: order.php, order_v3.php 
   
 # 前台代码 
   twig, js, css (js, css尽量写在单独的css文件中) 
     
 # 后台代码 
   MVCL    (L:en,cn) 
     
 # 注释 
 ## 类名: 
 <pre> 
 /** 
  * xxx 
  * 
  * @copyright RedBlue-OTS 2024 
  * @version v4 
  * 
  */ 
 </pre> 
 ## 函数名:参数类型 + 返回值类型 
 <pre> 
	 /** 
	  * xxx 
	  * 
	  * @param    xxx $xxx 
	  * @param    xxx $xxx 
	  * @return xxx 
	  */ 
 </pre> 

 *Output* 
 * Report and Solution 

 *Others* 

Back