项目作者: swgloomy

项目描述 :
go web端公共类
高级语言: Go
项目地址: git://github.com/swgloomy/gutil.git
创建时间: 2017-03-20T13:27:07Z
项目社区:https://github.com/swgloomy/gutil

开源协议:MIT License

下载


gutil

  1. go 公共类
  2. golang.org/x/crypto 无法下载,可以在下面地中获取所需要的crypto包.并存放到对应的golang.org文件夹的x目录下
  3. https://github.com/swgloomy/crypto.git

文档

  1. 提供common基础类库
  2. asyncThreadProcess.go 提供异步线程处理类,待完善

const.go

  1. 1.WithNanos 时间格式化字符串 2006-01-02 15:04:05

fileProcess.go

  1. 1. CreateFileProcess
  2. 文件夹创建方法 接收参数文件夹路径 返回错误对象
  3. 根据文件夹路径创建文件,如文件存在则不做任何操作
  4. 2. PathExists
  5. 判断文件或文件夹是否存在 接收参数文件或文件夹路径 返回是否存在及错误对象 true表示存在
  6. 3. FileCreateAndWrite
  7. 写文件
  8. 输入参数:文件内容 写入文件的路劲(包含文件名) 是否追加写入
  9. 输出参数:错误对象
  10. 4. ReadFileByLine
  11. 文件读取逐行进行读取
  12. 输入参数: 文件路劲
  13. 输出参数: 字符串数组(数组每一项对应文件的每一行) 错误对象
  14. 5. FileOpen
  15. 文件打开
  16. 输入参数:文件路径 是否追加
  17. 输出参数:文件对象 错误对象
  18. 6. RWFileByWhere
  19. 根据条件读写文件
  20. 输入参数:文件路径 文件写入对象 条件平判断方法
  21. 输出参数:错误对象
  22. 7. ReadFileLineNumber
  23. 读取文件行数
  24. 文件路径
  25. 输出行数与错误对象
  26. 8. GetMyFileName
  27. 获取文件名称及后缀名 未防止文件无后缀名,固这里返回值为数组对象
  28. 输入参数: 文件路劲或文件名称
  29. 输出参数: 文件名 文件后缀名 数组 第一项为文件名称 第二项为文件后缀名
  30. 9. GetMyAllFileByDir
  31. 根据文件夹路径获取文件夹下所有文件
  32. 输入参数: 文件夹路径
  33. 输出参数: 文件名列表 错误对象
  34. 10. GetMyAllDirByDir
  35. 根据文件夹路径获取文件夹下所有文件夹
  36. 输入参数:文件夹路径
  37. 输出参数:文件夹列表 错误对象

mysqlDB.go

  1. 1. MySqlDBStruct
  2. 数据库连接对象
  3. type MySqlDBStruct struct {
  4. DbUser string //数据库用户名
  5. DbHost string //数据库地址
  6. DbPort int //数据库端口
  7. DbPass string //数据库密码
  8. DbName string //数据库库名
  9. MaxOpenConns int // 用于设置最大打开的连接数,默认值为0表示不限制
  10. MaxIdleConns int // 用于设置闲置的连接数
  11. }
  12. 2. MySqlSQlConntion
  13. 数据库连接
  14. 输入参数:数据库对象
  15. 输出对象:数据库连接对象
  16. 3. MySqlClose
  17. 数据库关闭
  18. 输入参数:数据库连接对象
  19. 4. MySqlSelect
  20. 查询方法
  21. 输入参数: dbs数据库连接对象 model数据库对象 sqlStr 要执行的sql语句 param执行SQL的语句参数化传递
  22. 输出参数: 查询返回条数 错误对象输出
  23. 5. MySqlSqlExec
  24. 数据库运行方法
  25. 输入参数: dbs数据库连接对象 model数据库对象 sqlStr 要执行的sql语句 param执行SQL的语句参数化传递
  26. 输出参数: 执行结果对象 错误对象输出
  27. 6. MysqlSelectUnknowColumn
  28. 查询所有字段值
  29. 字段名称 字段值数组 错误对象

servicePIDProcess.go

  1. const ProgramServicePIDPath = "./programRunPID.pid" // PID文件生成路径
  2. 当下列方法接收到的传入参数为空时,将使用默认的PID文件路径
  3. 1. WritePid
  4. PID文件
  5. 输入参数:文件路径
  6. 2. CheckPid
  7. 检查pid文件是否存在,pid文件中的进程是否存在
  8. 输入参数:pid文件路径
  9. 输出参数:bool类型(true 文件不存在或者进程不存在 false: 进程已存在)
  10. 3. RmPidFile
  11. 删除PID文件
  12. 输入参数:pid文件路径

