diff --git a/pom.xml b/pom.xml index 14c2a87..1e2f719 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,11 @@ org.apache.commons commons-lang3 - + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.2.5 + commons-io commons-io diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/redis/RedisCst.java b/src/main/java/com/chaozhanggui/system/cashierservice/redis/RedisCst.java index 44b2ed2..1f11d93 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/redis/RedisCst.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/redis/RedisCst.java @@ -13,4 +13,5 @@ public class RedisCst { public static final String TABLE_CART = "TABLE:CART:"; public static final String PRODUCT = "PRODUCT:"; + public static final String INTEGRAL_COIN_KEY = ""; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/util/JSONUtil.java b/src/main/java/com/chaozhanggui/system/cashierservice/util/JSONUtil.java index ad6e684..bce9b31 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/util/JSONUtil.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/util/JSONUtil.java @@ -6,8 +6,7 @@ import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializeConfig; import com.alibaba.fastjson.serializer.SerializerFeature; -import java.util.ArrayList; -import java.util.List; +import java.util.*; /** * @author Stone @@ -205,6 +204,34 @@ public class JSONUtil { private static void logError(Exception e) { e.printStackTrace(); } + + + public static JSONObject sortJSONObject(JSONObject jsonObject, Map keyMap) { + // 提取JSONObject中的键值对到一个列表中 +// List> list = new ArrayList<>(jsonObject.toJavaObject(Map.class).entrySet()); + List list = new ArrayList<>(jsonObject.keySet()); + + // 对键值对列表按照键的ASCII顺序进行排序 +// list.sort(Map.Entry.comparingByKey()); + Collections.sort(list); + // 遍历排序后的列表,将键值对转换为字符串并拼接起来 + TreeMap sortedMap = new TreeMap<>(); + for (String key : list) { + if (!keyMap.containsKey(key)) { + sortedMap.put(key, jsonObject.get(key)); + } + } + + // 返回排序后的字符串 + return new JSONObject(sortedMap); + } + + public static void main(String[] args) { + String str = "{\"openId\": \"or1l864NBOoJZhC5x_yeziZ26j6c\",\"num\": 0,\"type\": \"sub\",\"userSign\": \"66a4e4464d4e4ffda8ff729ed0e28d63\"}"; + JSONObject jsonObject = JSON.parseObject(str); + System.out.println(sortJSONObject(jsonObject,CacheMap.map)); + System.out.println(MD5Util.encrypt(sortJSONObject(jsonObject,CacheMap.map).toJSONString())); + } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisUtils.java b/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisUtils.java index d2edcde..ec4cb2a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisUtils.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/util/RedisUtils.java @@ -46,6 +46,7 @@ import java.util.concurrent.TimeUnit; @SuppressWarnings({"unchecked", "all"}) public class RedisUtils { private static final Logger log = LoggerFactory.getLogger(RedisUtils.class); + @Resource private RedisTemplate redisTemplate; @Value("${jwt.online-key}") private String onlineKey; @@ -772,5 +773,13 @@ public class RedisUtils { return reString; } + public boolean lock(String key, long timeout, TimeUnit timeUnit) { + String value = UUID.randomUUID().toString(); + Boolean success = redisTemplate.opsForValue().setIfAbsent(key, value, timeout, timeUnit); + return success != null && success; + } + public void releaseLock(String key) { + redisTemplate.delete(key); + } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/util/TokenUtil.java b/src/main/java/com/chaozhanggui/system/cashierservice/util/TokenUtil.java index fab5ba9..86404fa 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/util/TokenUtil.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/util/TokenUtil.java @@ -2,6 +2,7 @@ package com.chaozhanggui.system.cashierservice.util; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; import io.jsonwebtoken.Claims; import io.jsonwebtoken.JwtBuilder; import io.jsonwebtoken.Jwts; @@ -57,7 +58,15 @@ public class TokenUtil { return generateToken(claims); } + public static String generateJfToken(String openId,String userSign) throws Exception { + Map claims = new HashMap<>(1); + claims.put("openId",openId); + claims.put("userSign",userSign); + + + return generateToken(claims); + } /** * 生成token * @param claims @@ -105,12 +114,13 @@ public class TokenUtil { * @param token token * @return 用户Id */ - public static Object parseParamFromToken(final String token, final String paramName ) { + public static JSONObject parseParamFromToken(final String token) { Claims claims = Jwts.parser() .setSigningKey(TOKEN_SECRET) .parseClaimsJws(token) .getBody(); - return claims.get(paramName); + JSONObject jsonObject = (JSONObject) JSONObject.toJSON(claims); + return jsonObject; } public static void main(String[] args){ System.out.println(refreshToken("eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE1OTY4Nzc5MjEsInN1YiI6ImRkZGRkIiwiaWF0IjoxNTk2Njk3OTIxfQ.lrg3KF9h9izbmyD2q5onqnZIKBqanWy9xCcroFpjxPKmJz6kz27G9lVlFpVanrL1I4SFf3Dz3q3Xu01DX2T_dw"));