select t1.id,t1.parent_id,t2.*,
 if(find_in_set(parent_id, @pids) > 0, @pids := concat(@pids, ',', id), 0) as ischild
 from (
      select id,parent_id from biz_product t where t.deleted = '0' order by parent_id, id
     ) t1,
     (select @pids := 1) t2

cd internal/comm/grpc/proto
protoc --go_out=. \
  --go_opt=paths=source_relative \
  --go-grpc_out=. \
  --go-grpc_opt=paths=source_relative \
  greater/greater.proto

安装打包工具
npm install --save-dev electron-packager

打包客户端
cd ui && yarn build --dest ../client/ui && cd ..
// 遇到node版本问题，执行 export NODE_OPTIONS=--openssl-legacy-provider

go-bindata -o=res/res.go -pkg=res res/...

make compile_win64
cd client && npm run package-win64 && cd ..

make compile_win32
cd client && npm run package-win32 && cd ..

make compile_linux
cd client && npm run package-linux && cd ..

scp -r client/out/ztf-linux-x64/ 192.168.0.114:/home/aaron
scp -r ~/work/zentao/qiniu/ztf/3.0.0_beta/linux/ztf.zip 192.168.0.114:/home/aaron

make compile_mac
cd client && npm run package-mac && cd ..

client/out/ztf-darwin-x64/ztf.app/Contents/MacOS/ztf

接口：
用户信息
产品树状列表（我参与的，其他的分开）
模块列表
套件列表
任务列表
用例树状列表（按模块组织，可以根据模块、套件、任务过滤）

sonar-scanner \
  -Dsonar.projectKey=ztf \
  -Dsonar.sources=. \
  -Dsonar.host.url=http://10.8.1.10:59000  \
  -Dsonar.login=412093d8c90b99378b48139915fbf275509092ad

scp ~/work/zentao/qiniu/ztf/3.0.0/win64/ztf.zip aaron@110.42.146.127:~/work/webroot/