13
13
- 切片
14
14
- 日志
15
15
- 定时任务
16
- ...
16
+ - ...
17
17
18
18
19
19
20
20
## 更新记录
21
- - v1.0.5:json、xml、log
22
- - v1.0.4:datatime、http、config、crypto、uuid/ulid
23
- - v1.0.3:加载配置
24
- - v1.0.1:雪花算法
25
- - v1.0.0:bean属性拷贝
21
+ - v1.1.7:io/file、io/excel
22
+ - v1.0.6:id/random、job/cron
23
+ - v1.0.5:io/json、io/xml、log
24
+ - v1.0.4:datatime、http、config、crypto、id/uuid、id/ulid
25
+ - v1.0.3:config
26
+ - v1.0.2:id/snowflake
27
+ - v1.0.1:id/snowflake
28
+ - v1.0.0:bean
26
29
27
30
28
31
@@ -39,7 +42,6 @@ go get -u github.com/wegoteam/wepkg@latest
39
42
- 分页
40
43
41
44
42
-
43
45
### config
44
46
加载配置:默认加载环境变量、配置文件、命令行参数
45
47
- 默认配置文件加载顺序:命令行参数 > 默认配置文件目录(./config/config.yaml)
@@ -175,10 +177,10 @@ func TestTime(t *testing.T) {
175
177
` ` `
176
178
177
179
# ## bean
178
- -[x] 属性复制
179
- -[x] 结构体转map
180
- -[x] map转结构体
181
- -[x] 结构体字段、tag、值获取
180
+ - [x] 属性复制
181
+ - [x] 结构体转map
182
+ - [x] map转结构体
183
+ - [x] 结构体字段、tag、值获取
182
184
` ` ` go
183
185
type A struct {
184
186
Age int ` json:" age" `
@@ -366,6 +368,17 @@ func TestUUID(t *testing.T) {
366
368
}
367
369
` ` `
368
370
371
+ # ### random
372
+ 随机字符串,随机数字
373
+ ` ` ` go
374
+ func TestRandom(t * testing.T) {
375
+ randomStr := rand.RandomStr(10)
376
+ randomNum := rand.RandomNum(10)
377
+ fmt.Printf(" randomStr: %s\n" , randomStr)
378
+ fmt.Printf(" randomNum: %s\n" , randomNum)
379
+ }
380
+ ` ` `
381
+
369
382
# ## log
370
383
日志记录:支持日志文件切割,日志级别,日志格式化,日志文件压缩,日志文件清理
371
384
@@ -556,14 +569,13 @@ func TestPost(t *testing.T) {
556
569
` ` `
557
570
558
571
# ## io
559
- -[ ] 文件
560
- -[x] json
561
- -[x] xml
562
- -[ ] csv
563
- -[ ] excel
564
- -[ ] doc
565
- -[x] 压缩字符串
566
- -[ ] 压缩文件
572
+ - [x] 文件
573
+ - [x] json
574
+ - [x] xml
575
+ - [x] excel
576
+ - [ ] doc/pdf
577
+ - [x] 压缩字符串
578
+ - [ ] 压缩文件
567
579
# ### io/json
568
580
json序列化和反序列化
569
581
` ` ` go
@@ -608,14 +620,129 @@ func TestCompress(t *testing.T) {
608
620
}
609
621
` ` `
610
622
611
- 贡献来源:
623
+ # ### io/file
624
+ 文件操作:复制、移动等
625
+ ` ` ` go
626
+ func TestFile(t * testing.T) {
627
+ contentType, ext, parent := file.GetFileType(" ./testdata/a.txt" )
628
+ fmt.Printf(" contentType=%v, ext=%v, parent=%v \n" , contentType, ext, parent)
629
+ fileType := file.GetFileExt(" ./testdata/a.txt" )
630
+ fmt.Printf(" fileType=%v \n" , fileType)
631
+ isOn32bitArch := file.IsOn32bitArch ()
632
+ fmt.Printf(" 是否32位系统架构:%v \n" , isOn32bitArch)
633
+ isOn64bitArch := file.IsOn64bitArch ()
634
+ fmt.Printf(" 是否64位系统架构:%v \n" , isOn64bitArch)
635
+ isOnLinux := file.IsOnLinux ()
636
+ fmt.Printf(" 是否Linux系统:%v \n" , isOnLinux)
637
+ isOnMacOS := file.IsOnMacOS ()
638
+ fmt.Printf(" 是否MacOS系统:%v \n" , isOnMacOS)
639
+ isOnWindows := file.IsOnWindows ()
640
+ fmt.Printf(" 是否Windows系统:%v \n" , isOnWindows)
641
+ //file.ChangeExeDir ()
642
+ existDir := file.ExistDir(" ./testdata" )
643
+ fmt.Printf(" 是否存在目录:%v \n" , existDir)
644
+ existFile := file.ExistFile(" ./testdata/a.txt" )
645
+ fmt.Printf(" 是否存在文件:%v \n" , existFile)
646
+ existSymlink := file.ExistSymlink(" ./testdata/a.txt" )
647
+ fmt.Printf(" 是否存在软连接:%v \n" , existSymlink)
648
+ isDirEmpty, _ := file.IsDirEmpty(" ./testdata" )
649
+ fmt.Printf(" 目录是否为空:%v \n" , isDirEmpty)
650
+ isFileEmpty, _ := file.IsFileEmpty(" ./testdata/a.txt" )
651
+ fmt.Printf(" 文件是否为空:%v \n" , isFileEmpty)
652
+ size, _ := file.GetDirSize(" ./testdata" )
653
+ fmt.Printf(" 目录大小:%v \n" , size)
654
+ fileSize, _ := file.GetFileSize(" ./testdata/a.txt" )
655
+ fmt.Printf(" 文件大小:%v \n" , fileSize)
656
+ symlinkSize, _ := file.GetSymlinkSize(" ./testdata/a.txt" )
657
+ fmt.Printf(" 软连接大小:%v \n" , symlinkSize)
658
+ sameDirEntries, _ := file.SameDirEntries(" ./testdata" , " ./testdata" )
659
+ fmt.Printf(" 目录是否相同:%v \n" , sameDirEntries)
660
+ sameFileContent, _ := file.SameFileContent(" ./testdata/a.txt" , " ./testdata/a.txt" )
661
+ fmt.Printf(" 文件是否相同:%v \n" , sameFileContent)
662
+ sameSymlinkContent, _ := file.SameSymlinkContent(" ./testdata/a.txt" , " ./testdata/a.txt" )
663
+ fmt.Printf(" 软连接是否相同:%v \n" , sameSymlinkContent)
664
+ listDir, _ := file.ListDir(" ./testdata" )
665
+ fmt.Printf(" 目录列表:%v \n" , listDir)
666
+ listFile, _ := file.ListFile(" ./testdata" )
667
+ fmt.Printf(" 文件列表:%v \n" , listFile)
668
+ listSymlink, _ := file.ListSymlink(" ./testdata" )
669
+ fmt.Printf(" 软连接列表:%v \n" , listSymlink)
670
+ err := file.CopyDir(" ./testdata" , " ./testdata2" )
671
+ fmt.Printf(" 复制目录错误:%v \n" , err)
672
+ err = file.CopyFile(" ./testdata/a.txt" , " ./testdata2/a.txt" )
673
+ fmt.Printf(" 复制文件错误:%v \n" , err)
674
+ err = file.CopySymlink(" ./testdata/a.txt" , " ./testdata2/a.txt" )
675
+ fmt.Printf(" 复制软连接错误:%v \n" , err)
676
+ err = file.MoveDir(" ./testdata" , " ./testdata2" )
677
+ fmt.Printf(" 移动目录错误:%v \n" , err)
678
+ err = file.MoveFile(" ./testdata/a.txt" , " ./testdata2/a.txt" )
679
+ fmt.Printf(" 移动文件错误:%v \n" , err)
680
+ err = file.MoveSymlink(" ./testdata/a.txt" , " ./testdata2/a.txt" )
681
+ fmt.Printf(" 移动软连接错误:%v \n" , err)
682
+ listMatch, _ := file.ListMatch(" ./testdata" , file.ListIncludeAll, " *.txt" )
683
+ fmt.Printf(" 匹配列表:%v \n" , listMatch)
684
+ joinPath := file.JoinPath(" ./testdata" , " a.txt" )
685
+ fmt.Printf(" 拼接路径:%v \n" , joinPath)
686
+ exist := file.Exist(" ./testdata/a.txt" )
687
+ fmt.Printf(" 是否存在:%v \n" , exist)
688
+ notExist := file.NotExist(" ./testdata/a.txt" )
689
+ fmt.Printf(" 是否不存在:%v \n" , notExist)
690
+ err = file.MakeDir(" ./testdata2" )
691
+ fmt.Printf(" 创建目录错误:%v \n" , err)
692
+ //根据名称排序
693
+ sort.Stable(file.SortListByName(listFile))
694
+ //根据大小排序
695
+ sort.Stable(file.SortListBySize(listFile))
696
+ //根据修改时间排序
697
+ sort.Stable(file.SortListByModTime(listFile))
698
+ }
699
+ ` ` `
700
+
701
+ # ### io/excel
702
+ excel操作
703
+ ` ` ` go
612
704
613
- https://github.com/spf13/viper
705
+ ` ` `
614
706
615
- https://github.com/redis/go-redis
707
+ # ## job
708
+ 任务调度
709
+ # ### jon/cron
710
+ 定时任务
711
+
712
+ ` ` ` text
713
+ cron表达式语法:
714
+ ┌──分钟(0 - 59)
715
+ │ ┌──小时(0 - 23)
716
+ │ │ ┌──日(1 - 31)
717
+ │ │ │ ┌─月(1 - 12)
718
+ │ │ │ │ ┌─星期(0 - 6,表示从周日到周六)
719
+ │ │ │ │ │
720
+ * * * * * 被执行的命令
721
+ 秒 分 时 日 月 周
722
+ ` ` `
723
+ 使用方法
724
+ ` ` ` go
725
+ func TestCron(t * testing.T) {
726
+ jonID, _ := cron.AddJob(" 0/2 * * * * ?" , JobTest1)
727
+ cron.AddJob(" 0/2 * * * * ?" , JobTest2)
728
+ time.Sleep(time.Second * 10)
729
+ cron.DelJob(jonID)
730
+ time.Sleep(time.Second * 10)
731
+ }
616
732
617
- https://github.com/jeevatkm/go-model
733
+ func JobTest1 () {
734
+ fmt.Println(" JobTest1" )
735
+ }
618
736
619
- https://github.com/go-resty/resty
737
+ func JobTest2 () {
738
+ fmt.Println(" JobTest2" )
739
+ }
740
+ ` ` `
620
741
621
- https://github.com/golang-module/carbon
742
+ # # 引用列表
743
+ - https://github.com/spf13/viper
744
+ - https://github.com/redis/go-redis
745
+ - https://github.com/jeevatkm/go-model
746
+ - https://github.com/go-resty/resty
747
+ - https://github.com/golang-module/carbon
748
+ - https://github.com/qax-os/excelize
0 commit comments