Compare commits
	
		
			21 Commits
		
	
	
		
			main
			...
			gorm_templ
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b171122a32 | |||
| 417d0671de | |||
| 5c8182cdf9 | |||
| 759863f1aa | |||
| 6c3b4ec367 | |||
| a8bc73ae99 | |||
| 90d1ef301d | |||
| 346ade21f1 | |||
| 396192ce6e | |||
|   | b6aff77084 | ||
| 3bd4c5d672 | |||
| 1b72f51e4a | |||
| 3150ba80bc | |||
| 8bdf9e9b57 | |||
| b71e718308 | |||
| 96d537c044 | |||
| 38ee553cf3 | |||
| 68606c76f9 | |||
| 461531c308 | |||
| 371b89ee8d | |||
| f100427f8b | 
| @ -1,10 +1,16 @@ | |||||||
| log/ |  | ||||||
| 
 |  | ||||||
| LICENSE |  | ||||||
| 
 |  | ||||||
| *.exe | *.exe | ||||||
| main | main | ||||||
| testpaper | management | ||||||
|  | 
 | ||||||
|  | configs/ | ||||||
|  | upload/ | ||||||
|  | doc/ | ||||||
|  | logs/ | ||||||
|  | log/ | ||||||
| 
 | 
 | ||||||
| modd.conf | modd.conf | ||||||
| *.yaml | *.yaml | ||||||
|  | LICENSE | ||||||
|  | README.md | ||||||
|  | Makefile | ||||||
|  | .gitignore | ||||||
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @ -29,7 +29,7 @@ go.work | |||||||
| *.log | *.log | ||||||
| 
 | 
 | ||||||
| *.yaml | *.yaml | ||||||
| !config.dev.yaml | !configs/config.dev.yaml | ||||||
| !sqlc.yaml | !sqlc.yaml | ||||||
| 
 | 
 | ||||||
| upload/ | public/ | ||||||
|  | |||||||
							
								
								
									
										16
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						| @ -1,16 +0,0 @@ | |||||||
| # Build Stage |  | ||||||
| FROM golang:1.24.0-alpine3.21 AS builder |  | ||||||
| ENV GO111MODULE=on \ |  | ||||||
|     GOPROXY=https://goproxy.cn,direct |  | ||||||
| WORKDIR /app |  | ||||||
| COPY ../ . |  | ||||||
| RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o testpaper main.go |  | ||||||
| 
 |  | ||||||
| # Run Stage |  | ||||||
| FROM zc1185230223/alpine:3.21 |  | ||||||
| WORKDIR /app |  | ||||||
| COPY --from=builder /app/testpaper . |  | ||||||
| RUN touch config.yaml |  | ||||||
| 
 |  | ||||||
| EXPOSE 15001 |  | ||||||
| CMD ["/app/testpaper", "api", "-c", "config.yaml"] |  | ||||||
							
								
								
									
										55
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						| @ -1,48 +1,57 @@ | |||||||
| DB_URL=postgresql://root:secret@localhost:5432/management?sslmode=disable | DB_URL=postgresql://root:secret@localhost:5432/management?sslmode=disable | ||||||
| 
 | 
 | ||||||
|  | .PHONY: network | ||||||
| network: | network: | ||||||
| 	docker network create management | 	docker network create management | ||||||
| 
 | 
 | ||||||
|  | .PHONY: redis | ||||||
| redis: | redis: | ||||||
| 	docker run --network management --name rd -d -p 6379:6379 redis:7.2.4 --requirepass "secret" | 	docker run --network management --name rd -d -p 6379:6379 redis:7.4-alpine --requirepass "secret" | ||||||
| 
 | 
 | ||||||
|  | .PHONY: postgres | ||||||
| postgres: | postgres: | ||||||
| 	docker run --name postgres --network management -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=secret -d postgres:16-alpine | 	docker run --name postgres --network management -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=secret -d postgres:17-alpine | ||||||
| 
 | 
 | ||||||
| createdb: | .PHONY: create_db | ||||||
|  | create_db: | ||||||
| 	docker exec -it postgres createdb --username=root --owner=root management | 	docker exec -it postgres createdb --username=root --owner=root management | ||||||
| 
 | 
 | ||||||
| dropdb: | .PHONY: drop_db | ||||||
|  | drop_db: | ||||||
| 	docker exec -it postgres dropdb management | 	docker exec -it postgres dropdb management | ||||||
| 
 | 
 | ||||||
|  | .PHONY: psql | ||||||
| psql: | psql: | ||||||
| 	docker exec -it postgres psql -U root -d management | 	docker exec -it postgres psql -U root -d management | ||||||
| 
 | 
 | ||||||
