正在显示
51 个修改的文件
包含
994 行增加
和
163 行删除
Dockerfile
0 → 100644
| 1 | +FROM golang:1.14 | ||
| 2 | +ENV APP_DIR $GOPATH/src/godevp | ||
| 3 | +RUN mkdir -p $APP_DIR | ||
| 4 | +WORKDIR $APP_DIR/ | ||
| 5 | +COPY ./pkg pkg | ||
| 6 | +COPY ./conf conf | ||
| 7 | +COPY ./go.mod go.mod | ||
| 8 | +COPY ./main.go main.go | ||
| 9 | +RUN ["ln","-sf","/usr/share/zoneinfo/Asia/Shanghai","/etc/localtime"] | ||
| 10 | +ENV GO111MODULE on | ||
| 11 | +ENV GOPROXY https://goproxy.cn,direct | ||
| 12 | +RUN ["go","mod","tidy"] | ||
| 13 | +RUN ["go","build"] | ||
| 14 | +EXPOSE 8082 | ||
| 15 | +ENTRYPOINT ["./godevp"] |
deploy/k8s/dev/install.sh
0 → 100644
| 1 | +#!/bin/bash | ||
| 2 | +export PATH=/root/local/bin:$PATH | ||
| 3 | +kubectl -n mmm-suplus-dev get pods | grep -q mmmgodevp | ||
| 4 | +if [ "$?" == "1" ];then | ||
| 5 | + kubectl create -f /tmp/dev/godevp/godevp.yaml --record | ||
| 6 | + kubectl -n mmm-suplus-dev get svc | grep -q mmmgodevp | ||
| 7 | + if [ "$?" == "0" ];then | ||
| 8 | + echo "mmmgodevp service install success!" | ||
| 9 | + else | ||
| 10 | + echo "mmmgodevp service install fail!" | ||
| 11 | + fi | ||
| 12 | + kubectl -n mmm-suplus-dev get pods | grep -q mmmgodevp | ||
| 13 | + if [ "$?" == "0" ];then | ||
| 14 | + echo "mmmgodevp deployment install success!" | ||
| 15 | + else | ||
| 16 | + echo "mmmgodevp deployment install fail!" | ||
| 17 | + fi | ||
| 18 | +else | ||
| 19 | + kubectl delete -f /tmp/dev/godevp/godevp.yaml | ||
| 20 | + kubectl -n mmm-suplus-dev get svc | grep -q mmmgodevp | ||
| 21 | + while [ "$?" == "0" ] | ||
| 22 | + do | ||
| 23 | + kubectl -n mmm-suplus-dev get svc | grep -q mmmgodevp | ||
| 24 | + done | ||
| 25 | + kubectl -n mmm-suplus-dev get pods | grep -q mmmgodevp | ||
| 26 | + while [ "$?" == "0" ] | ||
| 27 | + do | ||
| 28 | + kubectl -n mmm-suplus-dev get pods | grep -q mmmgodevp | ||
| 29 | + done | ||
| 30 | + kubectl create -f /tmp/dev/godevp/godevp.yaml --record | ||
| 31 | + kubectl -n mmm-suplus-dev get svc | grep -q mmmgodevp | ||
| 32 | + if [ "$?" == "0" ];then | ||
| 33 | + echo "mmmgodevp service update success!" | ||
| 34 | + else | ||
| 35 | + echo "mmmgodevp service update fail!" | ||
| 36 | + fi | ||
| 37 | + kubectl -n mmm-suplus-dev get pods | grep -q mmmgodevp | ||
| 38 | + if [ "$?" == "0" ];then | ||
| 39 | + echo "mmmgodevp deployment update success!" | ||
| 40 | + else | ||
| 41 | + echo "mmmgodevp deployment update fail!" | ||
| 42 | + fi | ||
| 43 | +fi |
deploy/k8s/dev/partner.yaml
0 → 100644
| 1 | +apiVersion: v1 | ||
| 2 | +kind: Service | ||
| 3 | +metadata: | ||
| 4 | + name: mmmgodevp | ||
| 5 | + namespace: mmm-suplus-dev | ||
| 6 | + labels: | ||
| 7 | + k8s-app: mmmgodevp | ||
| 8 | +spec: | ||
| 9 | + ports: | ||
| 10 | + - name: "http" | ||
| 11 | + port: 80 | ||
| 12 | + targetPort: 8082 | ||
| 13 | + selector: | ||
| 14 | + k8s-app: mmmgodevp | ||
| 15 | +--- | ||
| 16 | +apiVersion: extensions/v1beta1 | ||
| 17 | +kind: Deployment | ||
| 18 | +metadata: | ||
| 19 | + name: mmmgodevp | ||
| 20 | + namespace: mmm-suplus-dev | ||
| 21 | + labels: | ||
| 22 | + k8s-app: mmmgodevp | ||
| 23 | +spec: | ||
| 24 | + replicas: 1 | ||
| 25 | + template: | ||
| 26 | + metadata: | ||
| 27 | + labels: | ||
| 28 | + k8s-app: mmmgodevp | ||
| 29 | + spec: | ||
| 30 | + affinity: | ||
| 31 | + nodeAffinity: | ||
| 32 | + preferredDuringSchedulingIgnoredDuringExecution: | ||
| 33 | + - preference: {} | ||
| 34 | + weight: 100 | ||
| 35 | + requiredDuringSchedulingIgnoredDuringExecution: | ||
| 36 | + nodeSelectorTerms: | ||
| 37 | + - matchExpressions: | ||
| 38 | + - key: kubernetes.io/hostname | ||
| 39 | + operator: In | ||
| 40 | + values: | ||
| 41 | + - cn-hangzhou.i-bp1djh1xn7taumbue1ze | ||
| 42 | + - cn-hangzhou.i-bp1djh1xn7taumbue1zd | ||
| 43 | + - cn-hangzhou.i-bp1euf5u1ph9kbhtndhb | ||
| 44 | + - cn-hangzhou.i-bp1hyp5oips9cdwxxgxy | ||
| 45 | + containers: | ||
| 46 | + - name: mmmgodevp | ||
| 47 | + image: 192.168.0.243:5000/mmm/godevp:dev | ||
| 48 | + imagePullPolicy: Always | ||
| 49 | + ports: | ||
| 50 | + - containerPort: 8082 | ||
| 51 | + volumeMounts: | ||
| 52 | + - mountPath: /opt/logs | ||
| 53 | + name: accesslogs | ||
| 54 | + env: | ||
| 55 | + - name: HTTP_PORT | ||
| 56 | + value: "8082" | ||
| 57 | + - name: POSTGRESQL_DB_NAME | ||
| 58 | + value: "godevp_dev" | ||
| 59 | + - name: POSTGRESQL_USER | ||
| 60 | + value: "postgres" | ||
| 61 | + - name: POSTGRESQL_PASSWORD | ||
| 62 | + value: "eagle1010" | ||
| 63 | + - name: POSTGRESQL_HOST | ||
| 64 | + value: "114.55.200.59" | ||
| 65 | + - name: POSTGRESQL_PORT | ||
| 66 | + value: "31543" | ||
| 67 | + - name: LOG_LEVEL | ||
| 68 | + value: "debug" | ||
| 69 | + - name: ERROR_BASE_CODE | ||
| 70 | + value: "1" | ||
| 71 | + - name: ERROR_BASE_CODE_MULTIPLE | ||
| 72 | + value: "1000" | ||
| 73 | + - name: DEFAULT_GUEST_COMPANY | ||
| 74 | + value: "10011" | ||
| 75 | + - name: ABILITY_SERVICE_HOST | ||
| 76 | + value: "https://suplus-worth-app-gateway-dev.fjmaimaimai.com" | ||
| 77 | + - name: MMM_OPEN_API_SERVICE_HOST | ||
| 78 | + value: "http://mmm-open-api-dev.fjmaimaimai.com" | ||
| 79 | + - name: UCENTER_SERVICE_HOST | ||
| 80 | + value: "https://suplus-ucenter-dev.fjmaimaimai.com" | ||
| 81 | + - name: BUSINESS_ADMIN_SERVICE_HOST | ||
| 82 | + valueFrom: | ||
| 83 | + configMapKeyRef: | ||
| 84 | + name: suplus-config | ||
| 85 | + key: service.businessadmin | ||
| 86 | + - name: REDIS_HOST | ||
| 87 | + valueFrom: | ||
| 88 | + configMapKeyRef: | ||
| 89 | + name: suplus-config | ||
| 90 | + key: redis.ip | ||
| 91 | + - name: REDIS_PORT | ||
| 92 | + valueFrom: | ||
| 93 | + configMapKeyRef: | ||
| 94 | + name: suplus-config | ||
| 95 | + key: redis.port | ||
| 96 | + - name: REDIS_AUTH | ||
| 97 | + value: "" | ||
| 98 | + volumes: | ||
| 99 | + - name: accesslogs | ||
| 100 | + emptyDir: {} |
deploy/k8s/prd/install.sh
0 → 100644
| 1 | +#!/bin/bash | ||
| 2 | +export PATH=/root/local/bin:$PATH | ||
| 3 | +kubectl -n mmm-suplus-prd get pods | grep -q partner | ||
| 4 | +if [ "$?" == "1" ];then | ||
| 5 | + kubectl create -f /tmp/prd/partner/partner.yaml --record | ||
| 6 | + kubectl -n mmm-suplus-prd get svc | grep -q partner | ||
| 7 | + if [ "$?" == "0" ];then | ||
| 8 | + echo "partner service install success!" | ||
| 9 | + else | ||
| 10 | + echo "partner service install fail!" | ||
| 11 | + fi | ||
| 12 | + kubectl -n mmm-suplus-prd get pods | grep -q partner | ||
| 13 | + if [ "$?" == "0" ];then | ||
| 14 | + echo "partner deployment install success!" | ||
| 15 | + else | ||
| 16 | + echo "partner deployment install fail!" | ||
| 17 | + fi | ||
| 18 | +else | ||
| 19 | + kubectl delete -f /tmp/prd/partner/partner.yaml | ||
| 20 | + kubectl -n mmm-suplus-prd get svc | grep -q partner | ||
| 21 | + while [ "$?" == "0" ] | ||
| 22 | + do | ||
| 23 | + kubectl -n mmm-suplus-prd get svc | grep -q partner | ||
| 24 | + done | ||
| 25 | + kubectl -n mmm-suplus-prd get pods | grep -q partner | ||
| 26 | + while [ "$?" == "0" ] | ||
| 27 | + do | ||
| 28 | + kubectl -n mmm-suplus-prd get pods | grep -q partner | ||
| 29 | + done | ||
| 30 | + kubectl create -f /tmp/prd/partner/partner.yaml --record | ||
| 31 | + kubectl -n mmm-suplus-prd get svc | grep -q partner | ||
| 32 | + if [ "$?" == "0" ];then | ||
| 33 | + echo "partner service update success!" | ||
| 34 | + else | ||
| 35 | + echo "partner service update fail!" | ||
| 36 | + fi | ||
| 37 | + kubectl -n mmm-suplus-prd get pods | grep -q partner | ||
| 38 | + if [ "$?" == "0" ];then | ||
| 39 | + echo "partner deployment update success!" | ||
| 40 | + else | ||
| 41 | + echo "partner deployment update fail!" | ||
| 42 | + fi | ||
| 43 | +fi |
deploy/k8s/prd/partner.yaml
0 → 100644
| 1 | +apiVersion: v1 | ||
| 2 | +kind: Service | ||
| 3 | +metadata: | ||
| 4 | + name: partner | ||
| 5 | + namespace: mmm-suplus-prd | ||
| 6 | + labels: | ||
| 7 | + k8s-app: partner | ||
| 8 | +spec: | ||
| 9 | + ports: | ||
| 10 | + - name: "http" | ||
| 11 | + port: 80 | ||
| 12 | + targetPort: 8082 | ||
| 13 | + selector: | ||
| 14 | + k8s-app: partner | ||
| 15 | +--- | ||
| 16 | +apiVersion: extensions/v1beta1 | ||
| 17 | +kind: Deployment | ||
| 18 | +metadata: | ||
| 19 | + name: partner | ||
| 20 | + namespace: mmm-suplus-prd | ||
| 21 | + labels: | ||
| 22 | + k8s-app: partner | ||
| 23 | +spec: | ||
| 24 | + replicas: 1 | ||
| 25 | + template: | ||
| 26 | + metadata: | ||
| 27 | + labels: | ||
| 28 | + k8s-app: partner | ||
| 29 | + spec: | ||
| 30 | + affinity: | ||
| 31 | + nodeAffinity: | ||
| 32 | + preferredDuringSchedulingIgnoredDuringExecution: | ||
| 33 | + - preference: {} | ||
| 34 | + weight: 100 | ||
| 35 | + requiredDuringSchedulingIgnoredDuringExecution: | ||
| 36 | + nodeSelectorTerms: | ||
| 37 | + - matchExpressions: | ||
| 38 | + - key: kubernetes.io/hostname | ||
| 39 | + operator: In | ||
| 40 | + values: | ||
| 41 | + - cn-hangzhou.i-bp1djh1xn7taumbue1ze | ||
| 42 | + - cn-hangzhou.i-bp1djh1xn7taumbue1zd | ||
| 43 | + - cn-hangzhou.i-bp1euf5u1ph9kbhtndhb | ||
| 44 | + - cn-hangzhou.i-bp1hyp5oips9cdwxxgxy | ||
| 45 | + containers: | ||
| 46 | + - name: partner | ||
| 47 | + image: 192.168.0.243:5000/mmm/partner:master | ||
| 48 | + imagePullPolicy: Always | ||
| 49 | + ports: | ||
| 50 | + - containerPort: 8082 | ||
| 51 | + volumeMounts: | ||
| 52 | + - mountPath: /opt/logs | ||
| 53 | + name: accesslogs | ||
| 54 | + env: | ||
| 55 | + - name: HTTP_PORT | ||
| 56 | + value: "8082" | ||
| 57 | + - name: POSTGRESQL_DB_NAME | ||
| 58 | + value: "partner" | ||
| 59 | + - name: POSTGRESQL_USER | ||
| 60 | + value: "postgres" | ||
| 61 | + - name: POSTGRESQL_PASSWORD | ||
| 62 | + value: "postgres_55_online" | ||
| 63 | + - name: POSTGRESQL_HOST | ||
| 64 | + value: "112.124.115.55" | ||
| 65 | + - name: POSTGRESQL_PORT | ||
| 66 | + value: "15432" | ||
| 67 | + - name: LOG_LEVEL | ||
| 68 | + value: "debug" | ||
| 69 | + - name: ERROR_BASE_CODE | ||
| 70 | + value: "1" | ||
| 71 | + - name: ERROR_BASE_CODE_MULTIPLE | ||
| 72 | + value: "1000" | ||
| 73 | + - name: DEFAULT_GUEST_COMPANY | ||
| 74 | + value: "12" | ||
| 75 | + - name: ABILITY_SERVICE_HOST | ||
| 76 | + value: "https://ability.fjmaimaimai.com" | ||
| 77 | + - name: MMM_OPEN_API_SERVICE_HOST | ||
| 78 | + value: "https://public-interface.fjmaimaimai.com/openapi" | ||
| 79 | + - name: UCENTER_SERVICE_HOST | ||
| 80 | + value: "https://suplus-ucenter-prd.fjmaimaimai.com" | ||
| 81 | + - name: BUSINESS_ADMIN_SERVICE_HOST | ||
| 82 | + valueFrom: | ||
| 83 | + configMapKeyRef: | ||
| 84 | + name: suplus-config | ||
| 85 | + key: service.businessadmin | ||
| 86 | + - name: REDIS_HOST | ||
| 87 | + valueFrom: | ||
| 88 | + configMapKeyRef: | ||
| 89 | + name: suplus-config | ||
| 90 | + key: redis.ip | ||
| 91 | + - name: REDIS_PORT | ||
| 92 | + valueFrom: | ||
| 93 | + configMapKeyRef: | ||
| 94 | + name: suplus-config | ||
| 95 | + key: redis.port | ||
| 96 | + - name: REDIS_AUTH | ||
| 97 | + value: "" | ||
| 98 | + volumes: | ||
| 99 | + - name: accesslogs | ||
| 100 | + emptyDir: {} |
deploy/k8s/test/install.sh
0 → 100644
| 1 | +#!/bin/bash | ||
| 2 | +export PATH=/root/local/bin:$PATH | ||
| 3 | +kubectl -n mmm-suplus-test get pods | grep -q mmmpartner | ||
| 4 | +if [ "$?" == "1" ];then | ||
| 5 | + kubectl create -f /tmp/test/partner/partner.yaml --record | ||
| 6 | + kubectl -n mmm-suplus-test get svc | grep -q mmmpartner | ||
| 7 | + if [ "$?" == "0" ];then | ||
| 8 | + echo "mmmpartner service install success!" | ||
| 9 | + else | ||
| 10 | + echo "mmmpartner service install fail!" | ||
| 11 | + fi | ||
| 12 | + kubectl -n mmm-suplus-test get pods | grep -q mmmpartner | ||
| 13 | + if [ "$?" == "0" ];then | ||
| 14 | + echo "mmmpartner deployment install success!" | ||
| 15 | + else | ||
| 16 | + echo "mmmpartner deployment install fail!" | ||
| 17 | + fi | ||
| 18 | +else | ||
| 19 | + kubectl delete -f /tmp/test/partner/partner.yaml | ||
| 20 | + kubectl -n mmm-suplus-test get svc | grep -q mmmpartner | ||
| 21 | + while [ "$?" == "0" ] | ||
| 22 | + do | ||
| 23 | + kubectl -n mmm-suplus-test get svc | grep -q mmmpartner | ||
| 24 | + done | ||
| 25 | + kubectl -n mmm-suplus-test get pods | grep -q mmmpartner | ||
| 26 | + while [ "$?" == "0" ] | ||
| 27 | + do | ||
| 28 | + kubectl -n mmm-suplus-test get pods | grep -q mmmpartner | ||
| 29 | + done | ||
| 30 | + kubectl create -f /tmp/test/partner/partner.yaml --record | ||
| 31 | + kubectl -n mmm-suplus-test get svc | grep -q mmmpartner | ||
| 32 | + if [ "$?" == "0" ];then | ||
| 33 | + echo "mmmpartner service update success!" | ||
| 34 | + else | ||
| 35 | + echo "mmmpartner service update fail!" | ||
| 36 | + fi | ||
| 37 | + kubectl -n mmm-suplus-test get pods | grep -q mmmpartner | ||
| 38 | + if [ "$?" == "0" ];then | ||
| 39 | + echo "mmmpartner deployment update success!" | ||
| 40 | + else | ||
| 41 | + echo "mmmpartner deployment update fail!" | ||
| 42 | + fi | ||
| 43 | +fi |
deploy/k8s/test/partner.yaml
0 → 100644
| 1 | +apiVersion: v1 | ||
| 2 | +kind: Service | ||
| 3 | +metadata: | ||
| 4 | + name: mmmpartner | ||
| 5 | + namespace: mmm-suplus-test | ||
| 6 | + labels: | ||
| 7 | + k8s-app: mmmpartner | ||
| 8 | +spec: | ||
| 9 | + ports: | ||
| 10 | + - name: "http" | ||
| 11 | + port: 80 | ||
| 12 | + targetPort: 8082 | ||
| 13 | + selector: | ||
| 14 | + k8s-app: mmmpartner | ||
| 15 | +--- | ||
| 16 | +apiVersion: extensions/v1beta1 | ||
| 17 | +kind: Deployment | ||
| 18 | +metadata: | ||
| 19 | + name: mmmpartner | ||
| 20 | + namespace: mmm-suplus-test | ||
| 21 | + labels: | ||
| 22 | + k8s-app: mmmpartner | ||
| 23 | +spec: | ||
| 24 | + replicas: 1 | ||
| 25 | + template: | ||
| 26 | + metadata: | ||
| 27 | + labels: | ||
| 28 | + k8s-app: mmmpartner | ||
| 29 | + spec: | ||
| 30 | + affinity: | ||
| 31 | + nodeAffinity: | ||
| 32 | + preferredDuringSchedulingIgnoredDuringExecution: | ||
| 33 | + - preference: {} | ||
| 34 | + weight: 100 | ||
| 35 | + requiredDuringSchedulingIgnoredDuringExecution: | ||
| 36 | + nodeSelectorTerms: | ||
| 37 | + - matchExpressions: | ||
| 38 | + - key: kubernetes.io/hostname | ||
| 39 | + operator: In | ||
| 40 | + values: | ||
| 41 | + - cn-hangzhou.i-bp1djh1xn7taumbue1ze | ||
| 42 | + - cn-hangzhou.i-bp1djh1xn7taumbue1zd | ||
| 43 | + - cn-hangzhou.i-bp1euf5u1ph9kbhtndhb | ||
| 44 | + - cn-hangzhou.i-bp1hyp5oips9cdwxxgxy | ||
| 45 | + containers: | ||
| 46 | + - name: mmmpartner | ||
| 47 | + image: 192.168.0.243:5000/mmm/partner:dev | ||
| 48 | + imagePullPolicy: Always | ||
| 49 | + ports: | ||
| 50 | + - containerPort: 8082 | ||
| 51 | + volumeMounts: | ||
| 52 | + - mountPath: /opt/logs | ||
| 53 | + name: accesslogs | ||
| 54 | + env: | ||
| 55 | + - name: HTTP_PORT | ||
| 56 | + value: "8082" | ||
| 57 | + - name: POSTGRESQL_DB_NAME | ||
| 58 | + value: "partner_test" | ||
| 59 | + - name: POSTGRESQL_USER | ||
| 60 | + value: "postgres" | ||
| 61 | + - name: POSTGRESQL_PASSWORD | ||
| 62 | + value: "eagle1010" | ||
| 63 | + - name: POSTGRESQL_HOST | ||
| 64 | + value: "114.55.200.59" | ||
| 65 | + - name: POSTGRESQL_PORT | ||
| 66 | + value: "31543" | ||
| 67 | + - name: LOG_LEVEL | ||
| 68 | + value: "debug" | ||
| 69 | + - name: ERROR_BASE_CODE | ||
| 70 | + value: "1" | ||
| 71 | + - name: ERROR_BASE_CODE_MULTIPLE | ||
| 72 | + value: "1000" | ||
| 73 | + - name: DEFAULT_GUEST_COMPANY | ||
| 74 | + value: "358" | ||
| 75 | + - name: ABILITY_SERVICE_HOST | ||
| 76 | + value: "https://suplus-worth-app-gateway-dev.fjmaimaimai.com" | ||
| 77 | + - name: MMM_OPEN_API_SERVICE_HOST | ||
| 78 | + value: "http://mmm-open-api-dev.fjmaimaimai.com" | ||
| 79 | + - name: UCENTER_SERVICE_HOST | ||
| 80 | + value: "https://suplus-ucenter-test.fjmaimaimai.com" | ||
| 81 | + - name: BUSINESS_ADMIN_SERVICE_HOST | ||
| 82 | + valueFrom: | ||
| 83 | + configMapKeyRef: | ||
| 84 | + name: suplus-config | ||
| 85 | + key: service.businessadmin | ||
| 86 | + - name: REDIS_HOST | ||
| 87 | + valueFrom: | ||
| 88 | + configMapKeyRef: | ||
| 89 | + name: suplus-config | ||
| 90 | + key: redis.ip | ||
| 91 | + - name: REDIS_PORT | ||
| 92 | + valueFrom: | ||
| 93 | + configMapKeyRef: | ||
| 94 | + name: suplus-config | ||
| 95 | + key: redis.port | ||
| 96 | + - name: REDIS_AUTH | ||
| 97 | + value: "" | ||
| 98 | + volumes: | ||
| 99 | + - name: accesslogs | ||
| 100 | + emptyDir: {} |
| @@ -7,9 +7,9 @@ require ( | @@ -7,9 +7,9 @@ require ( | ||
| 7 | github.com/astaxie/beego v1.12.2 | 7 | github.com/astaxie/beego v1.12.2 |
| 8 | github.com/dgrijalva/jwt-go v3.2.0+incompatible | 8 | github.com/dgrijalva/jwt-go v3.2.0+incompatible |
| 9 | github.com/go-pg/pg/v10 v10.0.0-beta.2 | 9 | github.com/go-pg/pg/v10 v10.0.0-beta.2 |
| 10 | - github.com/tiptok/gocomm v1.0.2 | ||
| 11 | - github.com/tal-tech/go-zero v1.0.11 | 10 | + github.com/tiptok/gocomm v1.0.3 |
| 11 | + //github.com/tal-tech/go-zero v1.0.11 | ||
| 12 | github.com/linmadan/egglib-go v0.0.0-20191217144343-ca4539f95bf9 | 12 | github.com/linmadan/egglib-go v0.0.0-20191217144343-ca4539f95bf9 |
| 13 | ) | 13 | ) |
| 14 | 14 | ||
| 15 | -replace github.com/tiptok/gocomm v1.0.2 => F:\go\src\learn_project\gocomm | 15 | +//replace github.com/tiptok/gocomm v1.0.2 => F:\go\src\learn_project\gocomm |
| @@ -49,11 +49,43 @@ func (svr *CacheService) CacheUserAccess(userId int64) func() (interface{}, erro | @@ -49,11 +49,43 @@ func (svr *CacheService) CacheUserAccess(userId int64) func() (interface{}, erro | ||
| 49 | return accesses, nil | 49 | return accesses, nil |
| 50 | } | 50 | } |
| 51 | } | 51 | } |
| 52 | +func (svr *CacheService) ValidUser(userId int64) (isAdmin bool, err error) { | ||
| 53 | + var ( | ||
| 54 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 55 | + UserRepository, _ = factory.CreateUserRepository(transactionContext) | ||
| 56 | + ) | ||
| 57 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 58 | + log.Error(err) | ||
| 59 | + return isAdmin, err | ||
| 60 | + } | ||
| 61 | + defer func() { | ||
| 62 | + transactionContext.RollbackTransaction() | ||
| 63 | + }() | ||
| 64 | + | ||
| 65 | + var user *domain.Users | ||
| 66 | + if user, err = UserRepository.FindOne(map[string]interface{}{"id": userId}); err != nil { | ||
| 67 | + return isAdmin, err | ||
| 68 | + } | ||
| 69 | + if user.AdminType == domain.UserAdmin { | ||
| 70 | + isAdmin = true | ||
| 71 | + } | ||
| 72 | + err = transactionContext.CommitTransaction() | ||
| 73 | + return isAdmin, nil | ||
| 74 | +} | ||
| 52 | func (svr *CacheService) ValidUserAccess(userId int64, object string, method string) (result bool, err error) { | 75 | func (svr *CacheService) ValidUserAccess(userId int64, object string, method string) (result bool, err error) { |
| 53 | var userAccess []*domain.Access | 76 | var userAccess []*domain.Access |
| 77 | + var isAdmin bool | ||
| 54 | defer func() { | 78 | defer func() { |
| 55 | log.Info(fmt.Sprintf("ValidUserAccess user:%v object:%v method:%v result:%v", userId, object, method, result)) | 79 | log.Info(fmt.Sprintf("ValidUserAccess user:%v object:%v method:%v result:%v", userId, object, method, result)) |
| 56 | }() | 80 | }() |
| 81 | + if isAdmin, err = svr.ValidUser(userId); err != nil { | ||
| 82 | + return | ||
| 83 | + } | ||
| 84 | + //管理员有所有权限 | ||
| 85 | + if isAdmin { | ||
| 86 | + result = true | ||
| 87 | + return | ||
| 88 | + } | ||
| 57 | cache.GetObject(UserRoleAccessCacheKey(userId), &userAccess, 3600, svr.CacheUserAccess(userId)) | 89 | cache.GetObject(UserRoleAccessCacheKey(userId), &userAccess, 3600, svr.CacheUserAccess(userId)) |
| 58 | for i := range userAccess { | 90 | for i := range userAccess { |
| 59 | if KeyMatch3(object, userAccess[i].Object) && ActionEqual(userAccess[i].Action, method) { | 91 | if KeyMatch3(object, userAccess[i].Object) && ActionEqual(userAccess[i].Action, method) { |
| @@ -5,6 +5,7 @@ import ( | @@ -5,6 +5,7 @@ import ( | ||
| 5 | "github.com/tiptok/gocomm/pkg/log" | 5 | "github.com/tiptok/gocomm/pkg/log" |
| 6 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" | 6 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" |
| 7 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | 7 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" |
| 8 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/utils" | ||
| 8 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | 9 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" |
| 9 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/project_module" | 10 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/project_module" |
| 10 | "time" | 11 | "time" |
| @@ -82,7 +83,12 @@ func (svr *ProjectModuleService) UpdateProjectModule(header *protocol.RequestHea | @@ -82,7 +83,12 @@ func (svr *ProjectModuleService) UpdateProjectModule(header *protocol.RequestHea | ||
| 82 | 83 | ||
| 83 | var ProjectModuleRepository, _ = factory.CreateProjectModuleRepository(transactionContext) | 84 | var ProjectModuleRepository, _ = factory.CreateProjectModuleRepository(transactionContext) |
| 84 | var projectModule *domain.ProjectModule | 85 | var projectModule *domain.ProjectModule |
| 85 | - if projectModule, err = ProjectModuleRepository.FindOne(common.ObjectToMap(request)); err != nil { | 86 | + if projectModule, err = ProjectModuleRepository.FindOne(map[string]interface{}{"id": request.Id}); err != nil { |
| 87 | + err = protocol.NewCustomMessage(1, "模板项目不存在") | ||
| 88 | + return | ||
| 89 | + } | ||
| 90 | + if _, err = ProjectModuleRepository.FindOne(map[string]interface{}{"projectKey": request.ProjectKey}); err == nil { | ||
| 91 | + err = protocol.NewCustomMessage(1, "项目键值已存在:"+request.ProjectKey) | ||
| 86 | return | 92 | return |
| 87 | } | 93 | } |
| 88 | if err = projectModule.Update(common.ObjectToMap(request)); err != nil { | 94 | if err = projectModule.Update(common.ObjectToMap(request)); err != nil { |
| @@ -118,7 +124,7 @@ func (svr *ProjectModuleService) GetProjectModule(header *protocol.RequestHeader | @@ -118,7 +124,7 @@ func (svr *ProjectModuleService) GetProjectModule(header *protocol.RequestHeader | ||
| 118 | err = protocol.NewCustomMessage(1, "模板项目不存在") | 124 | err = protocol.NewCustomMessage(1, "模板项目不存在") |
| 119 | return | 125 | return |
| 120 | } | 126 | } |
| 121 | - rsp = projectModule | 127 | + rsp = utils.LoadCustomField(projectModule, "Id", "ProjectName", "ProjectKey", "Description", "Status", "CreateTime", "UpdateTime") |
| 122 | err = transactionContext.CommitTransaction() | 128 | err = transactionContext.CommitTransaction() |
| 123 | return | 129 | return |
| 124 | } | 130 | } |
| @@ -130,6 +136,7 @@ func (svr *ProjectModuleService) DeleteProjectModule(header *protocol.RequestHea | @@ -130,6 +136,7 @@ func (svr *ProjectModuleService) DeleteProjectModule(header *protocol.RequestHea | ||
| 130 | rsp = &protocolx.DeleteProjectModuleResponse{} | 136 | rsp = &protocolx.DeleteProjectModuleResponse{} |
| 131 | if err = request.ValidateCommand(); err != nil { | 137 | if err = request.ValidateCommand(); err != nil { |
| 132 | err = protocol.NewCustomMessage(2, err.Error()) | 138 | err = protocol.NewCustomMessage(2, err.Error()) |
| 139 | + return | ||
| 133 | } | 140 | } |
| 134 | if err = transactionContext.StartTransaction(); err != nil { | 141 | if err = transactionContext.StartTransaction(); err != nil { |
| 135 | log.Error(err) | 142 | log.Error(err) |
| @@ -141,10 +148,13 @@ func (svr *ProjectModuleService) DeleteProjectModule(header *protocol.RequestHea | @@ -141,10 +148,13 @@ func (svr *ProjectModuleService) DeleteProjectModule(header *protocol.RequestHea | ||
| 141 | 148 | ||
| 142 | var ProjectModuleRepository, _ = factory.CreateProjectModuleRepository(transactionContext) | 149 | var ProjectModuleRepository, _ = factory.CreateProjectModuleRepository(transactionContext) |
| 143 | var projectModule *domain.ProjectModule | 150 | var projectModule *domain.ProjectModule |
| 144 | - if projectModule, err = ProjectModuleRepository.FindOne(common.ObjectToMap(request)); err != nil { | 151 | + if projectModule, err = ProjectModuleRepository.FindOne(map[string]interface{}{"id": request.Id}); err != nil { |
| 145 | return | 152 | return |
| 146 | } | 153 | } |
| 147 | - if projectModule, err = ProjectModuleRepository.Remove(projectModule); err != nil { | 154 | + if err = projectModule.Update(map[string]interface{}{"status": 2}); err != nil { |
| 155 | + return | ||
| 156 | + } | ||
| 157 | + if projectModule, err = ProjectModuleRepository.Save(projectModule); err != nil { | ||
| 148 | return | 158 | return |
| 149 | } | 159 | } |
| 150 | rsp = projectModule | 160 | rsp = projectModule |
| @@ -156,7 +166,7 @@ func (svr *ProjectModuleService) ListProjectModule(header *protocol.RequestHeade | @@ -156,7 +166,7 @@ func (svr *ProjectModuleService) ListProjectModule(header *protocol.RequestHeade | ||
| 156 | var ( | 166 | var ( |
| 157 | transactionContext, _ = factory.CreateTransactionContext(nil) | 167 | transactionContext, _ = factory.CreateTransactionContext(nil) |
| 158 | ) | 168 | ) |
| 159 | - rsp = &protocolx.ListProjectModuleResponse{} | 169 | + //listProjectModuleResponse := &protocolx.ListProjectModuleResponse{} |
| 160 | if err = request.ValidateCommand(); err != nil { | 170 | if err = request.ValidateCommand(); err != nil { |
| 161 | err = protocol.NewCustomMessage(2, err.Error()) | 171 | err = protocol.NewCustomMessage(2, err.Error()) |
| 162 | } | 172 | } |
| @@ -171,12 +181,13 @@ func (svr *ProjectModuleService) ListProjectModule(header *protocol.RequestHeade | @@ -171,12 +181,13 @@ func (svr *ProjectModuleService) ListProjectModule(header *protocol.RequestHeade | ||
| 171 | var ProjectModuleRepository, _ = factory.CreateProjectModuleRepository(transactionContext) | 181 | var ProjectModuleRepository, _ = factory.CreateProjectModuleRepository(transactionContext) |
| 172 | var projectModule []*domain.ProjectModule | 182 | var projectModule []*domain.ProjectModule |
| 173 | var total int64 | 183 | var total int64 |
| 174 | - if total, projectModule, err = ProjectModuleRepository.Find(common.ObjectToMap(request)); err != nil { | 184 | + if total, projectModule, err = ProjectModuleRepository.Find(map[string]interface{}{"offset": (request.PageNumber - 1) * request.PageSize, "limit": request.PageSize, "sortByCreateTime": "DESC", "status": domain.StatusNormal}); err != nil { |
| 175 | return | 185 | return |
| 176 | } | 186 | } |
| 177 | rsp = map[string]interface{}{ | 187 | rsp = map[string]interface{}{ |
| 178 | - "total": total, | ||
| 179 | - "list": projectModule, | 188 | + "totalRow": total, |
| 189 | + "pageNumber": request.PageNumber, | ||
| 190 | + "list": utils.LoadCustomField(projectModule, "Id", "ProjectName", "ProjectKey", "Description", "Status", "CreateTime", "UpdateTime"), //listProjectModuleResponse.LoadDto(projectModule), | ||
| 180 | } | 191 | } |
| 181 | err = transactionContext.CommitTransaction() | 192 | err = transactionContext.CommitTransaction() |
| 182 | return | 193 | return |
| @@ -5,6 +5,8 @@ import ( | @@ -5,6 +5,8 @@ import ( | ||
| 5 | "github.com/tiptok/gocomm/pkg/log" | 5 | "github.com/tiptok/gocomm/pkg/log" |
| 6 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" | 6 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" |
| 7 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | 7 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" |
| 8 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/dao" | ||
| 9 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/utils" | ||
| 8 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | 10 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" |
| 9 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/project_module_files" | 11 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/project_module_files" |
| 10 | "path/filepath" | 12 | "path/filepath" |
| @@ -37,7 +39,7 @@ func (svr *ProjectModuleFilesService) CreateProjectModuleFiles(header *protocol. | @@ -37,7 +39,7 @@ func (svr *ProjectModuleFilesService) CreateProjectModuleFiles(header *protocol. | ||
| 37 | ParentId: request.ParentId, | 39 | ParentId: request.ParentId, |
| 38 | FileType: request.FileType, | 40 | FileType: request.FileType, |
| 39 | FileName: request.FileName, | 41 | FileName: request.FileName, |
| 40 | - FileKey: request.FileKey, | 42 | + FileKey: request.FileName, |
| 41 | CodeBlock: request.CodeBlock, | 43 | CodeBlock: request.CodeBlock, |
| 42 | Remark: request.Remark, | 44 | Remark: request.Remark, |
| 43 | CreateTime: time.Now(), | 45 | CreateTime: time.Now(), |
| @@ -49,6 +51,7 @@ func (svr *ProjectModuleFilesService) CreateProjectModuleFiles(header *protocol. | @@ -49,6 +51,7 @@ func (svr *ProjectModuleFilesService) CreateProjectModuleFiles(header *protocol. | ||
| 49 | err = protocol.NewCustomMessage(1, "项目版本不存在") | 51 | err = protocol.NewCustomMessage(1, "项目版本不存在") |
| 50 | return | 52 | return |
| 51 | } | 53 | } |
| 54 | + // TODO:判断是否重名 | ||
| 52 | var ProjectModuleFilesRepository, _ = factory.CreateProjectModuleFilesRepository(transactionContext) | 55 | var ProjectModuleFilesRepository, _ = factory.CreateProjectModuleFilesRepository(transactionContext) |
| 53 | if rsp, err = svr.save(newProjectModuleFiles, ProjectModuleFilesRepository); err != nil { | 56 | if rsp, err = svr.save(newProjectModuleFiles, ProjectModuleFilesRepository); err != nil { |
| 54 | return | 57 | return |
| @@ -59,11 +62,13 @@ func (svr *ProjectModuleFilesService) CreateProjectModuleFiles(header *protocol. | @@ -59,11 +62,13 @@ func (svr *ProjectModuleFilesService) CreateProjectModuleFiles(header *protocol. | ||
| 59 | 62 | ||
| 60 | func (svr *ProjectModuleFilesService) UpdateProjectModuleFiles(header *protocol.RequestHeader, request *protocolx.UpdateProjectModuleFilesRequest) (rsp interface{}, err error) { | 63 | func (svr *ProjectModuleFilesService) UpdateProjectModuleFiles(header *protocol.RequestHeader, request *protocolx.UpdateProjectModuleFilesRequest) (rsp interface{}, err error) { |
| 61 | var ( | 64 | var ( |
| 62 | - transactionContext, _ = factory.CreateTransactionContext(nil) | 65 | + transactionContext, _ = factory.CreateTransactionContext(nil) |
| 66 | + ProjectModuleFilesDao, _ = dao.NewProjectModuleFilesDao(transactionContext) | ||
| 63 | ) | 67 | ) |
| 64 | rsp = &protocolx.UpdateProjectModuleFilesResponse{} | 68 | rsp = &protocolx.UpdateProjectModuleFilesResponse{} |
| 65 | if err = request.ValidateCommand(); err != nil { | 69 | if err = request.ValidateCommand(); err != nil { |
| 66 | err = protocol.NewCustomMessage(2, err.Error()) | 70 | err = protocol.NewCustomMessage(2, err.Error()) |
| 71 | + return | ||
| 67 | } | 72 | } |
| 68 | if err = transactionContext.StartTransaction(); err != nil { | 73 | if err = transactionContext.StartTransaction(); err != nil { |
| 69 | log.Error(err) | 74 | log.Error(err) |
| @@ -75,15 +80,36 @@ func (svr *ProjectModuleFilesService) UpdateProjectModuleFiles(header *protocol. | @@ -75,15 +80,36 @@ func (svr *ProjectModuleFilesService) UpdateProjectModuleFiles(header *protocol. | ||
| 75 | 80 | ||
| 76 | var ProjectModuleFilesRepository, _ = factory.CreateProjectModuleFilesRepository(transactionContext) | 81 | var ProjectModuleFilesRepository, _ = factory.CreateProjectModuleFilesRepository(transactionContext) |
| 77 | var projectModuleFiles *domain.ProjectModuleFiles | 82 | var projectModuleFiles *domain.ProjectModuleFiles |
| 78 | - if projectModuleFiles, err = ProjectModuleFilesRepository.FindOne(common.ObjectToMap(request)); err != nil { | 83 | + var oldFileName string |
| 84 | + if projectModuleFiles, err = ProjectModuleFilesRepository.FindOne(map[string]interface{}{"id": request.Id}); err != nil { | ||
| 79 | return | 85 | return |
| 80 | } | 86 | } |
| 87 | + oldFileName = projectModuleFiles.FileName | ||
| 81 | if err = projectModuleFiles.Update(common.ObjectToMap(request)); err != nil { | 88 | if err = projectModuleFiles.Update(common.ObjectToMap(request)); err != nil { |
| 82 | return | 89 | return |
| 83 | } | 90 | } |
| 84 | if projectModuleFiles, err = ProjectModuleFilesRepository.Save(projectModuleFiles); err != nil { | 91 | if projectModuleFiles, err = ProjectModuleFilesRepository.Save(projectModuleFiles); err != nil { |
| 85 | return | 92 | return |
| 86 | } | 93 | } |
| 94 | + | ||
| 95 | + // 更新文件名称,修改子节点跟本身的路径 1.文件夹 2.文件 | ||
| 96 | + if request.FileName != oldFileName { | ||
| 97 | + // TODO:判断是否重名 | ||
| 98 | + var oldPath = projectModuleFiles.Path | ||
| 99 | + var newPath string | ||
| 100 | + if index := strings.LastIndex(projectModuleFiles.Path, oldFileName); index > 0 { | ||
| 101 | + newPath = projectModuleFiles.Path[:index] + request.FileName | ||
| 102 | + projectModuleFiles.Path = newPath | ||
| 103 | + } | ||
| 104 | + if projectModuleFiles.FileType == domain.Dir { | ||
| 105 | + if err = ProjectModuleFilesDao.UpdateFilesPath(projectModuleFiles.ProjectModuleId, projectModuleFiles.ProjectModuleVersionId, oldPath, newPath); err != nil { | ||
| 106 | + return | ||
| 107 | + } | ||
| 108 | + } | ||
| 109 | + } | ||
| 110 | + // TODO:移动文件文件夹时pid变更,底下路径需要都变掉 | ||
| 111 | + | ||
| 112 | + // TODO:变更记录 | ||
| 87 | err = transactionContext.CommitTransaction() | 113 | err = transactionContext.CommitTransaction() |
| 88 | return | 114 | return |
| 89 | } | 115 | } |
| @@ -132,9 +158,16 @@ func (svr *ProjectModuleFilesService) DeleteProjectModuleFiles(header *protocol. | @@ -132,9 +158,16 @@ func (svr *ProjectModuleFilesService) DeleteProjectModuleFiles(header *protocol. | ||
| 132 | 158 | ||
| 133 | var ProjectModuleFilesRepository, _ = factory.CreateProjectModuleFilesRepository(transactionContext) | 159 | var ProjectModuleFilesRepository, _ = factory.CreateProjectModuleFilesRepository(transactionContext) |
| 134 | var projectModuleFiles *domain.ProjectModuleFiles | 160 | var projectModuleFiles *domain.ProjectModuleFiles |
| 135 | - if projectModuleFiles, err = ProjectModuleFilesRepository.FindOne(common.ObjectToMap(request)); err != nil { | 161 | + if projectModuleFiles, err = ProjectModuleFilesRepository.FindOne(map[string]interface{}{"id": request.Id}); err != nil { |
| 162 | + err = protocol.NewCustomMessage(1, "文件不存在") | ||
| 136 | return | 163 | return |
| 137 | } | 164 | } |
| 165 | + if projectModuleFiles.FileType == domain.Dir { | ||
| 166 | + if count, _, e := ProjectModuleFilesRepository.Find(map[string]interface{}{"parentId": request.Id}); e == nil && count > 0 { | ||
| 167 | + err = protocol.NewCustomMessage(1, "文件夹不为空") | ||
| 168 | + return | ||
| 169 | + } | ||
| 170 | + } | ||
| 138 | if projectModuleFiles, err = ProjectModuleFilesRepository.Remove(projectModuleFiles); err != nil { | 171 | if projectModuleFiles, err = ProjectModuleFilesRepository.Remove(projectModuleFiles); err != nil { |
| 139 | return | 172 | return |
| 140 | } | 173 | } |
| @@ -168,7 +201,13 @@ func (svr *ProjectModuleFilesService) ListProjectModuleFiles(header *protocol.Re | @@ -168,7 +201,13 @@ func (svr *ProjectModuleFilesService) ListProjectModuleFiles(header *protocol.Re | ||
| 168 | } | 201 | } |
| 169 | rsp = map[string]interface{}{ | 202 | rsp = map[string]interface{}{ |
| 170 | "total": total, | 203 | "total": total, |
| 171 | - "list": projectModuleFiles, | 204 | + "list": utils.LoadCustomField(projectModuleFiles, "Id", "FileType", "FileName", "ParentId", "Path", "CodeBlock"), |
| 205 | + } | ||
| 206 | + if request.StructType == "tree" { | ||
| 207 | + rsp = map[string]interface{}{ | ||
| 208 | + "total": total, | ||
| 209 | + "list": svr.traverseModuleFiles(projectModuleFiles), | ||
| 210 | + } | ||
| 172 | } | 211 | } |
| 173 | err = transactionContext.CommitTransaction() | 212 | err = transactionContext.CommitTransaction() |
| 174 | return | 213 | return |
| @@ -298,6 +337,30 @@ func (svr *ProjectModuleFilesService) mkdirF(fileDir string, mid, vid, pid int64 | @@ -298,6 +337,30 @@ func (svr *ProjectModuleFilesService) mkdirF(fileDir string, mid, vid, pid int64 | ||
| 298 | return | 337 | return |
| 299 | } | 338 | } |
| 300 | 339 | ||
| 340 | +func (svr *ProjectModuleFilesService) traverseModuleFiles(files []*domain.ProjectModuleFiles) interface{} { | ||
| 341 | + | ||
| 342 | + retSlice := make([]*protocolx.ModuleFiles, 0) | ||
| 343 | + | ||
| 344 | + for i := range files { | ||
| 345 | + if files[i].ParentId == 0 { | ||
| 346 | + retSlice = append(retSlice, &protocolx.ModuleFiles{ModuleFile: protocolx.NewModuleFile(files[i]), List: make([]*protocolx.ModuleFiles, 0)}) | ||
| 347 | + continue | ||
| 348 | + } | ||
| 349 | + traverse(retSlice, files[i]) | ||
| 350 | + } | ||
| 351 | + return retSlice | ||
| 352 | +} | ||
| 353 | + | ||
| 354 | +func traverse(list []*protocolx.ModuleFiles, file *domain.ProjectModuleFiles) { | ||
| 355 | + for i := range list { | ||
| 356 | + if list[i].Id == file.ParentId { | ||
| 357 | + list[i].List = append(list[i].List, &protocolx.ModuleFiles{ModuleFile: protocolx.NewModuleFile(file), List: make([]*protocolx.ModuleFiles, 0)}) | ||
| 358 | + return | ||
| 359 | + } | ||
| 360 | + traverse(list[i].List, file) | ||
| 361 | + } | ||
| 362 | + return | ||
| 363 | +} | ||
| 301 | func NewProjectModuleFilesService(options map[string]interface{}) *ProjectModuleFilesService { | 364 | func NewProjectModuleFilesService(options map[string]interface{}) *ProjectModuleFilesService { |
| 302 | svr := &ProjectModuleFilesService{} | 365 | svr := &ProjectModuleFilesService{} |
| 303 | return svr | 366 | return svr |
| @@ -7,6 +7,7 @@ import ( | @@ -7,6 +7,7 @@ import ( | ||
| 7 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" | 7 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" |
| 8 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | 8 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" |
| 9 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/dao" | 9 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/dao" |
| 10 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/utils" | ||
| 10 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | 11 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" |
| 11 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/project_module_version" | 12 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/project_module_version" |
| 12 | "strings" | 13 | "strings" |
| @@ -194,8 +195,8 @@ func (svr *ProjectModuleVersionService) ListProjectModuleVersion(header *protoco | @@ -194,8 +195,8 @@ func (svr *ProjectModuleVersionService) ListProjectModuleVersion(header *protoco | ||
| 194 | return | 195 | return |
| 195 | } | 196 | } |
| 196 | rsp = map[string]interface{}{ | 197 | rsp = map[string]interface{}{ |
| 197 | - "total": total, | ||
| 198 | - "list": projectModuleVersion, | 198 | + "totalRow": total, |
| 199 | + "list": utils.LoadCustomField(projectModuleVersion, "Id", "ProjectModuleId", "Description", "Version", "Status"), | ||
| 199 | } | 200 | } |
| 200 | err = transactionContext.CommitTransaction() | 201 | err = transactionContext.CommitTransaction() |
| 201 | return | 202 | return |
| @@ -117,7 +117,7 @@ func (svr *RoleService) GetRole(header *protocol.RequestHeader, request *protoco | @@ -117,7 +117,7 @@ func (svr *RoleService) GetRole(header *protocol.RequestHeader, request *protoco | ||
| 117 | if role, err = RoleRepository.FindOne(common.ObjectToMap(request)); err != nil { | 117 | if role, err = RoleRepository.FindOne(common.ObjectToMap(request)); err != nil { |
| 118 | return | 118 | return |
| 119 | } | 119 | } |
| 120 | - rsp = map[string]interface{}{"role": utils.LoadCustomField(role, "Id", "RoleName", "ParentId"), "permission": ""} | 120 | + rsp = map[string]interface{}{"role": utils.LoadCustomField(role, "Id", "RoleName", "ParentId")} |
| 121 | err = transactionContext.CommitTransaction() | 121 | err = transactionContext.CommitTransaction() |
| 122 | return | 122 | return |
| 123 | } | 123 | } |
| @@ -11,6 +11,8 @@ import ( | @@ -11,6 +11,8 @@ import ( | ||
| 11 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/utils" | 11 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/utils" |
| 12 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | 12 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" |
| 13 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/user" | 13 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/user" |
| 14 | + "strings" | ||
| 15 | + "time" | ||
| 14 | ) | 16 | ) |
| 15 | 17 | ||
| 16 | type UserService struct { | 18 | type UserService struct { |
| @@ -33,11 +35,13 @@ func (svr *UserService) CreateUser(header *protocol.RequestHeader, request *prot | @@ -33,11 +35,13 @@ func (svr *UserService) CreateUser(header *protocol.RequestHeader, request *prot | ||
| 33 | transactionContext.RollbackTransaction() | 35 | transactionContext.RollbackTransaction() |
| 34 | }() | 36 | }() |
| 35 | newUser := &domain.Users{ | 37 | newUser := &domain.Users{ |
| 36 | - Name: request.Name, | ||
| 37 | - Phone: request.Phone, | ||
| 38 | - Roles: request.Roles, | ||
| 39 | - Status: 1, | ||
| 40 | - AdminType: request.AdminType, | 38 | + Name: request.Name, |
| 39 | + Phone: request.Phone, | ||
| 40 | + Roles: request.Roles, | ||
| 41 | + Status: 1, | ||
| 42 | + AdminType: request.AdminType, | ||
| 43 | + CreateTime: time.Now(), | ||
| 44 | + UpdateTime: time.Now(), | ||
| 41 | } | 45 | } |
| 42 | 46 | ||
| 43 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) | 47 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) |
| @@ -183,6 +187,7 @@ func (svr *UserService) DeleteUser(header *protocol.RequestHeader, request *prot | @@ -183,6 +187,7 @@ func (svr *UserService) DeleteUser(header *protocol.RequestHeader, request *prot | ||
| 183 | func (svr *UserService) ListUser(header *protocol.RequestHeader, request *protocolx.ListUserRequest) (rsp interface{}, err error) { | 187 | func (svr *UserService) ListUser(header *protocol.RequestHeader, request *protocolx.ListUserRequest) (rsp interface{}, err error) { |
| 184 | var ( | 188 | var ( |
| 185 | transactionContext, _ = factory.CreateTransactionContext(nil) | 189 | transactionContext, _ = factory.CreateTransactionContext(nil) |
| 190 | + RoleRepository, _ = factory.CreateRoleRepository(transactionContext) | ||
| 186 | ) | 191 | ) |
| 187 | rsp = &protocolx.ListUserResponse{} | 192 | rsp = &protocolx.ListUserResponse{} |
| 188 | if err = request.ValidateCommand(); err != nil { | 193 | if err = request.ValidateCommand(); err != nil { |
| @@ -197,17 +202,39 @@ func (svr *UserService) ListUser(header *protocol.RequestHeader, request *protoc | @@ -197,17 +202,39 @@ func (svr *UserService) ListUser(header *protocol.RequestHeader, request *protoc | ||
| 197 | transactionContext.RollbackTransaction() | 202 | transactionContext.RollbackTransaction() |
| 198 | }() | 203 | }() |
| 199 | 204 | ||
| 205 | + _, roles, _ := RoleRepository.Find(map[string]interface{}{}) | ||
| 206 | + roleMap := domain.Roles(roles).RoleMap() | ||
| 207 | + getRoles := func(roleIds []int64) string { | ||
| 208 | + if len(roleIds) == 0 { | ||
| 209 | + return "" | ||
| 210 | + } | ||
| 211 | + var role []string | ||
| 212 | + for _, id := range roleIds { | ||
| 213 | + if v, ok := roleMap[id]; ok { | ||
| 214 | + role = append(role, v.RoleName) | ||
| 215 | + } | ||
| 216 | + } | ||
| 217 | + return strings.Join(role, ",") | ||
| 218 | + } | ||
| 219 | + | ||
| 200 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) | 220 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) |
| 201 | var user []*domain.Users | 221 | var user []*domain.Users |
| 202 | var total int64 | 222 | var total int64 |
| 203 | - if total, user, err = UserRepository.Find(map[string]interface{}{"offset": request.PageNumber * request.PageSize, "limit": request.PageSize, "sortById": "DESC"}); err != nil { | 223 | + if total, user, err = UserRepository.Find(map[string]interface{}{"offset": (request.PageNumber - 1) * request.PageSize, "limit": request.PageSize, "searchByText": request.SearchByText, "sortById": "DESC"}); err != nil { |
| 204 | err = application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 224 | err = application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 205 | return | 225 | return |
| 206 | } | 226 | } |
| 227 | + userList := make([]map[string]interface{}, 0) | ||
| 228 | + for _, v := range user { | ||
| 229 | + item := map[string]interface{}{"id": v.Id, "name": v.Name, "adminType": v.AdminType, "status": v.Status, "createTime": v.CreateTime.Local().Format("2006-01-02 15:04:05")} | ||
| 230 | + item["roles"] = getRoles(v.Roles) | ||
| 231 | + userList = append(userList, item) | ||
| 232 | + } | ||
| 233 | + | ||
| 207 | rsp = map[string]interface{}{ | 234 | rsp = map[string]interface{}{ |
| 208 | "totalRow": total, | 235 | "totalRow": total, |
| 209 | "pageNumber": request.PageNumber, | 236 | "pageNumber": request.PageNumber, |
| 210 | - "list": utils.LoadCustomField(user, "Id", "Name", "Phone", "IsAdmin", "Status"), | 237 | + "list": userList, |
| 211 | } | 238 | } |
| 212 | if err = transactionContext.CommitTransaction(); err != nil { | 239 | if err = transactionContext.CommitTransaction(); err != nil { |
| 213 | err = application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 240 | err = application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| @@ -2,11 +2,11 @@ package constant | @@ -2,11 +2,11 @@ package constant | ||
| 2 | 2 | ||
| 3 | import "os" | 3 | import "os" |
| 4 | 4 | ||
| 5 | -var POSTGRESQL_DB_NAME = "godevp" | 5 | +var POSTGRESQL_DB_NAME = "godevp_dev" |
| 6 | var POSTGRESQL_USER = "postgres" | 6 | var POSTGRESQL_USER = "postgres" |
| 7 | -var POSTGRESQL_PASSWORD = "123456" | ||
| 8 | -var POSTGRESQL_HOST = "127.0.0.1" | ||
| 9 | -var POSTGRESQL_PORT = "5432" | 7 | +var POSTGRESQL_PASSWORD = "eagle1010" |
| 8 | +var POSTGRESQL_HOST = "114.55.200.59" | ||
| 9 | +var POSTGRESQL_PORT = "31543" | ||
| 10 | var DISABLE_CREATE_TABLE = true | 10 | var DISABLE_CREATE_TABLE = true |
| 11 | var DISABLE_SQL_GENERATE_PRINT = false | 11 | var DISABLE_SQL_GENERATE_PRINT = false |
| 12 | 12 |
| @@ -2,6 +2,11 @@ package domain | @@ -2,6 +2,11 @@ package domain | ||
| 2 | 2 | ||
| 3 | import "time" | 3 | import "time" |
| 4 | 4 | ||
| 5 | +const ( | ||
| 6 | + StatusNormal = iota + 1 | ||
| 7 | + StatusDelete | ||
| 8 | +) | ||
| 9 | + | ||
| 5 | // ProjectModule | 10 | // ProjectModule |
| 6 | type ProjectModule struct { | 11 | type ProjectModule struct { |
| 7 | // 唯一标识 | 12 | // 唯一标识 |
| @@ -12,7 +17,7 @@ type ProjectModule struct { | @@ -12,7 +17,7 @@ type ProjectModule struct { | ||
| 12 | ProjectKey string `json:"projectKey"` | 17 | ProjectKey string `json:"projectKey"` |
| 13 | // 项目描述信息 | 18 | // 项目描述信息 |
| 14 | Description string `json:"description"` | 19 | Description string `json:"description"` |
| 15 | - // 状态 0:正常 1:删除 | 20 | + // 状态 1:正常 2:删除 |
| 16 | Status int `json:"status"` | 21 | Status int `json:"status"` |
| 17 | // 创建时间 | 22 | // 创建时间 |
| 18 | CreateTime time.Time `json:"createTime"` | 23 | CreateTime time.Time `json:"createTime"` |
| @@ -36,5 +41,18 @@ func (m *ProjectModule) Identify() interface{} { | @@ -36,5 +41,18 @@ func (m *ProjectModule) Identify() interface{} { | ||
| 36 | } | 41 | } |
| 37 | 42 | ||
| 38 | func (m *ProjectModule) Update(data map[string]interface{}) error { | 43 | func (m *ProjectModule) Update(data map[string]interface{}) error { |
| 44 | + if projectName, ok := data["projectName"]; ok { | ||
| 45 | + m.ProjectName = projectName.(string) | ||
| 46 | + } | ||
| 47 | + if projectKey, ok := data["projectKey"]; ok { | ||
| 48 | + m.ProjectKey = projectKey.(string) | ||
| 49 | + } | ||
| 50 | + if description, ok := data["description"]; ok { | ||
| 51 | + m.Description = description.(string) | ||
| 52 | + } | ||
| 53 | + if status, ok := data["status"]; ok { | ||
| 54 | + m.Status = status.(int) | ||
| 55 | + } | ||
| 56 | + m.UpdateTime = time.Now() | ||
| 39 | return nil | 57 | return nil |
| 40 | } | 58 | } |
| @@ -26,13 +26,13 @@ type ProjectModuleFiles struct { | @@ -26,13 +26,13 @@ type ProjectModuleFiles struct { | ||
| 26 | // 父级编号 | 26 | // 父级编号 |
| 27 | ParentId int64 `json:"parentId"` | 27 | ParentId int64 `json:"parentId"` |
| 28 | // 排序 | 28 | // 排序 |
| 29 | - Sort int `json:"sort"` | 29 | + Sort int `json:"-"` |
| 30 | // 备注信息 | 30 | // 备注信息 |
| 31 | Remark string `json:"remark"` | 31 | Remark string `json:"remark"` |
| 32 | // 创建时间 | 32 | // 创建时间 |
| 33 | - CreateTime time.Time `json:"createTime"` | 33 | + CreateTime time.Time `json:"-"` |
| 34 | // 更新时间 | 34 | // 更新时间 |
| 35 | - UpdateTime time.Time `json:"updateTime"` | 35 | + UpdateTime time.Time `json:"-"` |
| 36 | // 当前文件相对路径 a/b/c | 36 | // 当前文件相对路径 a/b/c |
| 37 | Path string `json:"path"` | 37 | Path string `json:"path"` |
| 38 | } | 38 | } |
| @@ -52,5 +52,21 @@ func (m *ProjectModuleFiles) Identify() interface{} { | @@ -52,5 +52,21 @@ func (m *ProjectModuleFiles) Identify() interface{} { | ||
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | func (m *ProjectModuleFiles) Update(data map[string]interface{}) error { | 54 | func (m *ProjectModuleFiles) Update(data map[string]interface{}) error { |
| 55 | + if fileName, ok := data["fileName"]; ok { | ||
| 56 | + m.FileName = fileName.(string) | ||
| 57 | + } | ||
| 58 | + if codeBlock, ok := data["codeBlock"]; ok { | ||
| 59 | + m.CodeBlock = codeBlock.(string) | ||
| 60 | + } | ||
| 61 | + //if parentId, ok := data["parentId"]; ok { | ||
| 62 | + // m.ParentId = parentId.(int64) | ||
| 63 | + //} | ||
| 64 | + if remark, ok := data["remark"]; ok { | ||
| 65 | + m.Remark = remark.(string) | ||
| 66 | + } | ||
| 67 | + if path, ok := data["path"]; ok { | ||
| 68 | + m.Path = path.(string) | ||
| 69 | + } | ||
| 70 | + m.UpdateTime = time.Now() | ||
| 55 | return nil | 71 | return nil |
| 56 | } | 72 | } |
| 1 | package domain | 1 | package domain |
| 2 | 2 | ||
| 3 | -import "time" | 3 | +import ( |
| 4 | + "time" | ||
| 5 | +) | ||
| 4 | 6 | ||
| 5 | // Role | 7 | // Role |
| 6 | type Role struct { | 8 | type Role struct { |
| @@ -39,3 +41,23 @@ func (m *Role) Update(data map[string]interface{}) error { | @@ -39,3 +41,23 @@ func (m *Role) Update(data map[string]interface{}) error { | ||
| 39 | } | 41 | } |
| 40 | return nil | 42 | return nil |
| 41 | } | 43 | } |
| 44 | + | ||
| 45 | +type Roles []*Role | ||
| 46 | + | ||
| 47 | +func (roles Roles) RoleMap() map[int64]*Role { | ||
| 48 | + var retMap = make(map[int64]*Role) | ||
| 49 | + for _, v := range roles { | ||
| 50 | + retMap[v.Id] = v | ||
| 51 | + } | ||
| 52 | + return retMap | ||
| 53 | +} | ||
| 54 | + | ||
| 55 | +//func(roles Roles)RolesWithMap(roleMap map[int64]*Role,roleIds []int64)string{ | ||
| 56 | +// var role []string | ||
| 57 | +// for _,id :=range roleIds{ | ||
| 58 | +// if v,ok:=roleMap[id];ok{ | ||
| 59 | +// role = append(role,v.RoleName) | ||
| 60 | +// } | ||
| 61 | +// } | ||
| 62 | +// return strings.Join(role,",") | ||
| 63 | +//} |
| 1 | package domain | 1 | package domain |
| 2 | 2 | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +const ( | ||
| 6 | + UserAdmin = iota + 1 | ||
| 7 | + UserNormal | ||
| 8 | +) | ||
| 9 | + | ||
| 3 | // Users | 10 | // Users |
| 4 | type Users struct { | 11 | type Users struct { |
| 5 | // 唯一标识 | 12 | // 唯一标识 |
| @@ -16,8 +23,12 @@ type Users struct { | @@ -16,8 +23,12 @@ type Users struct { | ||
| 16 | Roles []int64 `json:"roles"` | 23 | Roles []int64 `json:"roles"` |
| 17 | // 1启用 2禁用 | 24 | // 1启用 2禁用 |
| 18 | Status int `json:"status"` | 25 | Status int `json:"status"` |
| 19 | - // 管理员类型 | 26 | + // 管理员类型 1:管理员 2:普通员工 |
| 20 | AdminType int `json:"adminType"` | 27 | AdminType int `json:"adminType"` |
| 28 | + // 创建时间 | ||
| 29 | + CreateTime time.Time `json:"createTime"` | ||
| 30 | + // 更新时间 | ||
| 31 | + UpdateTime time.Time `json:"updateTime"` | ||
| 21 | } | 32 | } |
| 22 | 33 | ||
| 23 | type UsersRepository interface { | 34 | type UsersRepository interface { |
| @@ -53,5 +64,6 @@ func (m *Users) Update(data map[string]interface{}) error { | @@ -53,5 +64,6 @@ func (m *Users) Update(data map[string]interface{}) error { | ||
| 53 | if status, ok := data["status"]; ok { | 64 | if status, ok := data["status"]; ok { |
| 54 | m.Status = status.(int) | 65 | m.Status = status.(int) |
| 55 | } | 66 | } |
| 67 | + m.UpdateTime = time.Now() | ||
| 56 | return nil | 68 | return nil |
| 57 | } | 69 | } |
| 1 | +package dao | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg/transaction" | ||
| 6 | + "strings" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type ProjectModuleFilesDao struct { | ||
| 10 | + transactionContext *transaction.TransactionContext | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +func (dao *ProjectModuleFilesDao) UpdateFilesPath(srcProjectId, srcVersionId int64, oldPath, newPath string) error { | ||
| 14 | + tx := dao.transactionContext.PgTx | ||
| 15 | + _, err := tx.Exec(fmt.Sprintf(`update project_module_files set "path"= replace("path",?,?) where project_module_id=? and project_module_version_id=? and "path" like '%%%v%%'`, strings.Replace(oldPath, "\\", "\\\\", -1)), | ||
| 16 | + oldPath, newPath, srcProjectId, srcVersionId) | ||
| 17 | + return err | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func NewProjectModuleFilesDao(transactionContext *transaction.TransactionContext) (*ProjectModuleFilesDao, error) { | ||
| 21 | + if transactionContext == nil { | ||
| 22 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
| 23 | + } else { | ||
| 24 | + return &ProjectModuleFilesDao{ | ||
| 25 | + transactionContext: transactionContext, | ||
| 26 | + }, nil | ||
| 27 | + } | ||
| 28 | +} |
| @@ -13,7 +13,7 @@ type ProjectModule struct { | @@ -13,7 +13,7 @@ type ProjectModule struct { | ||
| 13 | ProjectKey string | 13 | ProjectKey string |
| 14 | // 项目描述信息 | 14 | // 项目描述信息 |
| 15 | Description string | 15 | Description string |
| 16 | - // 状态 0:正常 1:删除 | 16 | + // 状态 1:正常 2:删除 |
| 17 | Status int | 17 | Status int |
| 18 | // 创建时间 | 18 | // 创建时间 |
| 19 | CreateTime time.Time | 19 | CreateTime time.Time |
| @@ -20,9 +20,9 @@ type ProjectModuleFiles struct { | @@ -20,9 +20,9 @@ type ProjectModuleFiles struct { | ||
| 20 | // 代码块 | 20 | // 代码块 |
| 21 | CodeBlock string | 21 | CodeBlock string |
| 22 | // 父级编号 | 22 | // 父级编号 |
| 23 | - ParentId int64 | 23 | + ParentId int64 `pg:",use_zero"` |
| 24 | // 排序 | 24 | // 排序 |
| 25 | - Sort int | 25 | + Sort int `pg:",use_zero"` |
| 26 | // 备注信息 | 26 | // 备注信息 |
| 27 | Remark string | 27 | Remark string |
| 28 | // 创建时间 | 28 | // 创建时间 |
| 1 | package models | 1 | package models |
| 2 | 2 | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 3 | // Users | 5 | // Users |
| 4 | type Users struct { | 6 | type Users struct { |
| 5 | tableName struct{} `pg:"users"` | 7 | tableName struct{} `pg:"users"` |
| @@ -17,4 +19,8 @@ type Users struct { | @@ -17,4 +19,8 @@ type Users struct { | ||
| 17 | Status int | 19 | Status int |
| 18 | // 管理员类型 1:超级管理员 2:普通账号 | 20 | // 管理员类型 1:超级管理员 2:普通账号 |
| 19 | AdminType int | 21 | AdminType int |
| 22 | + // 创建时间 | ||
| 23 | + CreateTime time.Time | ||
| 24 | + // 更新时间 | ||
| 25 | + UpdateTime time.Time | ||
| 20 | } | 26 | } |
| @@ -73,7 +73,11 @@ func (repository *ProjectModuleFilesRepository) Find(queryOptions map[string]int | @@ -73,7 +73,11 @@ func (repository *ProjectModuleFilesRepository) Find(queryOptions map[string]int | ||
| 73 | SetWhere("project_module_id=?", "projectModuleId"). | 73 | SetWhere("project_module_id=?", "projectModuleId"). |
| 74 | SetWhere("project_module_version_id=?", "projectModuleVersionId"). | 74 | SetWhere("project_module_version_id=?", "projectModuleVersionId"). |
| 75 | SetOrder("create_time", "sortByCreateTime"). | 75 | SetOrder("create_time", "sortByCreateTime"). |
| 76 | - SetOrder("update_time", "sortByUpdateTime") | 76 | + SetOrder("update_time", "sortByUpdateTime"). |
| 77 | + SetOrder("parent_id", "sortByParentId"). | ||
| 78 | + SetOrder("id", "sortById") | ||
| 79 | + | ||
| 80 | + query.SetWhere("parent_id = ?", "parentId") | ||
| 77 | var err error | 81 | var err error |
| 78 | if query.AffectRow, err = query.SelectAndCount(); err != nil { | 82 | if query.AffectRow, err = query.SelectAndCount(); err != nil { |
| 79 | return 0, ProjectModuleFiless, err | 83 | return 0, ProjectModuleFiless, err |
| @@ -30,7 +30,7 @@ func (repository *ProjectModuleRepository) Save(dm *domain.ProjectModule) (*doma | @@ -30,7 +30,7 @@ func (repository *ProjectModuleRepository) Save(dm *domain.ProjectModule) (*doma | ||
| 30 | dm.Id = m.Id | 30 | dm.Id = m.Id |
| 31 | return dm, nil | 31 | return dm, nil |
| 32 | } | 32 | } |
| 33 | - if err = tx.Update(m); err != nil { | 33 | + if _, err = tx.Model(m).WherePK().Update(); err != nil { |
| 34 | return nil, err | 34 | return nil, err |
| 35 | } | 35 | } |
| 36 | return dm, nil | 36 | return dm, nil |
| @@ -69,12 +69,14 @@ func (repository *ProjectModuleRepository) Find(queryOptions map[string]interfac | @@ -69,12 +69,14 @@ func (repository *ProjectModuleRepository) Find(queryOptions map[string]interfac | ||
| 69 | tx := repository.transactionContext.PgTx | 69 | tx := repository.transactionContext.PgTx |
| 70 | var ProjectModuleModels []*models.ProjectModule | 70 | var ProjectModuleModels []*models.ProjectModule |
| 71 | ProjectModules := make([]*domain.ProjectModule, 0) | 71 | ProjectModules := make([]*domain.ProjectModule, 0) |
| 72 | - query := NewQuery(tx.Model(&ProjectModuleModels).Relation("ProjectModuleVersion", func(q *orm.Query) (*orm.Query, error) { | ||
| 73 | - q.Where("status=0") | ||
| 74 | - return q, nil | ||
| 75 | - }), queryOptions). | 72 | + query := NewQuery(tx.Model(&ProjectModuleModels), queryOptions). |
| 73 | + //Relation("ProjectModuleVersion", func(q *orm.Query) (*orm.Query, error) { | ||
| 74 | + // q.Where("status=0") | ||
| 75 | + // return q, nil | ||
| 76 | + //}), queryOptions). | ||
| 77 | + SetWhere("status=?", "status"). | ||
| 76 | SetOrder("create_time", "sortByCreateTime"). | 78 | SetOrder("create_time", "sortByCreateTime"). |
| 77 | - SetOrder("update_time", "sortByUpdateTime") | 79 | + SetOrder("update_time", "sortByUpdateTime").SetLimit() |
| 78 | var err error | 80 | var err error |
| 79 | if query.AffectRow, err = query.SelectAndCount(); err != nil { | 81 | if query.AffectRow, err = query.SelectAndCount(); err != nil { |
| 80 | return 0, ProjectModules, err | 82 | return 0, ProjectModules, err |
| @@ -3,14 +3,22 @@ package repository | @@ -3,14 +3,22 @@ package repository | ||
| 3 | import ( | 3 | import ( |
| 4 | "fmt" | 4 | "fmt" |
| 5 | "github.com/tiptok/gocomm/common" | 5 | "github.com/tiptok/gocomm/common" |
| 6 | + "github.com/tiptok/gocomm/pkg/cache" | ||
| 6 | . "github.com/tiptok/gocomm/pkg/orm/pgx" | 7 | . "github.com/tiptok/gocomm/pkg/orm/pgx" |
| 7 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | 8 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" |
| 8 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg/models" | 9 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg/models" |
| 9 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg/transaction" | 10 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg/transaction" |
| 10 | ) | 11 | ) |
| 11 | 12 | ||
| 13 | +var ( | ||
| 14 | + cacheUsersIdKey = func(id int64) string { | ||
| 15 | + return fmt.Sprintf("%v:cache:Users:id:%v", "godevp", id) | ||
| 16 | + } | ||
| 17 | +) | ||
| 18 | + | ||
| 12 | type UsersRepository struct { | 19 | type UsersRepository struct { |
| 13 | transactionContext *transaction.TransactionContext | 20 | transactionContext *transaction.TransactionContext |
| 21 | + *cache.CachedRepository | ||
| 14 | } | 22 | } |
| 15 | 23 | ||
| 16 | func (repository *UsersRepository) Save(dm *domain.Users) (*domain.Users, error) { | 24 | func (repository *UsersRepository) Save(dm *domain.Users) (*domain.Users, error) { |
| @@ -29,7 +37,10 @@ func (repository *UsersRepository) Save(dm *domain.Users) (*domain.Users, error) | @@ -29,7 +37,10 @@ func (repository *UsersRepository) Save(dm *domain.Users) (*domain.Users, error) | ||
| 29 | dm.Id = m.Id | 37 | dm.Id = m.Id |
| 30 | return dm, nil | 38 | return dm, nil |
| 31 | } | 39 | } |
| 32 | - if err = tx.Update(m); err != nil { | 40 | + queryFunc := func() (interface{}, error) { |
| 41 | + return nil, tx.Update(m) | ||
| 42 | + } | ||
| 43 | + if _, err = repository.Query(queryFunc, cacheUsersIdKey(dm.Id)); err != nil { | ||
| 33 | return nil, err | 44 | return nil, err |
| 34 | } | 45 | } |
| 35 | return dm, nil | 46 | return dm, nil |
| @@ -40,21 +51,37 @@ func (repository *UsersRepository) Remove(User *domain.Users) (*domain.Users, er | @@ -40,21 +51,37 @@ func (repository *UsersRepository) Remove(User *domain.Users) (*domain.Users, er | ||
| 40 | tx = repository.transactionContext.PgTx | 51 | tx = repository.transactionContext.PgTx |
| 41 | UserModel = &models.Users{Id: User.Identify().(int64)} | 52 | UserModel = &models.Users{Id: User.Identify().(int64)} |
| 42 | ) | 53 | ) |
| 43 | - if _, err := tx.Model(UserModel).Where("id = ?", User.Id).Delete(); err != nil { | 54 | + queryFunc := func() (interface{}, error) { |
| 55 | + return tx.Model(UserModel).Where("id = ?", User.Id).Delete() | ||
| 56 | + } | ||
| 57 | + if _, err := repository.Query(queryFunc, cacheUsersIdKey(User.Id)); err != nil { | ||
| 44 | return User, err | 58 | return User, err |
| 45 | } | 59 | } |
| 46 | return User, nil | 60 | return User, nil |
| 47 | } | 61 | } |
| 48 | 62 | ||
| 49 | func (repository *UsersRepository) FindOne(queryOptions map[string]interface{}) (*domain.Users, error) { | 63 | func (repository *UsersRepository) FindOne(queryOptions map[string]interface{}) (*domain.Users, error) { |
| 50 | - tx := repository.transactionContext.PgTx | 64 | + tx := repository.transactionContext.PgDd |
| 51 | UserModel := new(models.Users) | 65 | UserModel := new(models.Users) |
| 52 | - query := NewQuery(tx.Model(UserModel), queryOptions) | ||
| 53 | - query.SetWhere("id = ?", "id") | ||
| 54 | - query.SetWhere("phone = ?", "phone") | ||
| 55 | - if err := query.First(); err != nil { | ||
| 56 | - return nil, fmt.Errorf("query row not found") | 66 | + queryFunc := func() (interface{}, error) { |
| 67 | + query := NewQuery(tx.Model(UserModel), queryOptions) | ||
| 68 | + query.SetWhere("id = ?", "id") | ||
| 69 | + query.SetWhere("phone = ?", "phone") | ||
| 70 | + if err := query.First(); err != nil { | ||
| 71 | + return nil, fmt.Errorf("query row not found") | ||
| 72 | + } | ||
| 73 | + return UserModel, nil | ||
| 57 | } | 74 | } |
| 75 | + var options []cache.QueryOption | ||
| 76 | + if _, ok := queryOptions["id"]; !ok { | ||
| 77 | + options = append(options, cache.WithNoCacheFlag()) | ||
| 78 | + } else { | ||
| 79 | + UserModel.Id = queryOptions["id"].(int64) | ||
| 80 | + } | ||
| 81 | + if err := repository.QueryCache(cacheUsersIdKey(UserModel.Id), UserModel, queryFunc, options...); err != nil { | ||
| 82 | + return nil, err | ||
| 83 | + } | ||
| 84 | + | ||
| 58 | if UserModel.Id == 0 { | 85 | if UserModel.Id == 0 { |
| 59 | return nil, fmt.Errorf("query row not found") | 86 | return nil, fmt.Errorf("query row not found") |
| 60 | } | 87 | } |
| @@ -70,6 +97,11 @@ func (repository *UsersRepository) Find(queryOptions map[string]interface{}) (in | @@ -70,6 +97,11 @@ func (repository *UsersRepository) Find(queryOptions map[string]interface{}) (in | ||
| 70 | SetOrder("update_time", "sortByUpdateTime"). | 97 | SetOrder("update_time", "sortByUpdateTime"). |
| 71 | SetOrder("id", "sortById"). | 98 | SetOrder("id", "sortById"). |
| 72 | SetLimit() | 99 | SetLimit() |
| 100 | + | ||
| 101 | + if searchByText, ok := queryOptions["searchByText"]; ok && len(searchByText.(string)) > 0 { | ||
| 102 | + query.Where(fmt.Sprintf(`name like '%%%v%%'`, searchByText)) | ||
| 103 | + } | ||
| 104 | + | ||
| 73 | var err error | 105 | var err error |
| 74 | if query.AffectRow, err = query.SelectAndCount(); err != nil { | 106 | if query.AffectRow, err = query.SelectAndCount(); err != nil { |
| 75 | return 0, Users, err | 107 | return 0, Users, err |
| @@ -94,5 +126,5 @@ func NewUserRepository(transactionContext *transaction.TransactionContext) (*Use | @@ -94,5 +126,5 @@ func NewUserRepository(transactionContext *transaction.TransactionContext) (*Use | ||
| 94 | if transactionContext == nil { | 126 | if transactionContext == nil { |
| 95 | return nil, fmt.Errorf("transactionContext参数不能为nil") | 127 | return nil, fmt.Errorf("transactionContext参数不能为nil") |
| 96 | } | 128 | } |
| 97 | - return &UsersRepository{transactionContext: transactionContext}, nil | 129 | + return &UsersRepository{transactionContext: transactionContext, CachedRepository: cache.NewDefaultCachedRepository()}, nil |
| 98 | } | 130 | } |
| @@ -3,6 +3,7 @@ package utils | @@ -3,6 +3,7 @@ package utils | ||
| 3 | import ( | 3 | import ( |
| 4 | "github.com/tiptok/gocomm/common" | 4 | "github.com/tiptok/gocomm/common" |
| 5 | "reflect" | 5 | "reflect" |
| 6 | + "time" | ||
| 6 | ) | 7 | ) |
| 7 | 8 | ||
| 8 | func LoadCustomField(src interface{}, fields ...string) interface{} { | 9 | func LoadCustomField(src interface{}, fields ...string) interface{} { |
| @@ -33,7 +34,14 @@ func LoadCustomField(src interface{}, fields ...string) interface{} { | @@ -33,7 +34,14 @@ func LoadCustomField(src interface{}, fields ...string) interface{} { | ||
| 33 | retSliceMap := make(map[string]interface{}) | 34 | retSliceMap := make(map[string]interface{}) |
| 34 | for _, filed := range fields { | 35 | for _, filed := range fields { |
| 35 | f := valueSrc.FieldByName(filed) | 36 | f := valueSrc.FieldByName(filed) |
| 36 | - retSliceMap[common.CamelCase(filed, false)] = f.Interface() | 37 | + if !f.IsValid() { |
| 38 | + continue | ||
| 39 | + } | ||
| 40 | + v := f.Interface() | ||
| 41 | + if t, ok := v.(time.Time); ok { | ||
| 42 | + v = t.Local().Format("2006-01-02 15:04:05") | ||
| 43 | + } | ||
| 44 | + retSliceMap[common.CamelCase(filed, false)] = v | ||
| 37 | } | 45 | } |
| 38 | return retSliceMap | 46 | return retSliceMap |
| 39 | default: | 47 | default: |
| @@ -41,3 +49,16 @@ func LoadCustomField(src interface{}, fields ...string) interface{} { | @@ -41,3 +49,16 @@ func LoadCustomField(src interface{}, fields ...string) interface{} { | ||
| 41 | } | 49 | } |
| 42 | return src | 50 | return src |
| 43 | } | 51 | } |
| 52 | + | ||
| 53 | +func AppendCustomField(src interface{}, options map[string]interface{}) interface{} { | ||
| 54 | + var mapSrc map[string]interface{} | ||
| 55 | + var ok bool | ||
| 56 | + mapSrc, ok = src.(map[string]interface{}) | ||
| 57 | + if !ok { | ||
| 58 | + common.JsonUnmarshal(common.JsonAssertString(src), &mapSrc) | ||
| 59 | + } | ||
| 60 | + for field, value := range options { | ||
| 61 | + mapSrc[common.CamelCase(field, false)] = value | ||
| 62 | + } | ||
| 63 | + return mapSrc | ||
| 64 | +} |
| @@ -26,6 +26,23 @@ func TestLoadCustomField(t *testing.T) { | @@ -26,6 +26,23 @@ func TestLoadCustomField(t *testing.T) { | ||
| 26 | t.Log(common.JsonAssertString(ret2)) | 26 | t.Log(common.JsonAssertString(ret2)) |
| 27 | 27 | ||
| 28 | v3 := []*User{&User{Name: "c1", Id: 1}, &User{Name: "c2", Id: 2}, &User{Name: "c3", Id: 3}} | 28 | v3 := []*User{&User{Name: "c1", Id: 1}, &User{Name: "c2", Id: 2}, &User{Name: "c3", Id: 3}} |
| 29 | - ret3 := LoadCustomField(&v3, "Name") | 29 | + ret3 := LoadCustomField(&v3, "Name", "Name2") |
| 30 | t.Log(common.JsonAssertString(ret3)) | 30 | t.Log(common.JsonAssertString(ret3)) |
| 31 | } | 31 | } |
| 32 | + | ||
| 33 | +func TestAppendCustomField(t *testing.T) { | ||
| 34 | + customMap := map[string]interface{}{"1": "h", "2": "e"} | ||
| 35 | + t.Log(customMap) | ||
| 36 | + | ||
| 37 | + customeFiles := map[string]interface{}{ | ||
| 38 | + "Value": map[string]interface{}{"a": "a", "b": "b"}, | ||
| 39 | + "Value2": "cc", | ||
| 40 | + "Value3": 9999, | ||
| 41 | + } | ||
| 42 | + t.Log(AppendCustomField(customMap, customeFiles)) | ||
| 43 | + | ||
| 44 | + t.Log(AppendCustomField(struct { | ||
| 45 | + Name string `json:"name"` | ||
| 46 | + Age int64 `json:"age"` | ||
| 47 | + }{Name: "ccc", Age: 20}, customeFiles)) | ||
| 48 | +} |
| @@ -16,11 +16,11 @@ func init() { | @@ -16,11 +16,11 @@ func init() { | ||
| 16 | AllowCredentials: true, | 16 | AllowCredentials: true, |
| 17 | })) | 17 | })) |
| 18 | 18 | ||
| 19 | - beego.InsertFilter("/auth/profile", beego.BeforeExec, middleware.CheckAuthorization) | ||
| 20 | - beego.InsertFilter("/user/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 21 | - beego.InsertFilter("/role/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 22 | - beego.InsertFilter("/project_module/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 23 | - beego.InsertFilter("/project_module_version/*", beego.BeforeExec, middleware.InspectRoleAccess("/project_module/*")) | ||
| 24 | - beego.InsertFilter("/project_module_files/*", beego.BeforeExec, middleware.InspectRoleAccess("/project_module/*")) | ||
| 25 | - beego.InsertFilter("/rbac/*", beego.BeforeExec, middleware.InspectRoleAccess("/role/*")) | 19 | + beego.InsertFilter("/v1/auth/profile", beego.BeforeExec, middleware.CheckAuthorization) |
| 20 | + beego.InsertFilter("/v1/user/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 21 | + beego.InsertFilter("/v1/role/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 22 | + beego.InsertFilter("/v1/project_module/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 23 | + beego.InsertFilter("/v1/project_module_version/*", beego.BeforeExec, middleware.InspectRoleAccess("/project_module/*")) | ||
| 24 | + beego.InsertFilter("/v1/project_module_files/*", beego.BeforeExec, middleware.InspectRoleAccess("/project_module/*")) | ||
| 25 | + beego.InsertFilter("/v1/rbac/*", beego.BeforeExec, middleware.InspectRoleAccess("/role/*")) | ||
| 26 | } | 26 | } |
| @@ -13,20 +13,20 @@ type ProjectModuleController struct { | @@ -13,20 +13,20 @@ type ProjectModuleController struct { | ||
| 13 | 13 | ||
| 14 | // CreateProjectModule | 14 | // CreateProjectModule |
| 15 | // CreateProjectModule execute command create ProjectModule | 15 | // CreateProjectModule execute command create ProjectModule |
| 16 | -func (this *ProjectModuleController) CreateProjectModule() { | 16 | +func (controller *ProjectModuleController) CreateProjectModule() { |
| 17 | var ( | 17 | var ( |
| 18 | msg *protocol.ResponseMessage | 18 | msg *protocol.ResponseMessage |
| 19 | svr = project_module.NewProjectModuleService(nil) | 19 | svr = project_module.NewProjectModuleService(nil) |
| 20 | request *protocolx.CreateProjectModuleRequest | 20 | request *protocolx.CreateProjectModuleRequest |
| 21 | ) | 21 | ) |
| 22 | defer func() { | 22 | defer func() { |
| 23 | - this.Resp(msg) | 23 | + controller.Resp(msg) |
| 24 | }() | 24 | }() |
| 25 | - if err := this.JsonUnmarshal(&request); err != nil { | 25 | + if err := controller.JsonUnmarshal(&request); err != nil { |
| 26 | msg = protocol.NewResponseMessage(2, "") | 26 | msg = protocol.NewResponseMessage(2, "") |
| 27 | return | 27 | return |
| 28 | } | 28 | } |
| 29 | - header := this.GetRequestHeader(this.Ctx) | 29 | + header := controller.GetRequestHeader(controller.Ctx) |
| 30 | data, err := svr.CreateProjectModule(header, request) | 30 | data, err := svr.CreateProjectModule(header, request) |
| 31 | if err != nil { | 31 | if err != nil { |
| 32 | log.Error(err) | 32 | log.Error(err) |
| @@ -36,20 +36,21 @@ func (this *ProjectModuleController) CreateProjectModule() { | @@ -36,20 +36,21 @@ func (this *ProjectModuleController) CreateProjectModule() { | ||
| 36 | 36 | ||
| 37 | // UpdateProjectModule | 37 | // UpdateProjectModule |
| 38 | // UpdateProjectModule execute command update ProjectModule | 38 | // UpdateProjectModule execute command update ProjectModule |
| 39 | -func (this *ProjectModuleController) UpdateProjectModule() { | 39 | +func (controller *ProjectModuleController) UpdateProjectModule() { |
| 40 | var ( | 40 | var ( |
| 41 | msg *protocol.ResponseMessage | 41 | msg *protocol.ResponseMessage |
| 42 | svr = project_module.NewProjectModuleService(nil) | 42 | svr = project_module.NewProjectModuleService(nil) |
| 43 | request *protocolx.UpdateProjectModuleRequest | 43 | request *protocolx.UpdateProjectModuleRequest |
| 44 | ) | 44 | ) |
| 45 | defer func() { | 45 | defer func() { |
| 46 | - this.Resp(msg) | 46 | + controller.Resp(msg) |
| 47 | }() | 47 | }() |
| 48 | - if err := this.JsonUnmarshal(&request); err != nil { | 48 | + if err := controller.JsonUnmarshal(&request); err != nil { |
| 49 | msg = protocol.NewResponseMessage(2, "") | 49 | msg = protocol.NewResponseMessage(2, "") |
| 50 | return | 50 | return |
| 51 | } | 51 | } |
| 52 | - header := this.GetRequestHeader(this.Ctx) | 52 | + request.Id, _ = controller.GetInt64(":projectModuleId") |
| 53 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 53 | data, err := svr.UpdateProjectModule(header, request) | 54 | data, err := svr.UpdateProjectModule(header, request) |
| 54 | if err != nil { | 55 | if err != nil { |
| 55 | log.Error(err) | 56 | log.Error(err) |
| @@ -59,17 +60,17 @@ func (this *ProjectModuleController) UpdateProjectModule() { | @@ -59,17 +60,17 @@ func (this *ProjectModuleController) UpdateProjectModule() { | ||
| 59 | 60 | ||
| 60 | // GetProjectModule | 61 | // GetProjectModule |
| 61 | // GetProjectModule execute query get ProjectModule | 62 | // GetProjectModule execute query get ProjectModule |
| 62 | -func (this *ProjectModuleController) GetProjectModule() { | 63 | +func (controller *ProjectModuleController) GetProjectModule() { |
| 63 | var ( | 64 | var ( |
| 64 | msg *protocol.ResponseMessage | 65 | msg *protocol.ResponseMessage |
| 65 | svr = project_module.NewProjectModuleService(nil) | 66 | svr = project_module.NewProjectModuleService(nil) |
| 66 | request = &protocolx.GetProjectModuleRequest{} | 67 | request = &protocolx.GetProjectModuleRequest{} |
| 67 | ) | 68 | ) |
| 68 | defer func() { | 69 | defer func() { |
| 69 | - this.Resp(msg) | 70 | + controller.Resp(msg) |
| 70 | }() | 71 | }() |
| 71 | - request.Id, _ = this.GetInt64(":projectModuleId") | ||
| 72 | - header := this.GetRequestHeader(this.Ctx) | 72 | + request.Id, _ = controller.GetInt64(":projectModuleId") |
| 73 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 73 | data, err := svr.GetProjectModule(header, request) | 74 | data, err := svr.GetProjectModule(header, request) |
| 74 | if err != nil { | 75 | if err != nil { |
| 75 | log.Error(err) | 76 | log.Error(err) |
| @@ -79,20 +80,17 @@ func (this *ProjectModuleController) GetProjectModule() { | @@ -79,20 +80,17 @@ func (this *ProjectModuleController) GetProjectModule() { | ||
| 79 | 80 | ||
| 80 | // DeleteProjectModule | 81 | // DeleteProjectModule |
| 81 | // DeleteProjectModule execute command delete ProjectModule | 82 | // DeleteProjectModule execute command delete ProjectModule |
| 82 | -func (this *ProjectModuleController) DeleteProjectModule() { | 83 | +func (controller *ProjectModuleController) DeleteProjectModule() { |
| 83 | var ( | 84 | var ( |
| 84 | msg *protocol.ResponseMessage | 85 | msg *protocol.ResponseMessage |
| 85 | svr = project_module.NewProjectModuleService(nil) | 86 | svr = project_module.NewProjectModuleService(nil) |
| 86 | - request *protocolx.DeleteProjectModuleRequest | 87 | + request = &protocolx.DeleteProjectModuleRequest{} |
| 87 | ) | 88 | ) |
| 88 | defer func() { | 89 | defer func() { |
| 89 | - this.Resp(msg) | 90 | + controller.Resp(msg) |
| 90 | }() | 91 | }() |
| 91 | - if err := this.JsonUnmarshal(&request); err != nil { | ||
| 92 | - msg = protocol.NewResponseMessage(2, "") | ||
| 93 | - return | ||
| 94 | - } | ||
| 95 | - header := this.GetRequestHeader(this.Ctx) | 92 | + request.Id, _ = controller.GetInt64(":projectModuleId") |
| 93 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 96 | data, err := svr.DeleteProjectModule(header, request) | 94 | data, err := svr.DeleteProjectModule(header, request) |
| 97 | if err != nil { | 95 | if err != nil { |
| 98 | log.Error(err) | 96 | log.Error(err) |
| @@ -102,23 +100,25 @@ func (this *ProjectModuleController) DeleteProjectModule() { | @@ -102,23 +100,25 @@ func (this *ProjectModuleController) DeleteProjectModule() { | ||
| 102 | 100 | ||
| 103 | // ListProjectModule | 101 | // ListProjectModule |
| 104 | // ListProjectModule execute query list ProjectModule | 102 | // ListProjectModule execute query list ProjectModule |
| 105 | -func (this *ProjectModuleController) ListProjectModule() { | 103 | +func (controller *ProjectModuleController) ListProjectModule() { |
| 106 | var ( | 104 | var ( |
| 107 | msg *protocol.ResponseMessage | 105 | msg *protocol.ResponseMessage |
| 108 | svr = project_module.NewProjectModuleService(nil) | 106 | svr = project_module.NewProjectModuleService(nil) |
| 109 | - request *protocolx.ListProjectModuleRequest | 107 | + request = &protocolx.ListProjectModuleRequest{} |
| 110 | ) | 108 | ) |
| 111 | defer func() { | 109 | defer func() { |
| 112 | - this.Resp(msg) | 110 | + controller.Resp(msg) |
| 113 | }() | 111 | }() |
| 114 | - if err := this.JsonUnmarshal(&request); err != nil { | 112 | + if err := controller.JsonUnmarshal(&request); err != nil { |
| 115 | msg = protocol.NewResponseMessage(2, "") | 113 | msg = protocol.NewResponseMessage(2, "") |
| 116 | return | 114 | return |
| 117 | } | 115 | } |
| 118 | - header := this.GetRequestHeader(this.Ctx) | 116 | + request.PageNumber, _ = controller.GetInt("pageNumber") |
| 117 | + request.PageSize, _ = controller.GetInt("pageSize") | ||
| 118 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 119 | data, err := svr.ListProjectModule(header, request) | 119 | data, err := svr.ListProjectModule(header, request) |
| 120 | if err != nil { | 120 | if err != nil { |
| 121 | log.Error(err) | 121 | log.Error(err) |
| 122 | } | 122 | } |
| 123 | - msg = protocol.NewResponseMessageData(data, err) | 123 | + msg = protocol.NewResponseMessageListData(data, err) |
| 124 | } | 124 | } |
| @@ -52,6 +52,7 @@ func (controller *ProjectModuleFilesController) UpdateProjectModuleFiles() { | @@ -52,6 +52,7 @@ func (controller *ProjectModuleFilesController) UpdateProjectModuleFiles() { | ||
| 52 | msg = protocol.NewResponseMessage(2, "") | 52 | msg = protocol.NewResponseMessage(2, "") |
| 53 | return | 53 | return |
| 54 | } | 54 | } |
| 55 | + request.Id, _ = controller.GetInt64(":projectModuleFilesId") | ||
| 55 | header := controller.GetRequestHeader(controller.Ctx) | 56 | header := controller.GetRequestHeader(controller.Ctx) |
| 56 | data, err := svr.UpdateProjectModuleFiles(header, request) | 57 | data, err := svr.UpdateProjectModuleFiles(header, request) |
| 57 | if err != nil { | 58 | if err != nil { |
| @@ -66,15 +67,12 @@ func (controller *ProjectModuleFilesController) GetProjectModuleFiles() { | @@ -66,15 +67,12 @@ func (controller *ProjectModuleFilesController) GetProjectModuleFiles() { | ||
| 66 | var ( | 67 | var ( |
| 67 | msg *protocol.ResponseMessage | 68 | msg *protocol.ResponseMessage |
| 68 | svr = project_module_files.NewProjectModuleFilesService(nil) | 69 | svr = project_module_files.NewProjectModuleFilesService(nil) |
| 69 | - request *protocolx.GetProjectModuleFilesRequest | 70 | + request = &protocolx.GetProjectModuleFilesRequest{} |
| 70 | ) | 71 | ) |
| 71 | defer func() { | 72 | defer func() { |
| 72 | controller.Resp(msg) | 73 | controller.Resp(msg) |
| 73 | }() | 74 | }() |
| 74 | - if err := controller.JsonUnmarshal(&request); err != nil { | ||
| 75 | - msg = protocol.NewResponseMessage(2, "") | ||
| 76 | - return | ||
| 77 | - } | 75 | + request.Id, _ = controller.GetInt64(":projectModuleFilesId") |
| 78 | header := controller.GetRequestHeader(controller.Ctx) | 76 | header := controller.GetRequestHeader(controller.Ctx) |
| 79 | data, err := svr.GetProjectModuleFiles(header, request) | 77 | data, err := svr.GetProjectModuleFiles(header, request) |
| 80 | if err != nil { | 78 | if err != nil { |
| @@ -89,15 +87,12 @@ func (controller *ProjectModuleFilesController) DeleteProjectModuleFiles() { | @@ -89,15 +87,12 @@ func (controller *ProjectModuleFilesController) DeleteProjectModuleFiles() { | ||
| 89 | var ( | 87 | var ( |
| 90 | msg *protocol.ResponseMessage | 88 | msg *protocol.ResponseMessage |
| 91 | svr = project_module_files.NewProjectModuleFilesService(nil) | 89 | svr = project_module_files.NewProjectModuleFilesService(nil) |
| 92 | - request *protocolx.DeleteProjectModuleFilesRequest | 90 | + request = &protocolx.DeleteProjectModuleFilesRequest{} |
| 93 | ) | 91 | ) |
| 94 | defer func() { | 92 | defer func() { |
| 95 | controller.Resp(msg) | 93 | controller.Resp(msg) |
| 96 | }() | 94 | }() |
| 97 | - if err := controller.JsonUnmarshal(&request); err != nil { | ||
| 98 | - msg = protocol.NewResponseMessage(2, "") | ||
| 99 | - return | ||
| 100 | - } | 95 | + request.Id, _ = controller.GetInt64(":projectModuleFilesId") |
| 101 | header := controller.GetRequestHeader(controller.Ctx) | 96 | header := controller.GetRequestHeader(controller.Ctx) |
| 102 | data, err := svr.DeleteProjectModuleFiles(header, request) | 97 | data, err := svr.DeleteProjectModuleFiles(header, request) |
| 103 | if err != nil { | 98 | if err != nil { |
| @@ -119,6 +114,7 @@ func (controller *ProjectModuleFilesController) ListProjectModuleFiles() { | @@ -119,6 +114,7 @@ func (controller *ProjectModuleFilesController) ListProjectModuleFiles() { | ||
| 119 | }() | 114 | }() |
| 120 | request.ProjectModuleVersionId, _ = controller.GetInt64("projectModuleVersionId") | 115 | request.ProjectModuleVersionId, _ = controller.GetInt64("projectModuleVersionId") |
| 121 | request.ProjectModuleId, _ = controller.GetInt64("projectModuleId") | 116 | request.ProjectModuleId, _ = controller.GetInt64("projectModuleId") |
| 117 | + request.StructType = controller.GetString("structType") | ||
| 122 | header := controller.GetRequestHeader(controller.Ctx) | 118 | header := controller.GetRequestHeader(controller.Ctx) |
| 123 | data, err := svr.ListProjectModuleFiles(header, request) | 119 | data, err := svr.ListProjectModuleFiles(header, request) |
| 124 | if err != nil { | 120 | if err != nil { |
| @@ -104,15 +104,14 @@ func (controller *UserController) ListUser() { | @@ -104,15 +104,14 @@ func (controller *UserController) ListUser() { | ||
| 104 | var ( | 104 | var ( |
| 105 | msg *protocol.ResponseMessage | 105 | msg *protocol.ResponseMessage |
| 106 | svr = user.NewUserService(nil) | 106 | svr = user.NewUserService(nil) |
| 107 | - request *protocolx.ListUserRequest | 107 | + request = &protocolx.ListUserRequest{} |
| 108 | ) | 108 | ) |
| 109 | defer func() { | 109 | defer func() { |
| 110 | controller.Resp(msg) | 110 | controller.Resp(msg) |
| 111 | }() | 111 | }() |
| 112 | - if err := controller.JsonUnmarshal(&request); err != nil { | ||
| 113 | - msg = protocol.NewResponseMessage(2, "") | ||
| 114 | - return | ||
| 115 | - } | 112 | + request.PageNumber, _ = controller.GetInt("pageNumber") |
| 113 | + request.PageSize, _ = controller.GetInt("pageSize") | ||
| 114 | + request.SearchByText = controller.GetString("searchByText") | ||
| 116 | header := controller.GetRequestHeader(controller.Ctx) | 115 | header := controller.GetRequestHeader(controller.Ctx) |
| 117 | data, err := svr.ListUser(header, request) | 116 | data, err := svr.ListUser(header, request) |
| 118 | if err != nil { | 117 | if err != nil { |
| @@ -6,9 +6,9 @@ import ( | @@ -6,9 +6,9 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | func init() { | 8 | func init() { |
| 9 | - beego.Router("/access/", &controllers.AccessController{}, "POST:CreateAccess") | ||
| 10 | - beego.Router("/access/:accessId", &controllers.AccessController{}, "PUT:UpdateAccess") | ||
| 11 | - beego.Router("/access/:accessId", &controllers.AccessController{}, "GET:GetAccess") | ||
| 12 | - beego.Router("/access/:accessId", &controllers.AccessController{}, "DELETE:DeleteAccess") | ||
| 13 | - beego.Router("/access/", &controllers.AccessController{}, "GET:ListAccess") | 9 | + beego.Router("/v1/access/", &controllers.AccessController{}, "POST:CreateAccess") |
| 10 | + beego.Router("/v1/access/:accessId", &controllers.AccessController{}, "PUT:UpdateAccess") | ||
| 11 | + beego.Router("/v1/access/:accessId", &controllers.AccessController{}, "GET:GetAccess") | ||
| 12 | + beego.Router("/v1/access/:accessId", &controllers.AccessController{}, "DELETE:DeleteAccess") | ||
| 13 | + beego.Router("/v1/access/", &controllers.AccessController{}, "GET:ListAccess") | ||
| 14 | } | 14 | } |
| @@ -6,9 +6,9 @@ import ( | @@ -6,9 +6,9 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | func init() { | 8 | func init() { |
| 9 | - beego.Router("/auth/login", &controllers.AuthController{}, "post:Login") | ||
| 10 | - beego.Router("/auth/logout", &controllers.AuthController{}, "post:Logout") | ||
| 11 | - beego.Router("/auth/profile", &controllers.AuthController{}, "post:Profile") | ||
| 12 | - beego.Router("/auth/captcha-init", &controllers.AuthController{}, "post:CaptchaInit") | ||
| 13 | - beego.Router("/auth/changePassword", &controllers.AuthController{}, "post:ChangePassword") | 9 | + beego.Router("/v1/auth/login", &controllers.AuthController{}, "post:Login") |
| 10 | + beego.Router("/v1/auth/logout", &controllers.AuthController{}, "post:Logout") | ||
| 11 | + beego.Router("/v1/auth/profile", &controllers.AuthController{}, "post:Profile") | ||
| 12 | + beego.Router("/v1/auth/captcha-init", &controllers.AuthController{}, "post:CaptchaInit") | ||
| 13 | + beego.Router("/v1/auth/changePassword", &controllers.AuthController{}, "post:ChangePassword") | ||
| 14 | } | 14 | } |
| @@ -6,9 +6,9 @@ import ( | @@ -6,9 +6,9 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | func init() { | 8 | func init() { |
| 9 | - beego.Router("/menu/", &controllers.MenuController{}, "POST:CreateMenu") | ||
| 10 | - beego.Router("/menu/:menuId", &controllers.MenuController{}, "PUT:UpdateMenu") | ||
| 11 | - beego.Router("/menu/:menuId", &controllers.MenuController{}, "GET:GetMenu") | ||
| 12 | - beego.Router("/menu/:menuId", &controllers.MenuController{}, "DELETE:DeleteMenu") | ||
| 13 | - beego.Router("/menu/", &controllers.MenuController{}, "GET:ListMenu") | 9 | + beego.Router("/v1/menu/", &controllers.MenuController{}, "POST:CreateMenu") |
| 10 | + beego.Router("/v1/menu/:menuId", &controllers.MenuController{}, "PUT:UpdateMenu") | ||
| 11 | + beego.Router("/v1/menu/:menuId", &controllers.MenuController{}, "GET:GetMenu") | ||
| 12 | + beego.Router("/v1/menu/:menuId", &controllers.MenuController{}, "DELETE:DeleteMenu") | ||
| 13 | + beego.Router("/v1/menu/", &controllers.MenuController{}, "GET:ListMenu") | ||
| 14 | } | 14 | } |
| @@ -6,11 +6,11 @@ import ( | @@ -6,11 +6,11 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | func init() { | 8 | func init() { |
| 9 | - beego.Router("/project_module_files/", &controllers.ProjectModuleFilesController{}, "POST:CreateProjectModuleFiles") | ||
| 10 | - beego.Router("/project_module_files/:projectModuleFilesId", &controllers.ProjectModuleFilesController{}, "PUT:UpdateProjectModuleFiles") | ||
| 11 | - beego.Router("/project_module_files/:projectModuleFilesId", &controllers.ProjectModuleFilesController{}, "GET:GetProjectModuleFiles") | ||
| 12 | - beego.Router("/project_module_files/:projectModuleFilesId", &controllers.ProjectModuleFilesController{}, "DELETE:DeleteProjectModuleFiles") | ||
| 13 | - beego.Router("/project_module_files/", &controllers.ProjectModuleFilesController{}, "GET:ListProjectModuleFiles") | 9 | + beego.Router("/v1/project_module_files/", &controllers.ProjectModuleFilesController{}, "POST:CreateProjectModuleFiles") |
| 10 | + beego.Router("/v1/project_module_files/:projectModuleFilesId", &controllers.ProjectModuleFilesController{}, "PUT:UpdateProjectModuleFiles") | ||
| 11 | + beego.Router("/v1/project_module_files/:projectModuleFilesId", &controllers.ProjectModuleFilesController{}, "GET:GetProjectModuleFiles") | ||
| 12 | + beego.Router("/v1/project_module_files/:projectModuleFilesId", &controllers.ProjectModuleFilesController{}, "DELETE:DeleteProjectModuleFiles") | ||
| 13 | + beego.Router("/v1/project_module_files/", &controllers.ProjectModuleFilesController{}, "GET:ListProjectModuleFiles") | ||
| 14 | 14 | ||
| 15 | - beego.Router("/project_module_files/import", &controllers.ProjectModuleFilesController{}, "post:Import") | 15 | + beego.Router("/v1/project_module_files/import", &controllers.ProjectModuleFilesController{}, "post:Import") |
| 16 | } | 16 | } |
| @@ -6,9 +6,9 @@ import ( | @@ -6,9 +6,9 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | func init() { | 8 | func init() { |
| 9 | - beego.Router("/project_module/", &controllers.ProjectModuleController{}, "POST:CreateProjectModule") | ||
| 10 | - beego.Router("/project_module/:projectModuleId", &controllers.ProjectModuleController{}, "PUT:UpdateProjectModule") | ||
| 11 | - beego.Router("/project_module/:projectModuleId", &controllers.ProjectModuleController{}, "GET:GetProjectModule") | ||
| 12 | - beego.Router("/project_module/:projectModuleId", &controllers.ProjectModuleController{}, "DELETE:DeleteProjectModule") | ||
| 13 | - beego.Router("/project_module/", &controllers.ProjectModuleController{}, "GET:ListProjectModule") | 9 | + beego.Router("/v1/project_module/", &controllers.ProjectModuleController{}, "POST:CreateProjectModule") |
| 10 | + beego.Router("/v1/project_module/:projectModuleId", &controllers.ProjectModuleController{}, "PUT:UpdateProjectModule") | ||
| 11 | + beego.Router("/v1/project_module/:projectModuleId", &controllers.ProjectModuleController{}, "GET:GetProjectModule") | ||
| 12 | + beego.Router("/v1/project_module/:projectModuleId", &controllers.ProjectModuleController{}, "DELETE:DeleteProjectModule") | ||
| 13 | + beego.Router("/v1/project_module/", &controllers.ProjectModuleController{}, "GET:ListProjectModule") | ||
| 14 | } | 14 | } |
| @@ -6,9 +6,9 @@ import ( | @@ -6,9 +6,9 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | func init() { | 8 | func init() { |
| 9 | - beego.Router("/project_module_version/", &controllers.ProjectModuleVersionController{}, "POST:CreateProjectModuleVersion") | ||
| 10 | - beego.Router("/project_module_version/:projectModuleVersionId", &controllers.ProjectModuleVersionController{}, "PUT:UpdateProjectModuleVersion") | ||
| 11 | - beego.Router("/project_module_version/:projectModuleVersionId", &controllers.ProjectModuleVersionController{}, "GET:GetProjectModuleVersion") | ||
| 12 | - beego.Router("/project_module_version/:projectModuleVersionId", &controllers.ProjectModuleVersionController{}, "DELETE:DeleteProjectModuleVersion") | ||
| 13 | - beego.Router("/project_module_version/", &controllers.ProjectModuleVersionController{}, "GET:ListProjectModuleVersion") | 9 | + beego.Router("/v1/project_module_version/", &controllers.ProjectModuleVersionController{}, "POST:CreateProjectModuleVersion") |
| 10 | + beego.Router("/v1/project_module_version/:projectModuleVersionId", &controllers.ProjectModuleVersionController{}, "PUT:UpdateProjectModuleVersion") | ||
| 11 | + beego.Router("/v1/project_module_version/:projectModuleVersionId", &controllers.ProjectModuleVersionController{}, "GET:GetProjectModuleVersion") | ||
| 12 | + beego.Router("/v1/project_module_version/:projectModuleVersionId", &controllers.ProjectModuleVersionController{}, "DELETE:DeleteProjectModuleVersion") | ||
| 13 | + beego.Router("/v1/project_module_version/", &controllers.ProjectModuleVersionController{}, "GET:ListProjectModuleVersion") | ||
| 14 | } | 14 | } |
| @@ -6,7 +6,7 @@ import ( | @@ -6,7 +6,7 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | func init() { | 8 | func init() { |
| 9 | - beego.Router("/rbac/access", &controllers.RbacController{}, "get:Access") | ||
| 10 | - beego.Router("/rbac/roleAccess/:roleId", &controllers.RbacController{}, "get:RoleAccess") | ||
| 11 | - beego.Router("/rbac/setRoleAccess", &controllers.RbacController{}, "post:SetRoleAccess") | 9 | + beego.Router("/v1/rbac/access", &controllers.RbacController{}, "get:Access") |
| 10 | + beego.Router("/v1/rbac/roleAccess/:roleId", &controllers.RbacController{}, "get:RoleAccess") | ||
| 11 | + beego.Router("/v1/rbac/setRoleAccess", &controllers.RbacController{}, "post:SetRoleAccess") | ||
| 12 | } | 12 | } |
| @@ -6,9 +6,9 @@ import ( | @@ -6,9 +6,9 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | func init() { | 8 | func init() { |
| 9 | - beego.Router("/role/", &controllers.RoleController{}, "POST:CreateRole") | ||
| 10 | - beego.Router("/role/:roleId", &controllers.RoleController{}, "PUT:UpdateRole") | ||
| 11 | - beego.Router("/role/:roleId", &controllers.RoleController{}, "GET:GetRole") | ||
| 12 | - beego.Router("/role/:roleId", &controllers.RoleController{}, "DELETE:DeleteRole") | ||
| 13 | - beego.Router("/role/", &controllers.RoleController{}, "GET:ListRole") | 9 | + beego.Router("/v1/role/", &controllers.RoleController{}, "POST:CreateRole") |
| 10 | + beego.Router("/v1/role/:roleId", &controllers.RoleController{}, "PUT:UpdateRole") | ||
| 11 | + beego.Router("/v1/role/:roleId", &controllers.RoleController{}, "GET:GetRole") | ||
| 12 | + beego.Router("/v1/role/:roleId", &controllers.RoleController{}, "DELETE:DeleteRole") | ||
| 13 | + beego.Router("/v1/role/", &controllers.RoleController{}, "GET:ListRole") | ||
| 14 | } | 14 | } |
| @@ -6,9 +6,9 @@ import ( | @@ -6,9 +6,9 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | func init() { | 8 | func init() { |
| 9 | - beego.Router("/user/", &controllers.UserController{}, "POST:CreateUser") | ||
| 10 | - beego.Router("/user/:userId", &controllers.UserController{}, "PUT:UpdateUser") | ||
| 11 | - beego.Router("/user/:userId", &controllers.UserController{}, "GET:GetUser") | ||
| 12 | - beego.Router("/user/:userId", &controllers.UserController{}, "DELETE:DeleteUser") | ||
| 13 | - beego.Router("/user/", &controllers.UserController{}, "GET:ListUser") | 9 | + beego.Router("/v1/user/", &controllers.UserController{}, "POST:CreateUser") |
| 10 | + beego.Router("/v1/user/:userId", &controllers.UserController{}, "PUT:UpdateUser") | ||
| 11 | + beego.Router("/v1/user/:userId", &controllers.UserController{}, "GET:GetUser") | ||
| 12 | + beego.Router("/v1/user/:userId", &controllers.UserController{}, "DELETE:DeleteUser") | ||
| 13 | + beego.Router("/v1/user/", &controllers.UserController{}, "GET:ListUser") | ||
| 14 | } | 14 | } |
| @@ -7,9 +7,9 @@ import ( | @@ -7,9 +7,9 @@ import ( | ||
| 7 | 7 | ||
| 8 | type CreateProjectModuleRequest struct { | 8 | type CreateProjectModuleRequest struct { |
| 9 | // 项目名称 | 9 | // 项目名称 |
| 10 | - ProjectName string `json:"projectName,omitempty"` | 10 | + ProjectName string `json:"projectName,omitempty" valid:"Required"` |
| 11 | // 项目唯一键值 | 11 | // 项目唯一键值 |
| 12 | - ProjectKey string `json:"projectKey,omitempty"` | 12 | + ProjectKey string `json:"projectKey,omitempty" valid:"Required"` |
| 13 | // 项目描述信息 | 13 | // 项目描述信息 |
| 14 | Description string `json:"description,omitempty"` | 14 | Description string `json:"description,omitempty"` |
| 15 | } | 15 | } |
| @@ -7,7 +7,7 @@ import ( | @@ -7,7 +7,7 @@ import ( | ||
| 7 | 7 | ||
| 8 | type DeleteProjectModuleRequest struct { | 8 | type DeleteProjectModuleRequest struct { |
| 9 | // 唯一标识 | 9 | // 唯一标识 |
| 10 | - Id int64 `json:"id,omitempty"` | 10 | + Id int64 `json:"id,omitempty" valid:"Required"` |
| 11 | } | 11 | } |
| 12 | 12 | ||
| 13 | func (DeleteProjectModuleRequest *DeleteProjectModuleRequest) ValidateCommand() error { | 13 | func (DeleteProjectModuleRequest *DeleteProjectModuleRequest) ValidateCommand() error { |
| @@ -6,13 +6,14 @@ import ( | @@ -6,13 +6,14 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | type UpdateProjectModuleRequest struct { | 8 | type UpdateProjectModuleRequest struct { |
| 9 | + Id int64 `json:"-" valid:"Required"` | ||
| 9 | // 项目名称 | 10 | // 项目名称 |
| 10 | - ProjectName string `json:"projectName,omitempty"` | 11 | + ProjectName string `json:"projectName,omitempty" valid:"Required"` |
| 11 | // 项目唯一键值 | 12 | // 项目唯一键值 |
| 12 | - ProjectKey string `json:"projectKey,omitempty"` | 13 | + ProjectKey string `json:"projectKey,omitempty" valid:"Required"` |
| 13 | // 项目描述信息 | 14 | // 项目描述信息 |
| 14 | Description string `json:"description,omitempty"` | 15 | Description string `json:"description,omitempty"` |
| 15 | - // 状态 0:正常 1:删除 | 16 | + // 状态 1:正常 2:删除 |
| 16 | Status int `json:"status,omitempty"` | 17 | Status int `json:"status,omitempty"` |
| 17 | } | 18 | } |
| 18 | 19 |
| @@ -6,6 +6,8 @@ import ( | @@ -6,6 +6,8 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | type ListProjectModuleRequest struct { | 8 | type ListProjectModuleRequest struct { |
| 9 | + PageSize int `json:"pageSize" valid:"Required"` | ||
| 10 | + PageNumber int `json:"pageNumber" valid:"Required"` | ||
| 9 | } | 11 | } |
| 10 | 12 | ||
| 11 | func (ListProjectModuleRequest *ListProjectModuleRequest) ValidateCommand() error { | 13 | func (ListProjectModuleRequest *ListProjectModuleRequest) ValidateCommand() error { |
| @@ -3,6 +3,7 @@ package project_module | @@ -3,6 +3,7 @@ package project_module | ||
| 3 | import ( | 3 | import ( |
| 4 | "fmt" | 4 | "fmt" |
| 5 | "github.com/astaxie/beego/validation" | 5 | "github.com/astaxie/beego/validation" |
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | ||
| 6 | ) | 7 | ) |
| 7 | 8 | ||
| 8 | type ListProjectModuleResponse struct { | 9 | type ListProjectModuleResponse struct { |
| @@ -21,3 +22,20 @@ func (ListProjectModuleResponse *ListProjectModuleResponse) ValidateCommand() er | @@ -21,3 +22,20 @@ func (ListProjectModuleResponse *ListProjectModuleResponse) ValidateCommand() er | ||
| 21 | } | 22 | } |
| 22 | return nil | 23 | return nil |
| 23 | } | 24 | } |
| 25 | + | ||
| 26 | +func (ListProjectModuleResponse *ListProjectModuleResponse) LoadDto(projectModules []*domain.ProjectModule) interface{} { | ||
| 27 | + retSlice := make([]map[string]interface{}, 0) | ||
| 28 | + for _, m := range projectModules { | ||
| 29 | + retMap := map[string]interface{}{ | ||
| 30 | + "id": m.Id, | ||
| 31 | + "projectName": m.ProjectName, | ||
| 32 | + "projectKey": m.ProjectKey, | ||
| 33 | + "description": m.Description, | ||
| 34 | + "status": m.Status, | ||
| 35 | + "createTime": m.CreateTime.Local().Format("2006-01-02 15:04:05"), | ||
| 36 | + "updateTime": m.UpdateTime.Local().Format("2006-01-02 15:04:05"), | ||
| 37 | + } | ||
| 38 | + retSlice = append(retSlice, retMap) | ||
| 39 | + } | ||
| 40 | + return retSlice | ||
| 41 | +} |
| @@ -6,16 +6,17 @@ import ( | @@ -6,16 +6,17 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | type UpdateProjectModuleFilesRequest struct { | 8 | type UpdateProjectModuleFilesRequest struct { |
| 9 | + Id int64 | ||
| 10 | + // 父级编号 | ||
| 11 | + ParentId int64 `json:"parentId"` | ||
| 9 | // 文件类型 1:文件夹 2:文件 | 12 | // 文件类型 1:文件夹 2:文件 |
| 10 | - FileType int `json:"fileType,omitempty"` | 13 | + //FileType int `json:"fileType,omitempty"` |
| 11 | // 文件名称 | 14 | // 文件名称 |
| 12 | FileName string `json:"fileName,omitempty"` | 15 | FileName string `json:"fileName,omitempty"` |
| 13 | - // 文件键值 | ||
| 14 | - FileKey string `json:"fileKey,omitempty"` | ||
| 15 | // 代码块 | 16 | // 代码块 |
| 16 | CodeBlock string `json:"codeBlock,omitempty"` | 17 | CodeBlock string `json:"codeBlock,omitempty"` |
| 17 | // 排序 | 18 | // 排序 |
| 18 | - Sort int `json:"sort,omitempty"` | 19 | + //Sort int `json:"sort,omitempty"` |
| 19 | // 备注信息 | 20 | // 备注信息 |
| 20 | Remark string `json:"remark,omitempty"` | 21 | Remark string `json:"remark,omitempty"` |
| 21 | } | 22 | } |
| @@ -10,11 +10,23 @@ type ListProjectModuleFilesRequest struct { | @@ -10,11 +10,23 @@ type ListProjectModuleFilesRequest struct { | ||
| 10 | ProjectModuleId int64 `json:"projectModuleId,omitempty" valid:"Required"` | 10 | ProjectModuleId int64 `json:"projectModuleId,omitempty" valid:"Required"` |
| 11 | // 项目模块版本编号 | 11 | // 项目模块版本编号 |
| 12 | ProjectModuleVersionId int64 `json:"projectModuleVersionId,omitempty" valid:"Required"` | 12 | ProjectModuleVersionId int64 `json:"projectModuleVersionId,omitempty" valid:"Required"` |
| 13 | + // 返回结构类型 tree list 默认list | ||
| 14 | + StructType string `json:"structType,omitempty"` | ||
| 15 | + // 按父级Id排序 | ||
| 16 | + SortByParentId string `json:"sortByParentId,omitempty"` | ||
| 17 | + // 按Id排序 | ||
| 18 | + SortById string `json:"sortById,omitempty"` | ||
| 13 | } | 19 | } |
| 14 | 20 | ||
| 15 | func (ListProjectModuleFilesRequest *ListProjectModuleFilesRequest) ValidateCommand() error { | 21 | func (ListProjectModuleFilesRequest *ListProjectModuleFilesRequest) ValidateCommand() error { |
| 16 | valid := validation.Validation{} | 22 | valid := validation.Validation{} |
| 17 | b, err := valid.Valid(ListProjectModuleFilesRequest) | 23 | b, err := valid.Valid(ListProjectModuleFilesRequest) |
| 24 | + if len(ListProjectModuleFilesRequest.SortByParentId) == 0 { | ||
| 25 | + ListProjectModuleFilesRequest.SortByParentId = "ASC" | ||
| 26 | + } | ||
| 27 | + if len(ListProjectModuleFilesRequest.SortById) == 0 { | ||
| 28 | + ListProjectModuleFilesRequest.SortById = "ASC" | ||
| 29 | + } | ||
| 18 | if err != nil { | 30 | if err != nil { |
| 19 | return err | 31 | return err |
| 20 | } | 32 | } |
| @@ -3,6 +3,7 @@ package project_module_files | @@ -3,6 +3,7 @@ package project_module_files | ||
| 3 | import ( | 3 | import ( |
| 4 | "fmt" | 4 | "fmt" |
| 5 | "github.com/astaxie/beego/validation" | 5 | "github.com/astaxie/beego/validation" |
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | ||
| 6 | ) | 7 | ) |
| 7 | 8 | ||
| 8 | type ListProjectModuleFilesResponse struct { | 9 | type ListProjectModuleFilesResponse struct { |
| @@ -21,3 +22,47 @@ func (ListProjectModuleFilesResponse *ListProjectModuleFilesResponse) ValidateCo | @@ -21,3 +22,47 @@ func (ListProjectModuleFilesResponse *ListProjectModuleFilesResponse) ValidateCo | ||
| 21 | } | 22 | } |
| 22 | return nil | 23 | return nil |
| 23 | } | 24 | } |
| 25 | + | ||
| 26 | +type ModuleFiles struct { | ||
| 27 | + *ModuleFile | ||
| 28 | + List []*ModuleFiles `json:"list"` | ||
| 29 | +} | ||
| 30 | +type ModuleFile struct { | ||
| 31 | + // 唯一标识 | ||
| 32 | + Id int64 `json:"id"` | ||
| 33 | + // 项目编号 | ||
| 34 | + //ProjectModuleId int64 `json:"projectModuleId"` | ||
| 35 | + // 项目版本编号 | ||
| 36 | + //ProjectModuleVersionId int64 `json:"projectModuleVersionId"` | ||
| 37 | + // 文件类型 1:文件夹 2:文件 | ||
| 38 | + FileType int `json:"fileType"` | ||
| 39 | + // 文件名称 | ||
| 40 | + FileName string `json:"fileName"` | ||
| 41 | + // 文件键值 | ||
| 42 | + //FileKey string `json:"fileKey"` | ||
| 43 | + // 代码块 | ||
| 44 | + CodeBlock string `json:"-"` | ||
| 45 | + // 父级编号 | ||
| 46 | + ParentId int64 `json:"parentId"` | ||
| 47 | + // 排序 | ||
| 48 | + //Sort int `json:"sort"` | ||
| 49 | + // 备注信息 | ||
| 50 | + //Remark string `json:"remark"` | ||
| 51 | + // 创建时间 | ||
| 52 | + //CreateTime time.Time `json:"createTime"` | ||
| 53 | + // 更新时间 | ||
| 54 | + //UpdateTime time.Time `json:"updateTime"` | ||
| 55 | + // 当前文件相对路径 a/b/c | ||
| 56 | + Path string `json:"path"` | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | +func NewModuleFile(m *domain.ProjectModuleFiles) *ModuleFile { | ||
| 60 | + return &ModuleFile{ | ||
| 61 | + Id: m.Id, | ||
| 62 | + FileType: m.FileType, | ||
| 63 | + FileName: m.FileName, | ||
| 64 | + ParentId: m.ParentId, | ||
| 65 | + Path: m.Path, | ||
| 66 | + CodeBlock: m.CodeBlock, | ||
| 67 | + } | ||
| 68 | +} |
| @@ -6,14 +6,15 @@ import ( | @@ -6,14 +6,15 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | type ListUserRequest struct { | 8 | type ListUserRequest struct { |
| 9 | - PageSize int `json:"pageSize"` | ||
| 10 | - PageNumber int `json:"pageNumber"` | 9 | + SearchByText string `json:"searchByText,omitempty"` //按名称搜索 |
| 10 | + PageSize int `json:"pageSize" valid:"Required"` | ||
| 11 | + PageNumber int `json:"pageNumber" valid:"Required"` | ||
| 11 | } | 12 | } |
| 12 | 13 | ||
| 13 | func (ListUserRequest *ListUserRequest) ValidateCommand() error { | 14 | func (ListUserRequest *ListUserRequest) ValidateCommand() error { |
| 14 | valid := validation.Validation{} | 15 | valid := validation.Validation{} |
| 15 | - if ListUserRequest.PageNumber == 0 { | ||
| 16 | - ListUserRequest.PageNumber = 20 | 16 | + if ListUserRequest.PageSize == 0 { |
| 17 | + ListUserRequest.PageSize = 20 | ||
| 17 | } | 18 | } |
| 18 | b, err := valid.Valid(ListUserRequest) | 19 | b, err := valid.Valid(ListUserRequest) |
| 19 | if err != nil { | 20 | if err != nil { |
-
请 注册 或 登录 后发表评论