---
# System prepended metadata

title: 動植物防疫檢疫局檢疫申報發證系統委外維運服務

---

# 動植物防疫檢疫局檢疫申報發證系統委外維運服務

## 尚未完成
* 角色權限管理
* 登入時 會跳出不必要的認證視窗

## 一、注意事項

### 1. 登入後的所有請求，請務必都帶上Authorization請求頭(身分令牌)

| 參數名稱      | 必填 | 類型   | 備註     | 範例                                                         |
| ------------- | ---- | ------ | -------- | ------------------------------------------------------------ |
| Authorization | Y    | String | 身分令牌 | Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjU5ODI2YjU5LTkzZWYtNDFmOC1iYTFmLTZhNWNjZGUyM2E2ZiJ9.DH1NwnSo3JoTCjf-6WJL_XhcAyplNaezeRJz0IaEeVma65n1cJGBsoUUOjdx1fg8IX7otd3MBxAlk7ONDmq-Ng |



### 2. 所有返回值都是Json字串

範例

```json
{
	"msg":"操作成功",
	"code":"0000",
	"uuid":"6f68d0a646064ce3962110ddd0130de0"
}
```



### 3. 訊息狀態碼 (在返回值中，不是看HTTP Header)


### 4. 測試環境資訊
http://172.31.70.232:9201

## 二、系統流程
### 1.登入後發送api
#### a. 於首頁輸入使用者名稱、密碼、驗證碼後，點選"登入"鈕發送auth/oauth/token請求，成功登入後取得token
#### b. 於Request Header中設定Authorization，將token以'Bearer ' + token帶入，之後便可以登入者之授權身份發送後續Api Request
#### 1.1 圖形驗證
| 請求路徑    |
| --------   |
| /kaptcha  |

#### 1.2 登入
| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /auth/oauth/token  |

##### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------|
| grant_type | string | Y |   |固定是 : password|
| client_id | string | Y |   |固定是 : client-app |
| client_secret | string | Y |   |固定是 : 123456 |
| userName | string | Y | 帳號  |admin |
| password | string | Y | 密碼  |123456 |
| userType | int | Y | 使用者別  |1:檢疫人員 2:業者 |
| verifyId | string | Y | 圖形驗證 id   | 從 /kaptcha 那取得的id |
| verifyCode | string | Y | 圖形驗證 code   | 圖形內容6碼 |

#### 1.3 token 過期刷新(記住我)
| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /auth/oauth/token  |

##### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------|
| client_id | string | Y |   |固定是 : client-app |
| client_secret | string | Y |   |固定是 : 123456 |
| grant_type | string | Y |   |固定是 : refresh_token |
| refresh_token | string | Y | 刷新token  | 登入成功後返回的 refreshToken |






### 2. 忘記密碼(發送mail)
#### a. 使用者點選首頁"忘記密碼?"
#### b. ...
待補充...


## 三、布告欄

### 1.新增/儲存 (需身分令牌及權限)

| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /bulletinboard/news/save  |

#### 請求參數(form data)


| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| id           | int         | N       |編號  |有帶id時為編輯 |
| title        | string      | Y       |   標題  | |
| content      | string      | Y        |  內文   | |
| newsType     | int         | Y        |  類型   |類型 1:公告資訊 2:FAQ 3:系統公告 4:GTP'|
| ownerGroup   | int         | Y        |  對象   |擁有群組 1:檢疫人員 2:業者 3:民眾 |
| status       | int         | Y        |   狀態  |狀態 1:草稿 2:待上架 3:上架 4:下架|
| ontop        | int         | Y        |  置頂   |置頂 0:否 1:是|
| beginDate    | string      | N        |  起日   |yyyy/MM/dd|
| endDate      | string      | N        |  訖日   |yyyy/MM/dd|
| deletedFiles | string      | N        |  被刪除檔案   | 1,2,3,...|
| files        | File        | N        |  上傳的檔案  ||

