<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_22999737的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_22999737</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_22999737]]></copyright><item><title><![CDATA[golang中接口和多态的简单使用]]></title><link>https://blog.youkuaiyun.com/qq_22999737/article/details/108830663</link><guid>https://blog.youkuaiyun.com/qq_22999737/article/details/108830663</guid><author>qq_22999737</author><pubDate>Sun, 27 Sep 2020 17:04:37 +0800</pubDate><description><![CDATA[原先系统中原先对接了企业微信和一些第三方数据源的组织架构，现在有对接了钉钉，每次对接不是同步进行的，每对接一个就会重新写一遍程序，代码的复用性不高。

最初的想法是用提供一个接口对不同的平台来实现不同的方式，把同步到系统中的逻辑代码提取成公共的方法。

最后又给这个接口提供了一个描述行为的一个方法，不同的平台创建不同的对象，不同的对象都可以调用这个行为（函数），从而调用不同的接口中方法的实现。

大体实现方式如下图：（根据自己的理解去画的，不知道对不对，仅供参考）



接口和描述行为方法：


type ]]></description><category></category></item><item><title><![CDATA[golang使用xorm和postgresql时SUM为空字符串的问题]]></title><link>https://blog.youkuaiyun.com/qq_22999737/article/details/103717496</link><guid>https://blog.youkuaiyun.com/qq_22999737/article/details/103717496</guid><author>qq_22999737</author><pubDate>Thu, 26 Dec 2019 16:17:51 +0800</pubDate><description><![CDATA[这本应该是一个平常应该考虑到的小问题，偏偏却没有考虑到，记录一下涨涨教训吧。

一开始的代码：


sql := `
			select sum(to_number(biz."attribute"::jsonb-&gt;&gt;'amount', '9999999999999999.99'))
					from ybx_biz.biz biz
					JOIN ybx_wfe.wf_insta...]]></description><category></category></item><item><title><![CDATA[golang第三方包excelize导出excel的简单使用]]></title><link>https://blog.youkuaiyun.com/qq_22999737/article/details/103387835</link><guid>https://blog.youkuaiyun.com/qq_22999737/article/details/103387835</guid><author>qq_22999737</author><pubDate>Wed, 04 Dec 2019 15:53:16 +0800</pubDate><description><![CDATA[最近项目中需要用到excel导出用户所需要的数据，以前使用的别的包，在导出完使用office打开的时候需要修复并且合并的单元格出现错误，使用wps打开的时候则是正常的。

创建文件：


//创建文件对象
file := excelize.NewFile()

新增一个sheet：


index := file.NewSheet("sheet的名称")

删除sheet：


//删除Sheet...]]></description><category></category></item><item><title><![CDATA[beego中获取string类型请求参数时去掉空格小分享]]></title><link>https://blog.youkuaiyun.com/qq_22999737/article/details/103375256</link><guid>https://blog.youkuaiyun.com/qq_22999737/article/details/103375256</guid><author>qq_22999737</author><pubDate>Tue, 03 Dec 2019 19:54:39 +0800</pubDate><description><![CDATA[需求分析：

在接受前台传来的参数的时候，如：身份证号码，手机号码，姓名。。。。。。中间或许有空格的存在，在数据保存后进行查询和数据比较的时候就总会出现莫名的字符串不相等或查询不到数据（罪魁祸首--空格）；便想着写一个方法把请求参数中的空格剔除掉。

实现：

我定义了一个结构体，继承了beego的Controller，这样就能拿到上下文：


type AA struct{
    //继承be...]]></description><category></category></item><item><title><![CDATA[开发中遇见mysql中ONLY_FULL_GROUP_BY模式的问题]]></title><link>https://blog.youkuaiyun.com/qq_22999737/article/details/103374400</link><guid>https://blog.youkuaiyun.com/qq_22999737/article/details/103374400</guid><author>qq_22999737</author><pubDate>Tue, 03 Dec 2019 19:02:26 +0800</pubDate><description><![CDATA[遇到问题的场景：

需要查询出用户的基本信息（包括部门&lt;默认第一个&gt;，银行卡号等信息），项目中有表：member、department、department_member和bank_card，需要从这4张表中查询出需要的数据。

初步想法，4张表联合查询，获取到结果集；


select  m.id as 'memberId', m.ceair_ZYGGH as 'number',
 ...]]></description><category></category></item><item><title><![CDATA[包含中文的字符串中len的长度问题]]></title><link>https://blog.youkuaiyun.com/qq_22999737/article/details/89852540</link><guid>https://blog.youkuaiyun.com/qq_22999737/article/details/89852540</guid><author>qq_22999737</author><pubDate>Sun, 05 May 2019 18:25:35 +0800</pubDate><description><![CDATA[在截取包含中文的字符串的时候，发现截取出来的字符串比目标字符串相差太多。

golang中string底层是通过byte数组实现的。

中文字符在unicode下占2个字节，在utf-8编码下占3个字节，而golang默认编码正好是utf-8。

于是做了一下转化：


con := []rune(trimHtml(result.Content))//将字符串转化为rune类型的
		if len...]]></description><category></category></item><item><title><![CDATA[golang  Map进行键值自定义排序]]></title><link>https://blog.youkuaiyun.com/qq_22999737/article/details/80001125</link><guid>https://blog.youkuaiyun.com/qq_22999737/article/details/80001125</guid><author>qq_22999737</author><pubDate>Thu, 19 Apr 2018 10:28:36 +0800</pubDate><description><![CDATA[//自定义结构体,用来自定义排序
type RecentlyUpdateListMapSorter []map[string]interface{}

//根据MapSorter.Keys进行倒序排序
func (ms *RecentlyUpdateListMapSorter) SortReverse() {
	sort.Sort(sort.Reverse(ms))
}

//自定义排序方法（Le...]]></description><category></category></item><item><title><![CDATA[centos7更改默认启动命令行模式或桌面模式]]></title><link>https://blog.youkuaiyun.com/qq_22999737/article/details/79507101</link><guid>https://blog.youkuaiyun.com/qq_22999737/article/details/79507101</guid><author>qq_22999737</author><pubDate>Sat, 10 Mar 2018 13:37:15 +0800</pubDate><description><![CDATA[一：进入终端，输入“init 3”回车，输入密码，进入命令行模式。二：在命令模式下输入“systemctl get-default”,获取当前模式三：修改启动模式：    1.如果默认启动由桌面模式更改为命令模式：输入“systemctl set-default multi-user.target”    2.如果默认启动由命令模式更改为桌面模式：输入“systemctl set-default ...]]></description><category></category></item></channel></rss>