dateProcess.go

  1. 1.DateFormat
  2. 时间格式化处理
  3. 输入参数:需要格式化的时间 格式化方式 示例yyyy-MM-dd hh:mm:ss.tttttt 2017-03-22 10:21:55.379415

redisHelp.go

  1. 1. OpenRedis
  2. redis通道开启
  3. addr IP地址+端口 idx 仓库数
  4. 2. CloseRedis
  5. redis通道关闭
  6. 3. SetRedisCache
  7. 设置redis缓存
  8. key 存储键名 value 存储值 cacheBssSeconds 存储时间(单位秒)
  9. 4. GetRedisCache
  10. 获取redis缓存
  11. key 存储键名

decryptionProcess.go

  1. 1. AesEncrypt
  2. 字符串加密
  3. 输入参数: 需要加密的字符串
  4. 输出参数: 加密后字符串 错误对象
  5. 2. AesDecrypt
  6. 字符串解密
  7. 输入参数: 需要解密的字符串 解密后字符串长度
  8. 输出参数: 解密后字符串 错误对象

gpDB.go

  1. // GP数据库连接对象
  2. // create by gloomy 2017-3-30 15:27:26
  3. type GpDBStruct struct {
  4. DbUser string //数据库用户名
  5. DbHost string //数据库地址
  6. DbPort int //数据库端口
  7. DbPass string //数据库密码
  8. DbName string //数据库库名
  9. MaxOpenConns int // 用于设置最大打开的连接数,默认值为0表示不限制
  10. MaxIdleConns int // 用于设置闲置的连接数
  11. }
  12. 其余同mysql
  13. 提供方法:
  14. GpSqlConntion GP数据库连接
  15. GpSqlClose GP数据库关闭
  16. GpSqlSelect 查询方法
  17. GpSqlExec 数据库运行方法
  18. GPSelectUnknowColumn 查询所有字段值

mathProcess.go

  1. 1. Rounding
  2. 四舍五入取舍
  3. 2. RoundingByInt
  4. 四舍五入取舍
  5. 除数 被除数 取舍几位
  6. 3. RoundingPercentageByInt
  7. 四舍五入取舍 百分比
  8. 除数 被除数 取舍几位
  9. 4. MustCompileMatch
  10. 匹配字符串是否包含
  11. 输入参数:
  12. matchStr 匹配字符串(例: match* 则匹配任何match开头的. *为全匹配)
  13. str 被匹配字符串

ftpHelpProcess.go

  1. FTP帮助类实体
  2. type FtpHelpStruct struct {
  3. IpAddr string // ip 地址
  4. Port int // 端口
  5. TimeOut time.Duration // 超时时间
  6. UserName string // 用户名
  7. PassWord string // 密码
  8. FilePaths string // 目标服务器路径
  9. }
  10. 1. FtpFileStor
  11. FTP文件传输
  12. FTP配置实体 文件内容 创建目标服务器的文件名
  13. 错误对象
  14. 2. FtpRemoveFile
  15. FTP文件删除
  16. 文件名 ftp配置对象
  17. 错误对象
  18. 3. FtpRenameFile
  19. ftp修正远程服务器文件名称
  20. 源文件 修正后的文件名称 ftp配置对象
  21. 错误对象

fileDataRecording.go

  1. 切块文件写入,防止文件过大 (编写缘由用于文件load进入数据库)
  2. 文件数据记录对象
  3. type FileDataRecording struct {
  4. sync.Mutex // 锁
  5. F *os.File // 文件对象
  6. FilePre string // 文件开头字符串
  7. Fn string // 文件路径
  8. Bytes int // 文件大小
  9. Seq int // 第几个
  10. FileProgram string // 文件存放路径
  11. MaxFileDataRecordingBytes int // 文件大小
  12. }
  13. const maxFileDataRecordingBytes = 1000000 // 默认文件大小
  14. 1. OpenLoadFile
  15. 打开文件数据记录
  16. 文件存放目录地址 文件开头字符串 文件大小
  17. 文件数据对象
  18. 2. Exit
  19. 文件退出
  20. 3. Close
  21. 文件关闭
  22. 4. Rotate
  23. 文件切换
  24. 5. CreateNewFile
  25. 创建新文件
  26. 错误对象
  27. 6. WriteData
  28. 写入数据
  29. 需要写入的数据
  30. 错误对象
  31. 7. FileList
  32. 获取所有完成的文件列表
  33. 文件列表
  34. 8. RemoveOldFileList
  35. 删除过期文件
  36. 几天前