### 2.上下架狀態變更 (需身分令牌及權限)

| 方法  | 請求路徑    |
| ---- | --------   |
| PUT | /bulletinboard/news/{id}/status/{status}  |

#### 請求參數(path variable)


| 參數名稱 | 類型 | 中文 |
| -------- | -------- | -------- |
| id     | int     | 公告編號     |
| status     | int     | 狀態     |


### 3.查詢 (需身分令牌及權限)

| 方法  | 請求路徑    |
| ---- | --------   |
| GET | /bulletinboard/news/query  |

#### 請求參數(form data)
| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| beginDate | string | N |起日| yyyy/MM/dd | 
| endDate | string | N |訖日| yyyy/MM/dd | 
| newsType | int | N |類型| | 
| status | int | N |狀態| | 
| pageNum | int | N |頁數| | 
| pageSize | int | N |筆數| | 

### 3.單筆詳細查詢 (需身分令牌及權限)

| 方法  | 請求路徑    |
| ---- | --------   |
| GET | /bulletinboard/news/edit/{id}  |

#### 請求參數(path variable)
| 參數名稱 | 類型 | 中文 |
| -------- | -------- | -------- |
| id     | int     | 公告編號     |

### 4.刪除 (需身分令牌及權限)

| 方法  | 請求路徑    |
| ---- | --------   |
| PUT | /bulletinboard/news/remove  |

#### 請求參數(form data)
| 參數名稱 | 類型 | 中文 |
| -------- | -------- | -------- |
| ids     | int array     | 公告編號清單     |

### 5.單筆詳細查詢 (需身分令牌及權限)

| 方法  | 請求路徑    |
| ---- | --------   |
| GET | /bulletinboard/news/get/{id}  |

#### 請求參數(path variable)
| 參數名稱 | 類型 | 中文 |
| -------- | -------- | -------- |
| id     | int     | 公告編號     |


### 6.查詢前幾筆 (有無身分令牌皆能查詢)

| 方法  | 請求路徑    |
| ---- | --------   |
| GET | /bulletinboard/news/getTop/{top}  |

#### 請求參數(path variable)
| 參數名稱 | 類型 | 中文 |
| -------- | -------- | -------- |
| top     | int     | 筆數   |

### 7.分頁查詢 (有無身分令牌皆能查詢)

| 方法  | 請求路徑    |
| ---- | --------   |
| GET | /bulletinboard/news/getAll  |

#### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| pageSize | int | N |筆數|  | 
| pageNum | int | N |頁數|  | 
| newsType | int | N |類型|  | 


### 8.檔案下載 (有無身分令牌皆能下載)

| 方法  | 請求路徑    |
| ---- | --------   |
| GET | /bulletinboard/news/file/download/{id}  |

#### 請求參數(path variable)
| 參數名稱 | 類型 | 中文 |
| -------- | -------- | -------- |
| id     | int     | 檔案編號  |

## 四、帳號管理

### 1.外部業者管理 
#### 1.1 新增/儲存 (有無身分令牌皆能做新增)

| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /user/trader/save  |

##### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| id | int | N |編號| 編輯時 需要帶編號 | 
| name | string | Y |帳號|  | 
| password | string | Y |密碼|  | 
| email | string | Y |郵件|  | 
| cName | string | Y | 公司中文全稱(姓名)|  | 
| eName | string | N | 公司英文全稱 |  | 
| mailingAddress | string | N | 通訊地址 |  | 
| personInCharge | string | Y | 負責人姓名 |  | 
| guiNo | string | Y | 統一編號(身份證字號) |  | 
| establishmentDate | string | Y | 核准設立登記日期(個人出生日期) |  yyyy/MM/dd  | 
| amountOfCapital | string | N | 資本額度 |   | 
| permanentAddress | string | Y | 登記地址 |   |
| tel | string | Y | 聯絡電話 |   |
| mobile | string | N | 手機 |   |
| fax | string | N | 傳真 |   |
| reviewOffice | int | Y | 審核機關 | 北:1 南:2 中:3 東:4 |
| definedType | int | Y | 用戶類型 | 1: 報關行 2: 代理人 3:自然人 |
| remark | string | N | 備註 |  |
| file | File | N | 檔案 | 新增時必須上傳檔案 |
| fileDeleted | string | N | true/false | 編輯時 有更新檔案 |

