正在显示
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 { |
-
请 注册 或 登录 后发表评论