| migrateinit: | .PHONY: migrate_init | ||||||
| 	migrate create -ext sql -dir internal/db/migration -seq init_schema | migrate_init: | ||||||
|  | 	migrate create -ext sql -dir internal/erpserver/repository/migration -seq init_schema | ||||||
| 
 | 
 | ||||||
| migrateup: | .PHONY: migrate_up | ||||||
| 	migrate -path internal/db/migration -database "$(DB_URL)" -verbose up | migrate_up: | ||||||
|  | 	migrate -path internal/erpserver/repository/migration -database "$(DB_URL)" -verbose up | ||||||
| 
 | 
 | ||||||
| migratedown: | .PHONY: migrate_down | ||||||
| 	migrate -path internal/db/migration -database "$(DB_URL)" -verbose down | migrate_down: | ||||||
| 
 | 	migrate -path internal/erpserver/repository/migration -database "$(DB_URL)" -verbose down | ||||||
| db: |  | ||||||
| 	sql2dbml --postgres doc/ss.sql -o doc/db.dbm |  | ||||||
| 
 |  | ||||||
| db_docs: |  | ||||||
| 	dbdocs build doc/db.dbml |  | ||||||
| 
 | 
 | ||||||
|  | .PHONY: db_schema | ||||||
| db_schema: | db_schema: | ||||||
| 	dbml2sql --postgres -o internal/db/migration/000001_init_schema.up.sql doc/db.dbml | 	dbml2sql --postgres -o internal/erpserver/repository/migration/000001_init_schema.up.sql doc/db.dbml | ||||||
| 
 | 
 | ||||||
| sqlc: | .PHONY: wire | ||||||
| 	sqlc generate | wire: | ||||||
|  | 	wire ./... | ||||||
| 
 | 
 | ||||||
|  | .PHONY: templ | ||||||
|  | templ: | ||||||
|  | 	templ generate | ||||||
|  | 
 | ||||||
|  | .PHONY: test | ||||||
| test: | test: | ||||||
| 	go test -v -cover ./... | 	go test -v -cover ./... | ||||||
| 
 | 
 | ||||||
| server: | .PHONY: ab | ||||||
| 	modd | ab: | ||||||
| 	 | 	ab -c 200 -n 5000 -H "Cookie: token=7a-zLwSNZmSF8LnMG-qC90I_pjs89tyaK_XR8HYBMZA" http://localhost:9001/system/role/list | ||||||
| .PHONY: network redis postgres createdb dropdb psql migrateinit migrateup migratedown db_docs db_schema test server |  | ||||||
|  | |||||||
| @ -183,7 +183,7 @@ xm-select .xm-body .xm-option.selected .xm-option-icon { color: var(--global-pri | |||||||
| 
 | 
 | ||||||
| .own-pannel { | .own-pannel { | ||||||
|     position: relative; |     position: relative; | ||||||
|     border: 1px solid #eee; |     /*border: 1px solid #eee;*/ | ||||||
|     border-radius: 2px; |     border-radius: 2px; | ||||||
|     /*box-shadow: 1px 1px 4px rgb(0 0 0 / 8%);*/ |     /*box-shadow: 1px 1px 4px rgb(0 0 0 / 8%);*/ | ||||||
|     background-color: #fff; |     background-color: #fff; | ||||||
| @ -206,3 +206,36 @@ xm-select .xm-body .xm-option.selected .xm-option-icon { color: var(--global-pri | |||||||
|     height: 100%; |     height: 100%; | ||||||
|     overflow-y: auto; |     overflow-y: auto; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | .userinfo { | ||||||
|  |     display: flex; | ||||||
|  |     padding: 20px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .userinfo .logo { | ||||||
|  |     width: 60px; | ||||||
|  |     height: 60px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .userinfo .logo img { | ||||||
|  |     display:block; | ||||||
|  |     width: 60px; | ||||||
|  |     height: 60px; | ||||||
|  |     border-radius: 50%; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .userinfo .info { | ||||||
|  |     margin-left: 20px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .userinfo .info p { | ||||||
|  |     font-size: 12px; | ||||||
|  |     color: #666666; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .userinfo .info .name { | ||||||
|  |     font-size: 15px; | ||||||
|  |     color: #333333; | ||||||
|  |     margin-bottom: 8px; | ||||||
|  |     margin-top: 5px; | ||||||
|  | } | ||||||
| Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB | 
| Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.4 KiB | 
| Before Width: | Height: | Size: 9.9 MiB After Width: | Height: | Size: 9.9 MiB | 
| Before Width: | Height: | Size: 197 KiB After Width: | Height: | Size: 197 KiB | 
| Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB | 
| Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB | 
| Before Width: | Height: | Size: 322 KiB After Width: | Height: | Size: 322 KiB |