上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 60 下一页
摘要: 目的:生成器的目的是将复杂对象的创建过程(流程)进行抽象,生成器表现为接口的形式。 如果对象有复杂的继承树,理论上创建对象的生成器也同样具有复杂的继承树。 传进来一个生成器, 我调用这个生成器来生成我所需要的汽车,这就是生成器模式的核心.这个生成器Builder是个接口,把复杂对象的创建过程进行抽象 阅读全文
posted @ 2020-10-13 15:59 唯一客服系统开发笔记 阅读(155) 评论(0) 推荐(0)
摘要: 支付宝小程序的开发管理里 > 服务器域名白名单添加 自己的主域名 , 所有二级域不需要都加上 js文件里直接使用网络API my.request({ url: 'https://gofly.sopans.com/visitors_online', method: 'GET', success: fu 阅读全文
posted @ 2020-10-13 14:26 唯一客服系统开发笔记 阅读(316) 评论(0) 推荐(0)
摘要: 抽象工厂:在不指定具体类的情况下创建一系列相关或从属对象。最重要的特征就是抽象类的组合.通常,创建的类都实现相同的接口。抽象工厂的客户端并不关心这些对象的创建方式,只是知道它们如何组合在一起。 三个抽象类 interface WriterFactory{ public function create 阅读全文
posted @ 2020-10-13 13:24 唯一客服系统开发笔记 阅读(141) 评论(0) 推荐(0)
摘要: 作为一个平台型服务,提供给用户管理自己的个人设置,以及可以管理邮箱的webmail系统 , 登录验证部分是要求比较多的 1. 第一个难点是安全性 , 验证密码后 , 如果企业开启了高安全等级 , 那么用户必须验证手机号 。没有绑定手机号的需要先绑定后验证。 当用户开启了密码失效功能后,如果当前密码过 阅读全文
posted @ 2020-10-09 17:35 唯一客服系统开发笔记 阅读(340) 评论(0) 推荐(0)
摘要: 使用这个GoAdminGroup/go-admin框架的最简单的例子就可以把项目运行起来 , go-admin 是以扩展库的形式使用的. 建一个main.go package main import ( "io/ioutil" "log" "os" "os/signal" _ "github.com 阅读全文
posted @ 2020-09-29 13:50 唯一客服系统开发笔记 阅读(1416) 评论(1) 推荐(0)
摘要: 在开启了go module情况下 , 也就是执行了 go env -w GO111MODULE=on 再执行go get xxxxx 文件会存放在$GOPATH/pkg/mod 下 并且目录名里的大写字母会转成小写字母 , 前面加一个! 例如: go get github.com/GoAdminGr 阅读全文
posted @ 2020-09-29 11:55 唯一客服系统开发笔记 阅读(1898) 评论(0) 推荐(0)
摘要: 当我执行go install github.com/xxxxx 时候 , 报错: can't load package: cannot find module providing package github.com/xxx: working directory is not part of a m 阅读全文
posted @ 2020-09-29 11:27 唯一客服系统开发笔记 阅读(6592) 评论(0) 推荐(0)
摘要: go-fly 基于GO语言实现的web客服即时通讯与客服管理系统。非常适合给自己的网站增加在线客服功能,代码简单也适合学习。 Github地址:https://github.com/taoshihan1991/go-fly 后台管理地址: https://gofly.sopans.com/login 阅读全文
posted @ 2020-09-26 03:37 唯一客服系统开发笔记 阅读(2508) 评论(0) 推荐(0)
摘要: 在这个目录下建立shell文件 /home/ubuntu/shell_script/backup_db_gofly.sh #!/bin/base #定义备份文件路径 backupFilePath="/home/ubuntu/database/"; #定义备份文件名称 currentDate=`dat 阅读全文
posted @ 2020-09-24 19:08 唯一客服系统开发笔记 阅读(299) 评论(0) 推荐(0)
摘要: 获取到当前用户的IP以后想把它转换成中国的城市 , 可以使用下面这个库 ipdb-go gin的入口代码 func PostVisitorLogin(c *gin.Context) { ipcity:=tools.ParseIp(c.ClientIP()) ipcity.CountryName+ip 阅读全文
posted @ 2020-09-23 23:09 唯一客服系统开发笔记 阅读(411) 评论(0) 推荐(0)
摘要: 监听事件 mounted() { document.addEventListener('paste', this.onPasteUpload) } 粘贴的时候组装formData , 下面代码中的文件域name属性是 imagefile ,,然后调用jquery的ajax方法传过去 , 后端和普通文 阅读全文
posted @ 2020-09-22 21:10 唯一客服系统开发笔记 阅读(1685) 评论(0) 推荐(0)
摘要: 突然多了很多访客 , 有个访客告诉我被公众号推荐了 , 我才看到了 , 本来一个简单的练习项目 ,得到大家的认可也是开心的 大家也可以关注下"转角遇到GitHub " 原文地址: https://mp.weixin.qq.com/s/QhOsBV2y5DXeC7yCCxH-uA 阅读全文
posted @ 2020-09-21 13:28 唯一客服系统开发笔记 阅读(236) 评论(0) 推荐(0)
摘要: 案例大部分都是用npm模式的,现在这个是使用cdn模式的更符合后端开发 html部分 , 注意template标签 ,定义上的id <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="ht 阅读全文
posted @ 2020-09-17 16:33 唯一客服系统开发笔记 阅读(2013) 评论(0) 推荐(0)
摘要: 使用标准库http来实现 package tools import ( "io/ioutil" "net/http" ) func Get(url string)string{ res, err :=http.Get(url) if err != nil { return "" } robots, 阅读全文
posted @ 2020-09-15 19:13 唯一客服系统开发笔记 阅读(5698) 评论(0) 推荐(0)
摘要: 字段类型是: `enterpriseId` int(10) unsigned DEFAULT NULL, `email` char(255) NOT NULL DEFAULT '',表的索引是: UNIQUE KEY `emailent` (`email`,`enterpriseId`), KEY 阅读全文
posted @ 2020-09-14 17:27 唯一客服系统开发笔记 阅读(775) 评论(0) 推荐(0)
摘要: 在开发GO小程序或者公众号接口的时候,需要对接微信消息的token签名验证 , 这时候需要开发者验证来自微信 , 并返回指定的字符串 微信文档里给的是PHP版本的代码 , 下面这个是go版本的代码 , 使用的gin框架 这个是入口的路由 ,根据自己的代码来写就可以 , 注意发来的是GET请求 pac 阅读全文
posted @ 2020-09-14 13:59 唯一客服系统开发笔记 阅读(1440) 评论(0) 推荐(0)
摘要: 分页功能几乎是每个项目里都会使用的功能,在使用gorm的前提下,下面这样实现分页. 前端使用的是elementui , 只需要返回两个参数就可以前端分页了 , 总页数和每页的条数 后端需要知道两个参数, 当前第几页和每页的条数 比如下面的代码: 里面的page是前端传过来的 , pagesize是配 阅读全文
posted @ 2020-09-11 11:55 唯一客服系统开发笔记 阅读(778) 评论(0) 推荐(0)
摘要: 表单中的某个表单域被设定为disabled,则该表单域的值就不会被提交。 但是我们需要提交这个里面的默认值,这个时候需要使用readonly 但是readonly的样式不好看,会不像禁用状态,需要增加下面两个样式就很像了 style="background: #ebebe4;cursor: not- 阅读全文
posted @ 2020-09-10 17:35 唯一客服系统开发笔记 阅读(411) 评论(0) 推荐(0)
摘要: 当初始化项目的时候,之前需要手动导入数据库sql文件,现在可以直接在命令行参数里输入go-fly install ,就可以把数据库文件导进去了 实现方式就是使用gorm执行sql文件里面的每行sql语句 读入sql文件后把字符串按照分号分隔,转成[]string ,然后再循环执行 实例代码是(自行更 阅读全文
posted @ 2020-09-08 21:56 唯一客服系统开发笔记 阅读(914) 评论(0) 推荐(0)
摘要: 最开始的解析命令行参数是使用的标准库里面的flag包,后来想增加新的参数的时候比较复杂和困难,因此使用cobra更加简单一些 比如执行go-fly server port 8081是运行项目 执行go-fly install是导入数据库 目录结构: 增加cmd目录,作为cmd包,代码中直接定义全局变 阅读全文
posted @ 2020-09-08 21:40 唯一客服系统开发笔记 阅读(406) 评论(0) 推荐(0)
摘要: 实现gofly客服的过程中遇到的问题 gorm在插入完成数据后,想要获取插入的自增id ,可以使用Create()方法执行插入,在结构体里直接就能获取到ID 例如下面这个User type User struct { Model Name string `json:"name"` Password 阅读全文
posted @ 2020-09-04 18:08 唯一客服系统开发笔记 阅读(6469) 评论(0) 推荐(1)
摘要: 整体的流程图如下: 访客首次访问是通过websocket ,注册成一个新的用户 ,websocket的连接存储在全局变量clientList这个map里面 , key就是访客id ,value是连接 客服登陆也是通过websocket,把连接存储在全局变量kefuList这个map里 , key是客 阅读全文
posted @ 2020-09-02 14:18 唯一客服系统开发笔记 阅读(693) 评论(0) 推荐(0)
摘要: 在做gofly客服的上传图片部分时,需要在gin框架中实现上传图片,并且限制文件的后缀 上传文件在gin中比较简单,就是在http处理函数里面调用c.SaveUploadedFile()就可以了 需要实现限制文件后缀,自动创建按照月份的上传目录,生成新的文件名字避免冲突被覆盖 完整代码如下 ,上传目 阅读全文
posted @ 2020-08-26 14:58 唯一客服系统开发笔记 阅读(3679) 评论(0) 推荐(0)
摘要: 简单原理: 选择一个值作为最小值,在后面的元素中找比它还小的值进行交换 //选择一个最小值,再寻找比它还小的进行交换 func SelectionSort(arr *[]int){ for i:=0;i<len(*arr);i++{ minIndex:=i for j:=i+1;j<len(*arr 阅读全文
posted @ 2020-08-25 21:56 唯一客服系统开发笔记 阅读(259) 评论(0) 推荐(0)
摘要: 下面代码放在models包下的users.go中 表结构和struct字段是一致的,把表字段的下划线变成首字母大写的驼峰命名 创建,查找,删除,更新用户,见下面的具体方法 package models import ( _ "github.com/jinzhu/gorm/dialects/mysql 阅读全文
posted @ 2020-08-24 18:20 唯一客服系统开发笔记 阅读(647) 评论(0) 推荐(0)
摘要: 登录界面如果要实现响应式 , 需要注意宽度的设置和media query的使用 宽度一般都是按百分比设置,当页面中百分比也满足不了的时候,可以使用media query区分出当前屏幕的宽度 根据不同的屏幕宽度设置不同的css 例如下面gofly的这个登录页 , 访问地址 : https://gofl 阅读全文
posted @ 2020-08-24 16:29 唯一客服系统开发笔记 阅读(649) 评论(0) 推荐(0)
摘要: 核心思路: 将数组分成已排序和待排序两部分,将一个元素从待排序插入到有序数组的适当位置,直到所有待排序都插入完成 把第一个元素作为已排序数组,将后面的元素依次与已排序元素从后往前进行比较,如果当前元素小于有序数组元素,有序数组元素往后挪1位,直到大于了就插入到有序数组元素后面 //插入排序 func 阅读全文
posted @ 2020-08-22 13:06 唯一客服系统开发笔记 阅读(455) 评论(0) 推荐(0)
摘要: 核心原理: 比较相邻的两个元素,较大的一个交换移动到右边 优化: 已经排好序的元素不再进行比较,减少比较次数 下面函数的变量flag 用于判断后续元素有无发生交换,没有发生交换的直接停止遍历 变量lastSwapIndex ,记录最后一次发生交换的位置,后续元素不再进行比较 //冒泡排序 func 阅读全文
posted @ 2020-08-22 12:59 唯一客服系统开发笔记 阅读(510) 评论(0) 推荐(0)
摘要: 原理很简单,就是用php输出一个header头,可以直接让浏览器下载文件 单元格内容用英文逗号分隔, 其中为了防止乱码,汉字部分会进行一个转码操作,从utf8转为gbk 为了使单元格看起来直观一点,会增加个\t ,这样就不会看的时候出现######### 比如下面这个把moveusers数组作为cs 阅读全文
posted @ 2020-08-21 16:25 唯一客服系统开发笔记 阅读(1744) 评论(0) 推荐(0)
摘要: 快速排序思路: 1. 第一个数作为基准数,找到所有比基准数小的放在左边 ,找所有比基准数大的放右边 2.两个指针 ,一个从前往后 i,一个从后往前 j,i找到比基准数大的停下 , j找到比基准数小的停下 , 两个数调换位置,直到两数相遇 3.调换基准数与i/j位置 4.递归 , 从0到基准数位置 , 阅读全文
posted @ 2020-08-20 21:51 唯一客服系统开发笔记 阅读(418) 评论(0) 推荐(0)
摘要: 在使用长连接的过程中,如果有的长连接一直连着,想要杀掉这条连接可以使用tcpkill命令 安装tcpkill , tcpkill使用dsniff的一个小工具 apt install dsniff 使用过程: 比如连接服务端8082端口的这条连接 杀掉连接, 过滤规则类似tcpdump tcpkill 阅读全文
posted @ 2020-08-20 19:08 唯一客服系统开发笔记 阅读(5496) 评论(0) 推荐(0)
摘要: 结论:count(*)>count(1)>count(主键id)>count(字段) 原因:count(*)单独做过优化,只扫描普通索引树,并且不会取值,按行累加count(1)遍历表放一个数字“1”进去,判断是不可能为空的,按行累加count(主键id)遍历表,解析数据把id值取出来,按行累加co 阅读全文
posted @ 2020-08-19 16:16 唯一客服系统开发笔记 阅读(1286) 评论(0) 推荐(0)
摘要: 在执行go test命令的时候,如果是测试同一个包中的函数,需要把所涉及的文件都写在参数部分 例如: 涉及的文件不多,可以把文件都写上一同编译 如果涉及的文件太多,直接在包下执行go test 阅读全文
posted @ 2020-08-17 22:39 唯一客服系统开发笔记 阅读(2371) 评论(0) 推荐(0)
摘要: 快速排序首先选一个基准(你也可以认为是要放到排序后数组正确位置的元素)pivot,然后将数组按照选取的基准 pivot 进行划分。而选取 pivot 的方式又有很多种,所以快速排序具有很多版本。 总是选择第一个元素作为基准 pivot;总是选择最后一个元素作为基准;(本文后续的实现就是依次为例)随机 阅读全文
posted @ 2020-08-17 22:26 唯一客服系统开发笔记 阅读(682) 评论(0) 推荐(0)
摘要: gofly最近准备完善对外的js引用功能,类似很多知名客服系统那样直接引入js就可以使用,现在只是简单的实现了下 代码在github,可以在页面上看到, gofly地址在这里 https://gofly.sopans.com/ , 开发和部署方式在github的readme.md 首先要申请js权限 阅读全文
posted @ 2020-08-13 14:23 唯一客服系统开发笔记 阅读(496) 评论(0) 推荐(0)
摘要: 当需要实现守护进程 , 以及自己开发的命令自动崩溃重启时,可以使用go版本的supervisord , 比python版本依赖少一些 git clone https://github.com/ochinchina/supervisord.gitenv GOOS=linux GOARCH=amd64 阅读全文
posted @ 2020-08-11 10:18 唯一客服系统开发笔记 阅读(769) 评论(0) 推荐(0)
摘要: 在实现客服系统的过程中,需要有新消息的时候标题栏闪烁提示 因为聊天框是被iframe框进去的页面,所以在聊天框中收到websocket消息以后要把消息发送给父集页面,在父页面中闪烁标题 测试页面地址: https://gofly.sopans.com/ 子页面发送到父页面的实现是,在父页面增加消息监 阅读全文
posted @ 2020-07-28 11:08 唯一客服系统开发笔记 阅读(332) 评论(0) 推荐(0)
摘要: 当我们使用了websocket技术实现了实时的推送访客来到消息,但是我们只能随时看着页面不离开才能知道有访客来到 现在增加浏览器的通知消息,就可以只要打开着界面,不用一直盯着,干别的事去就可以了,有新消息会从右下角弹出来 测试地址如下,当有访客点击咨询按钮时,客服后台会弹出提示: https://g 阅读全文
posted @ 2020-07-27 15:51 唯一客服系统开发笔记 阅读(530) 评论(0) 推荐(0)
摘要: 我的域名是在阿里云万网上购买的,服务器是部署在腾讯云上,可以按照下面的步骤配置https 首先登陆阿里云网站控制台,申请免费证书,免费证书只能单一域名。测试地址如:https://gofly.sopans.com/ 申请稍等几分钟就能通过 把证书下载到本地,然后上传到腾讯云的服务器上,配置nginx 阅读全文
posted @ 2020-07-26 12:19 唯一客服系统开发笔记 阅读(702) 评论(0) 推荐(0)
摘要: 如果项目中需要有多语言的展示,类似网站中英文切换,可以使用下面这个方法来实现 主要思路就是,页面html内容展示的时候,不能固定写死在页面上,需要从控制器部分分配过来变量,展示输出这个变量 这个变量的内容来自一个结构体的成员,该结构体在创建实例的时候,可以根据传递参数的不同,实例的成员内容不同 实际 阅读全文
posted @ 2020-07-25 15:33 唯一客服系统开发笔记 阅读(1121) 评论(0) 推荐(0)
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 60 下一页