#### 1.2 查詢 (需要身分令牌)

| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /user/trader/query  |

##### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| guiNo | string | N ||  | 
| email | string | N ||  | 
| cName | string | N ||  | 
| reviewOffice | int | Y ||  | 
| definedType | int | Y ||  | 
| pageNum | int | N ||  | 
| pageSize | int | N ||  | 

#### 1.3 單筆詳細查詢 (需要身分令牌)

| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /user/trader/edit/{id}  |

##### 請求參數(path variable)

| 參數名稱 | 類型 | 中文 |
| -------- | -------- | -------- |
| id     | int     | 業者編號  |

#### 1.4 變更狀態 (需要身分令牌)

| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /user/trader/updateStatus  |

##### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| userIds | int array | Y ||  | 
| status | int | Y ||  | 

#### 1.5 審核狀態變更 (需要身分令牌)

| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /user/trader/audit  |

##### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| id | int  | Y |業者編號|  | 
| validNum | int | Y | 審查結果 | 1:通過 2:補件 3:拒絕 | 
| message | string | N | 審查訊息 |  | 


### 2.檢疫人員管理 

#### 2.1 新增/儲存 (需要身分令牌)
| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /user/staff/save  |

##### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| id | int | N |編號| 編輯時 需要帶編號 | 
| name | string | Y |帳號|  | 
| email | string | Y |郵件|  | 
| status | int | Y | 狀態 | 0:停用 1:啟用 | 
| fullname | string | Y | 姓名 |  | 
| title | string | N | 職稱 |  | 
| office_zone | int | N | 直屬部門 | 1:總部 2:北 3:中 4:南 5:東 | 

#### 2.2 查詢 (需要身分令牌)

| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /user/staff/query |

##### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| userName | string | N | 帳號 |  | 
| fullName | string | N |使用者名稱|  | 
| email | string | N |郵件|  | 
| pageNum | int | Y | 第幾頁 |  | 
| pageSize | int | Y | 筆數 |  | 


#### 2.3 單筆查詢 (需要身分令牌)

| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /user/staff/edit/{id} |

##### 請求參數(path variable)

| 參數名稱 | 類型 | 中文 |
| -------- | -------- | -------- |
| id     | string | 檢疫人員編號  |

#### 2.4 狀態變更 (需要身分令牌)

| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /user/staff/changeStatus |

##### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| userIds | string array | Y | 檢疫人員編號 |  | 
| status | int | Y | 狀態 |  | 


#### 2.5 預設角色功能清單 (需要身分令牌)

| 方法  | 請求路徑    |
| ---- | --------   |
| POST | /user/staff/getDefaultAuthorizedUrl/{roleId} |

##### 請求參數(path variable)

| 參數名稱 | 類型 | 中文 |
| -------- | -------- | -------- |
| roleId     | int | 角色編號  |


### 3.忘記密碼

#### 3.1  申請
| 方法  | 請求路徑    |
| ---- | --------   |
| POST/GET | /user/forgotPassword  |

* 此功能會寄忘記密碼信到信箱，信裡帶url，url有帶token跟email

##### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| email | string | Y | email |  | 
| verifyId | string | Y | 圖形驗證 id   | 從 /kaptcha 那取得的id |
| verifyCode | string | Y | 圖形驗證 code   | 圖形內容6碼 |


#### 3.2  驗證
| 方法  | 請求路徑    |
| ---- | --------   |
| POST/GET | /user/validateToken  |

##### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| email | string | Y | email | email 信裡的url取出 | 
| token | string | Y | token   | token 信裡的url取出 |

#### 3.2  儲存新密碼
| 方法  | 請求路徑    |
| ---- | --------   |
| POST/GET | /user/savePassword  |

##### 請求參數(form data)

| 參數名稱    | 類型   | 必填   |中文       |備註         |
| ----------- | -------- | -------- |-----|-----------| 
| email | string | Y |  | email 信裡的url取出 | 
| token | string | Y |  | token 信裡的url取出 |
| password | string | Y | 新密碼  |  |

----------------------------------------------------------------
                    資料表

DROP TABLE IF EXISTS user_main;
CREATE TABLE user_main (
  id                        varchar(20)                NOT NULL           COMMENT '使用者編號',  
  name                      varchar(30)                NOT NULL           COMMENT '使用者名稱',
  email                     varchar(255)               NOT NULL           COMMENT '使用者信箱',
  user_type                 tinyint(2)                 NOT NULL           COMMENT '使用者類別 1:檢疫人員 2: 業者',
  user_detail_id            varchar(64)                NOT NULL           COMMENT 'uuid 對應到 detail 的 id', 
  status                    tinyint(2)                 NOT NULL           COMMENT '狀態 0:停用 1:啟用',  
  create_date               timestamp                  NOT NULL           COMMENT '建立日期',
  create_user               varchar(20)                NOT NULL           COMMENT '建立人員',
  update_date               timestamp                  NULL               COMMENT '更新日期',
  update_user               varchar(20)                NULL               COMMENT '更新人員', 
  
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='使用者主表';



DROP TABLE IF EXISTS trader_detail;
CREATE TABLE trader_detail (
  id                        varchar(64)                NOT NULL           COMMENT 'user_detail_id',
  
  --name                      varchar(30)                NOT NULL           COMMENT '使用者名稱',
  --email                     varchar(255)               NOT NULL           COMMENT '使用者信箱',
  valid                     tinyint(2)                 NOT NULL           COMMENT '狀態 0:未審核 1:通過 2:補件 3:拒絕',
  --status                    tinyint(2)                 NOT NULL           COMMENT '狀態 0:停用 1: 啟用',    
  c_name                    varchar(255)               NOT NULL           COMMENT '公司中文全稱(姓名)',
  e_name                    varchar(255)               NULL               COMMENT '公司英文全稱(姓名)',
  mailing_address           varchar(255)               NULL               COMMENT '通訊地址',
  person_in_charge          varchar(30)                NOT NULL           COMMENT '負責人',
  gui_no                    varchar(20)                NOT NULL           COMMENT '統一編號(身份證字號)',
  establishment_date        timestamp                  NOT NULL           COMMENT '核准設立登記日期(個人出生日期)',
  amount_of_capital         varchar(50)                NULL               COMMENT '資本額度',
  permanent_address         varchar(255)               NOT NULL           COMMENT '登記地址',
  tel_no                    varchar(20)                NOT NULL           COMMENT '聯絡電話',
  mobile_no                 varchar(20)                NULL               COMMENT '行動電話',
  fax_no                    varchar(20)                NULL               COMMENT '傳真號碼',
  review_office             tinyint(2)                 NOT NULL           COMMENT '審核機關 北:1 南:2 中:3 東:4',
  defined_type              tinyint(2)                 NOT NULL           COMMENT '用戶類型 1: 報關行 2: 代理人 3:自然人 ',
  file_reference            varchar(64)                NOT NULL           COMMENT '附件',
  remark                    varchar(3000)              NULL               COMMENT '備註說明',
  --create_date               timestamp                  NOT NULL           COMMENT '建立日期',
  --create_user               varchar(64)                NOT NULL           COMMENT '建立人員',
  --update_date               timestamp                  NULL               COMMENT '更新日期',
  --update_user               varchar(64)                NULL               COMMENT '更新人員', 
  
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='業者資訊';


DROP TABLE IF EXISTS staff_detail;
CREATE TABLE staff_detail (
  id                        varchar(64)                NOT NULL           COMMENT 'uuid',
  
  --name                      varchar(30)                NOT NULL           COMMENT '使用者名稱',  
  --email                     varchar(255)               NOT NULL           COMMENT '使用者信箱',
  
  --status                    tinyint(2)                 NOT NULL           COMMENT '狀態 0:停用 1:啟用',  
  fullname                  varchar(30)                NOT NULL           COMMENT '姓名',
  title                     varchar(64)                NULL               COMMENT '職稱',
  office_zone               tinyint(2)                 NULL               COMMENT '直屬部門 1:總部 2:北 3:中 4:南 5:東',
  --create_date               timestamp                  NOT NULL           COMMENT '建立日期',
  --create_user               varchar(64)                NOT NULL           COMMENT '建立人員',
  --update_date               timestamp                  NULL               COMMENT '更新日期',
  --update_user               varchar(64)                NULL               COMMENT '更新人員', 
  
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='檢疫人員資訊'; 


DROP TABLE IF EXISTS user_secret;
CREATE TABLE user_secret (
  id                        int                        NOT NULL AUTO_INCREMENT,
  user_id                   varchar(20)                NOT NULL           COMMENT '使用者代號',
  password                  varchar(100)               NOT NULL           COMMENT '使用者密碼',
  create_date               timestamp                  NOT NULL           COMMENT '建立日期',  
  create_user               varchar(20)                NOT NULL           COMMENT '建立人員', 
  
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='密碼表'; 

DROP TABLE IF EXISTS login_record;
CREATE TABLE login_record (
  id                        int                        NOT NULL AUTO_INCREMENT,
  user_name                 varchar(30)                NOT NULL           COMMENT '使用者名稱',
  ip                        varchar(64)                NOT NULL           COMMENT 'ip 位置',  
  status                    tinyint(2)                 NOT NULL           COMMENT '狀態 0: 失敗 1: 成功',  
  create_date               timestamp                  NOT NULL           COMMENT '建立日期',

  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='登入狀態'; 


DROP TABLE IF EXISTS password_token;
CREATE TABLE password_token (
  token                 varchar(64)                NOT NULL           COMMENT 'token',
  email                 varchar(500)               NOT NULL           COMMENT 'email',
  expired               int                        NOT NULL           COMMENT '0:未過期 1:已過期',
  create_date           timestamp                  NOT NULL           COMMENT '建立日期',  

  PRIMARY KEY (token)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='忘記密碼'; 


DROP TABLE IF EXISTS user_roles;
CREATE TABLE user_roles (
  id                        int                        NOT NULL AUTO_INCREMENT,
  user_id                   varchar(20)                NOT NULL           COMMENT '使用者代號',
  role_id                   int                        NOT NULL           COMMENT '角色代號',    

  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='使用者角色'; 


DROP TABLE IF EXISTS role;
CREATE TABLE role (
  id                        int                        NOT NULL AUTO_INCREMENT COMMENT '角色編號',
  name                      varchar(64)                NOT NULL                COMMENT '角色名稱',
  note                      varchar(500)               NULL                    COMMENT '備註', 
  user_type                 tinyint(2)                 NOT NULL                COMMENT '類別 1:檢疫人員 2:業者',  

  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='角色'; 


DROP TABLE IF EXISTS app; --
CREATE TABLE app (
  id                        int                        NOT NULL AUTO_INCREMENT,
  name                      varchar(64)                NOT NULL           COMMENT '功能名稱',   

  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='系統清單'; 

DROP TABLE IF EXISTS menu; --
CREATE TABLE menu (
  id                        int                        NOT NULL AUTO_INCREMENT,
  name                      varchar(64)                NOT NULL           COMMENT '功能名稱',
  app_id                    int                        NOT NULL           COMMENT '系統編號',
  p_id                      int                        NOT NULL           COMMENT '父層編號',
  level_no                  int                        NOT NULL           COMMENT '層級',
  sort_no                   int                        NOT NULL           COMMENT '排序',
  is_end                    tinyint                    NOT NULL           COMMENT '是否末端 0:否 1:是',
  url                       varchar(500)               NULL               COMMENT '路徑', 
  note                      varchar(3000)              NULL               COMMENT '備註',

  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='功能表'; 

DROP TABLE IF EXISTS default_role_func; 
CREATE TABLE default_role_func (
  id                        int                        NOT NULL AUTO_INCREMENT,
  role_id                   int                        NOT NULL           COMMENT '角色編號',
  menu_id                   int                        NOT NULL           COMMENT '功能編號',     

  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='角色對應功能'; 


DROP TABLE IF EXISTS user_func; --
CREATE TABLE user_func (
  id                        int                        NOT NULL AUTO_INCREMENT,
  user_id                   varchar(20)                NOT NULL       COMMENT '使用者代號',  
  menu_id                   int                        NOT NULL       COMMENT '選單編號',  
  create_user               varchar(20)                NULL           COMMENT '建立人員',     
  create_date               timestamp                  NOT NULL       COMMENT '建立日期',    

  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='使用者對應功能'; 

DROP TABLE IF EXISTS capq.news;
CREATE TABLE capq.news (
  id                        int                        NOT NULL AUTO_INCREMENT,
  title                     varchar(500)               NOT NULL              COMMENT '標題',  
  content                   varchar(5000)              NOT NULL              COMMENT '內容',  
  news_type                 tinyint(2)                 NOT NULL              COMMENT '類型 1:公告資訊 2:FAQ 3:系統公告 4:GTP',
  owner_group               tinyint(2)                 NOT NULL              COMMENT '擁有群組 1:檢疫人員 2:業者 3:民眾 ',
  status                    tinyint(2)                 NOT NULL              COMMENT '狀態 1:草稿 2:待上架 3:上架 4:下架',
  ontop                     tinyint(2)                 DEFAULT 0 NOT NULL    COMMENT '置頂 0:否 1:是', 
  deleted                   tinyint(2)                 DEFAULT 0 NOT NULL    COMMENT '刪除狀態 0:否 1:是(僅備用)',
  begin_date                timestamp                  NULL                  COMMENT '公告起始日', 
  end_date                  timestamp                  NULL                  COMMENT '公告結束日',  
  file_reference            varchar(64)                NULL                  COMMENT '附件', 
  create_date               timestamp                  NOT NULL              COMMENT '建立日期',
  create_user               varchar(20)                NOT NULL              COMMENT '建立人員',
  update_date               timestamp                  NULL                  COMMENT '更新日期',
  update_user               varchar(20)                NULL                  COMMENT '更新人員',    

  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='布告欄訊息';

-- 更前記得備份 mapper
DROP TABLE IF EXISTS file_detail;
CREATE TABLE file_detail (
  id                        int                        NOT NULL AUTO_INCREMENT,
  file_reference            varchar(64)                NOT NULL              COMMENT 'uuid',  
  file_name                 varchar(100)               NOT NULL              COMMENT '檔案名稱',   
  file_size                 int                        NOT NULL              COMMENT '檔案大小(byte)',     
  file_path                 varchar(500)               NOT NULL              COMMENT '本地路徑',
  create_date               timestamp                  NOT NULL              COMMENT '建立日期',
  create_user               varchar(20)                NOT NULL              COMMENT '建立人員',
  update_date               timestamp                  NULL                  COMMENT '更新日期',
  update_user               varchar(20)                NULL                  COMMENT '更新人員',  

  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='檔案路徑';








