<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[t2337025的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/t2337025</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; t2337025]]></copyright><item><title><![CDATA[SpringBoot接收参数的七种方式]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/130962487</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/130962487</guid><author>t2337025</author><pubDate>Wed, 31 May 2023 09:48:13 +0800</pubDate><description><![CDATA[关于最后这个@RequestBody要重点讲解下，此时前端发送请求不能使用get方式，需要使用post方式，还有请求传递的参数需要是json字符串，这里重点要设置的是Content-Type，要将其设置为application/json。此时我们可以继续使用postman进行测试，注意这里传入的参数名要和User里面的属性名称一致（首字母之外的大小写保持一致,已测），否则无法识别接收，则相应的值会为null。1、直接把请求参数写在Controller相应的方法的形参中，此场景适用于请求参数较少的情况。]]></description><category></category></item><item><title><![CDATA[七牛删除资源并刷新CDN]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/122460271</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/122460271</guid><author>t2337025</author><pubDate>Wed, 12 Jan 2022 19:10:56 +0800</pubDate><description><![CDATA[问题：当调用七牛删除资源接口后，因为有CDN缓存，如果在后台设置CDN缓存的时间过长，资源就会一直存在，要调用CDN接口刷新。

七牛vendor包：qiniu/php-sdk

参考：https://developer.qiniu.com/kodo/1241/php

PHP代码：


&lt;?php

use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
use Qiniu\Cdn\CdnManager;


class ]]></description><category></category></item><item><title><![CDATA[视图索引优化]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/120708761</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/120708761</guid><author>t2337025</author><pubDate>Mon, 11 Oct 2021 18:20:27 +0800</pubDate><description><![CDATA[项目中建了一个视图，用到了子查询，类似：


SELECT
	a.id,
	a.name,(
	SELECT
		SUM( b.amount ) 
	FROM
		( `b` JOIN `c` ) 
	WHERE
		b.pre_id = c.id 
		AND b.id = a.id 
	) AS `total_amount` 
FROM
	a 
WHERE
	a.status=1
GROUP BY
	a.name 
ORDER BY
	a.id DESC;

视图查询比较慢，查询一次要3s，以为是视图算]]></description><category></category></item><item><title><![CDATA[laravel-admin批量获取ID传值]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/120473120</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/120473120</guid><author>t2337025</author><pubDate>Sat, 25 Sep 2021 16:35:45 +0800</pubDate><description><![CDATA[需求：列表为grid页面，需要通过一个批量操作按钮，获取选中的ID，并传给新页面或ajax使用。


1、grid列表增加批量工具按钮


protected function grid()
    {
        
        $grid-&gt;tools(function ($tools) {
            $tools-&gt;batch(function ($batch) {
                $batch-&gt;add('批量获取ID', new TestAc.]]></description><category></category></item><item><title><![CDATA[Mysql 之根据经纬度按距离排序]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/104970540</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/104970540</guid><author>t2337025</author><pubDate>Thu, 19 Mar 2020 16:33:37 +0800</pubDate><description><![CDATA[一、方式一


st_distance 计算的结果单位是度，需要乘111195（地球半径6371000*PI/180）是将值转化为米。
SELECT *,
(st_distance(point(lng,lat),point(116.3424590000,40.0497810000))*111195/1000 ) as juli FROM table ORDER BY juli ASC

二、方式二...]]></description><category></category></item><item><title><![CDATA[【消息队列】RabbitMQ如何处理消息丢失]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/103310526</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/103310526</guid><author>t2337025</author><pubDate>Fri, 29 Nov 2019 14:53:06 +0800</pubDate><description><![CDATA[首先明确一点 一条消息的传送流程：生产者-&gt;MQ-&gt;消费者

所以有三个地方都会丢失数据：


生产者发送给MQ的途中出现网络问题
MQ自己没保管好弄丢了
消费者拿到数据后出错了没有最终完成任务

依次分析

1）生产者弄丢了数据

生产者将数据发送到rabbitmq的时候，可能因为网络问题导致数据就在半路给搞丢了。

1.使用事务（性能差）
可以选择用rabbitmq提供的事务功能，...]]></description><category></category></item><item><title><![CDATA[API接口设计：防参数篡改+防二次请求]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/103309593</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/103309593</guid><author>t2337025</author><pubDate>Fri, 29 Nov 2019 14:09:22 +0800</pubDate><description><![CDATA[API接口由于需要供第三方服务调用，所以必须暴露到外网，并提供了具体请求地址和请求参数

为了防止被第别有用心之人获取到真实请求参数后再次发起请求获取信息，需要采取很多安全机制



1.首先： 需要采用https方式对第三方提供接口，数据的加密传输会更安全，即便是被破解，也需要耗费更多时间

2.其次：需要有安全的后台验证机制【本文重点】，达到防参数篡改+防二次请求

主要防御措施可以归纳为两...]]></description><category></category></item><item><title><![CDATA[PHP封装base64图片上传接口]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/102981999</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/102981999</guid><author>t2337025</author><pubDate>Sat, 09 Nov 2019 00:18:01 +0800</pubDate><description><![CDATA[HTML代码：


&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;base64图片上传&lt;/title&gt;
    &lt;script&gt;
        window.onload = function(){
  ...]]></description><category></category></item><item><title><![CDATA[MySQL创建用户和授权]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/102903737</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/102903737</guid><author>t2337025</author><pubDate>Mon, 04 Nov 2019 19:38:26 +0800</pubDate><description><![CDATA[权限管理：

　　我们知道我们的最高权限管理者是root用户，它拥有着最高的权限操作。包括select、update、delete、update、grant等操作。那么一般情况在公司之后DBA工程师会创建一个用户和密码，让你去连接数据库的操作，并给当前的用户设置某个操作的权限（或者所有权限）。那么这时就需要我们来简单了解一下：

如何创建用户和密码
	给当前的用户授权
	移除当前用户的权限
创建新...]]></description><category></category></item><item><title><![CDATA[nginx转发post请求]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/98943267</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/98943267</guid><author>t2337025</author><pubDate>Fri, 09 Aug 2019 10:39:14 +0800</pubDate><description><![CDATA[应用场景：

由于项目迁移，旧接口的代码重新部署在了另外一个域名下的项目，比如：

旧接口地址：https://cecshop.com/api/recommend/add

新接口地址：https://capis.com/rec/recommend/add


https://cecshop.com/api/recommend/add 转发到 https://capis.com/rec/recom...]]></description><category></category></item><item><title><![CDATA[PHP封装Medoo类]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/96280047</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/96280047</guid><author>t2337025</author><pubDate>Wed, 17 Jul 2019 10:27:43 +0800</pubDate><description><![CDATA[参考：https://medoo.in/doc

Composer安装：


composer require catfan/medoo
composer update

封装Mysql类：


require __DIR__.'/vendor/autoload.php';

use Medoo\Medoo;

class Mysql {

    private $database;
    p...]]></description><category></category></item><item><title><![CDATA[使用systemd管理swoole服务]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/95076262</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/95076262</guid><author>t2337025</author><pubDate>Mon, 08 Jul 2019 17:32:20 +0800</pubDate><description><![CDATA[Systemd 是 Linux 系统中新一代的初始化系统（init），它主要的设计目标是克服 sysvinit 固有的缺点，提高系统的启动速度。很多新的Linux发行版已经使用Systemd取代了init，作为初始守护进程。

Swoole的服务器程序可以编写一段service脚本，交由systemd进行管理。实现故障重启、开机自启动等功能。

编写Service脚本

Systemd的Servi...]]></description><category></category></item><item><title><![CDATA[PHP小程序发放红包接口]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/94559456</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/94559456</guid><author>t2337025</author><pubDate>Wed, 03 Jul 2019 14:20:25 +0800</pubDate><description><![CDATA[微信文档：

https://pay.weixin.qq.com/wiki/doc/api/tools/miniprogram_hb.php?chapter=13_9&amp;index=2

PHP调用接口需要证书（curl用到）：

微信商户平台(pay.weixin.qq.com)--&gt;账户中心--&gt;账户设置--&gt;API安全--&gt;下载证书

需要支付密钥：

key设...]]></description><category></category></item><item><title><![CDATA[最新阿里云免费申请SSL证书配置https]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/93139561</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/93139561</guid><author>t2337025</author><pubDate>Thu, 20 Jun 2019 22:41:39 +0800</pubDate><description><![CDATA[图文申请步骤如下：

1、产品与服务 -&gt;安全（云盾） -&gt; SSL证书（应用安全）



2、购买证书



3、免费型DV SSL + Symantec + 1个域名 -&gt;立即购买



4、立即支付



5、支付成功 -&gt;证书控制台



6、申请



7、填写域名等一系列信息 -&gt;下一步



8、验证 -&gt;提交审核



9、审核通过后 ...]]></description><category></category></item><item><title><![CDATA[windows下host文件修改与刷新]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/91850270</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/91850270</guid><author>t2337025</author><pubDate>Thu, 13 Jun 2019 13:57:34 +0800</pubDate><description><![CDATA[1、window环境：

hosts文件位置：C:\windows\system32\drivers\etc\hosts

刷新方式：

ctrl+r，输入CMD，回车

在命令行执行:ipconfig /flushdns#清除DNS缓存内容。
ps:ipconfig /displaydns//显示DNS缓存内容


2、linux环境

文件位置：/etc/hosts

刷新...]]></description><category></category></item><item><title><![CDATA[小程序分享统计功能 设置查看分享时长才可增加积分]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/91522790</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/91522790</guid><author>t2337025</author><pubDate>Wed, 12 Jun 2019 14:39:59 +0800</pubDate><description><![CDATA[小程序自带的有数据分析功能，而且很详细：概况、昨日概况、实时统计、访问分析、来源分析、自定义分析、用户画像、累计访问人数、TOP受访页面等等，并且也提供了表格下载功能。

这里增加的分享统计日志功能主要是用来记录分享页面的访问分析，即是谁分享的页面被谁打开了，一次打开从前台进入后台这个浏览时间有多长。说白了，也就是出于营销推广方面的需要，来进行分享统计，谁分享了页面增加积分，页面分享到群组里面后，...]]></description><category></category></item><item><title><![CDATA[jenkins、github部署php项目]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/90904346</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/90904346</guid><author>t2337025</author><pubDate>Wed, 05 Jun 2019 16:30:45 +0800</pubDate><description><![CDATA[前提：服务器已安装JDK、Tomcat、Jenkins、Git。

1、安装插件“Publish Over SSH”、“Git plugin”





2、配置项目服务器ssh通信




项目服务器上生成密钥对
ssh-keygen
查看公钥
cat /root/.ssh/id_rsa.pub 
复制公钥到/root/.ssh/authorized_keys
复制私钥到粘贴板
cat /roo...]]></description><category></category></item><item><title><![CDATA[Centos7部署jenkins]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/90897118</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/90897118</guid><author>t2337025</author><pubDate>Wed, 05 Jun 2019 09:56:09 +0800</pubDate><description><![CDATA[1、安装JDK



官网下载：https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html





上传安装：


yum install jdk-8u211-linux-x64.rpm



2、二进制安装Tomcat




cd /usr/local/src
wget http:/...]]></description><category></category></item><item><title><![CDATA[Linux使用free命令buff/cache过高]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/90768867</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/90768867</guid><author>t2337025</author><pubDate>Tue, 04 Jun 2019 14:54:26 +0800</pubDate><description><![CDATA[在Linux系统中，我们经常用free命令来查看系统内存的使用状态。在一个RHEL6的系统上，free命令的显示内容大概是这样一个状态：



其实：buffers/cache占用的较多，说明系统中有进程曾经读写过文件，但是不要紧，这部分内存是当空闲来用的

Linux内核会在内存将要耗尽的时候，触发内存回收的工作，以便释放出内存给急需内存的进程使用。一般情况下，这个操作中主要的内存释放都来自于...]]></description><category></category></item><item><title><![CDATA[mysql左连接多条件，on子句多条件]]></title><link>https://blog.youkuaiyun.com/t2337025/article/details/90756243</link><guid>https://blog.youkuaiyun.com/t2337025/article/details/90756243</guid><author>t2337025</author><pubDate>Mon, 03 Jun 2019 18:06:45 +0800</pubDate><description><![CDATA[user用户表：


CREATE TABLE `user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT '',
  `username` varchar(64) DEFAULT '',
  `password` varchar(255) DEFAULT '',
  `last_ip...]]></description><category></category></item></channel></rss>