excelUtil.go

  1. 1. ReadExcel
  2. excel数据获取
  3. sheet名称 数据内容 错误对象
  4. 2. ExcelSave
  5. excel保存

sftpUtil.go

  1. // sftp配置
  2. type SftpConfigStruct struct {
  3. Account string // 登录用户名
  4. Password string // 登录密码
  5. Port int // 服务器端口
  6. ConntionSize int // MaxPacket sets the maximum size of the payload
  7. Addr string // 连接地址
  8. }
  9. 1. SftpClose
  10. sftp 关闭
  11. 2. SftpReadDir
  12. sftp读取文件夹内容

XML帮助类

  1. 1.XmlContentReplace
  2. 生成xml文件修正xml节点内容

watchFileUtil.go

  1. 如文件上传完成,统一使用文件修改回调方法.watchFile方法会保证文件上传完毕进行回调
  2. 1.WatchFile
  3. 文件夹监控方法
  4. 监控文件夹路径
  5. 匹配字段(例: match* 则匹配任何match开头的. *为全匹配)
  6. 删除文件回调方法
  7. 文件修改回调方法
  8. 文件改名回调方法
  9. 文件创建回调方法

fileSendUtil.go

  1. http文件上传
  2. 1.HttpSendFile
  3. 文件发送处理方法
  4. 发送http地址
  5. 文件路径
  6. 文件存放变量名

zipUtil.go

  1. 1. UnZip
  2. 压缩包解压 (方法暂时遗弃,解压会出现数据丢失)
  3. 输入参数:
  4. zipPathStr 压缩包路径
  5. dirPathStr 压缩包解压后路径
  6. 输出参数:
  7. 解压后存放文件的文件夹路径 错误对象
  8. 2. UnGzip
  9. gz压缩包解压 (暂时可能不支持压缩包内有多个文件的情况.未做测试)
  10. 输入参数:
  11. zipPathStr 压缩包地址
  12. filePathStr 压缩包解压后文件路径
  13. 输出参数:
  14. 错误对象

fileDownLoad.go

  1. 1. HttpGetDownFile
  2. 文件下载
  3. 输入参数:
  4. urlPathStr url请求路径
  5. saveFilePath 下载文件保存路径
  6. 输出参数:
  7. 错误对象

arrayUtil.go

  1. 1. UniqueSlice
  2. 字符串数组去重
  3. 输入参数:
  4. 数组指针

ginUtil.go

因gin更新,该方法暂停使用

  1. 1.GinInit
  2. gin初始化
  3. 输入参数:
  4. debug 是否为调试模式
  5. serverListeningPort gin监听端口
  6. setGinRouter 设置gin路由方法.传入参数*gin.Engine及服务运行所需要的二级目录名称(如:程序运行使用http://www.baidu.com/map 其中map为二级目录名称)
  7. 输出参数:
  8. *gin.Engine

logUtil.go

  1. 1. LogInit
  2. 日志初始化
  3. 当程序停止前需将glog进行关闭 调用glog.Close方法
  4. 输入参数:
  5. debug 是否为调试模式,如果为调试模式,则在控制台进行日志输出,否则输出到日志文件中
  6. logsDir 日志存放目录

captcha

  1. 增加golang验证码图片生成方法,修正自https://github.com/dchest/captcha
  2. 删除内部自验证.
  3. New 方法返回验证码
  4. WriteImage 输出验证码图片,通过http方式
  5. WriteAudio 输出音频,通过http方式

emailUtil.go

  1. 增加邮件发送类
  2. 1.SendEmail
  3. 输入参数
  4. 用户邮箱地址
  5. 用户密码
  6. smtp服务器地址
  7. 发送端口
  8. 邮件标题
  9. 邮件内容
  10. 收件人邮箱集合
  11. 邮件类型(默认为:text/plain) 可以采用text/html的方式,这样可以在邮件内容中画表格html页面等(ps:别画的太前卫^_^)

cmdUtil.go

  1. windows cmd命令
  2. 1. ExecCommand
  3. 输入参数: 需要执行的命令
  4. 输出参数:
  5. 命令行回馈字符串
  6. 错误对象

pictureUtil.go

  1. base64图片转图片文件
  2. 1.PictureBase64ToFile
  3. 输入参数:
  4. 图片base64字符串
  5. 路径(为空则默认在运行目录下创建文件)
  6. 输出参数:
  7. 图片路径
  8. 错误对象

cpuUtil.go

  1. 设置CPU核心使用数
  2. 1.SetCPUUseNumber
  3. 输入参数:
  4. CPU核心数量(如果超出当前CPU核心数量则使用当前CPU最大核心数.参数为0时则使用最大核心数量)