Skip to content

Instantly share code, notes, and snippets.

@diaolizhi
diaolizhi / WXPayUtil.java
Created July 16, 2019 01:27
微信支付工具类:Map、XML 的转换,生成、校验 sign
import org.w3c.dom.Entity;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
@diaolizhi
diaolizhi / CommonUtils.java
Created July 16, 2019 01:25
常用工具类:生成 UUID,对 String 进行 MD5 加密
import java.security.MessageDigest;
import java.util.UUID;
/**
* 常用工具类的封装,md5,uuid等
*/
public class CommonUtils {
/**
@diaolizhi
diaolizhi / IpUtils.java
Last active July 16, 2019 01:24
获取请求的 ip 地址
import java.net.InetAddress;
import java.net.UnknownHostException;
import javax.servlet.http.HttpServletRequest;
public class IpUtils {
public static String getIpAddr(HttpServletRequest request) {
String ipAddress = null;
try {
ipAddress = request.getHeader("x-forwarded-for");
@diaolizhi
diaolizhi / a.js
Created April 28, 2019 08:27
JavaScript 格式化后端返回的时间
new Date(data.updated).toLocaleString();
@diaolizhi
diaolizhi / a.java
Created April 10, 2019 10:53
AES 解密
public static String decrypt(String encrypted) {
String KEY = ")O[NB]6,YF}+efcaj{+oESb9d8>Z'e9M";
String IV = "L+\\~f4,Ir)b$=pkf";
try {
IvParameterSpec iv = new IvParameterSpec(IV.getBytes("UTF-8"));
SecretKeySpec skeySpec = new SecretKeySpec(KEY.getBytes("UTF-8"), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
@diaolizhi
diaolizhi / a.java
Last active April 10, 2019 10:53
Map 遍历时删除元素
// 创建 Map
Map<String, String> map = new HashMap<>();
// 添加元素
map.put("1", "张三");
map.put("2", "李四");
map.put("3", "王五");
// 获取存放键值的集合
// Map 并没有 iterator 方法,所以不能 map.iterator() 获取迭代器
@diaolizhi
diaolizhi / ReloadSystem.java
Created January 13, 2019 05:33
Java 执行 shell 脚本
public class ReloadSystem {
public static void reloadSystem() {
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("bash", "-c", "bash ~/tieba-demo/Tieba/reload.sh");
try {
Process process = processBuilder.start();
@diaolizhi
diaolizhi / reload.sh
Last active January 13, 2019 05:31
Linux git 同步 maven 编译 java -jar 执行
# 项目名
PRONAME="demo"
#echo $PRONAME
# 项目所在路径
PROPATH='/root/tieba-demo/Tieba/'
nohup git pull origin master >/dev/null 2>&1
#git pull origin master
cd $PROPATH
@diaolizhi
diaolizhi / insert.java
Created January 7, 2019 12:30
mysql 插入数据时如果存在主键则跳过
@Insert("INSERT IGNORE INTO t_user " +
"(email, password, salt, is_active) " +
"VALUES (#{email}, #{password}, #{salt}, 1)")
int addUser(TUser user);
//重点是 IGNORE
@diaolizhi
diaolizhi / insert.java
Last active January 7, 2019 12:30
mysql 插入数据时如果存在主键则只更新
@Insert("INSERT INTO t_email_link VALUES (#{email}, #{link}, DATE_ADD(CURDATE(), INTERVAL 2 DAY))" +
"ON DUPLICATE KEY UPDATE link=#{link}, exp=DATE_ADD(CURDATE(), INTERVAL 2 DAY)")
void saveEmailAndChangePasswordLink(@Param("email") String email, @Param("link") String link);
//重点是 ON DUPLICATE KEY UPDATE