java110 лет назад: 5
Родитель
Сommit
ddb7979df5

+ 66 - 0
java110-utils/src/main/java/com/java110/utils/util/StringUtil.java

@@ -11,6 +11,7 @@ import com.alibaba.fastjson.JSONObject;
 
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 
@@ -557,4 +558,69 @@ public class StringUtil {
         return newstr;
     }
 
+
+
+    public static String encodeEmoji(String orgStr)
+    {
+        if (StringUtil.isEmpty(orgStr))
+        {
+            return orgStr;
+        }
+        String temp = orgStr;
+        Pattern pattern = Pattern.compile("[^\u0000-\uffff]", Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
+        Matcher matcher = pattern.matcher(orgStr);
+        while (matcher.find())
+        {
+            StringBuilder sb = new StringBuilder("[em:");
+            String mStr = matcher.group();
+            for (int i = 0; i < mStr.length(); i++)
+            {
+                int emoji = mStr.charAt(i);
+                if (i < mStr.length() - 1)
+                {
+                    sb.append(emoji).append('-');
+                }
+                else
+                {
+                    sb.append(emoji).append(']');
+                }
+            }
+            temp = temp.replaceAll(mStr, sb.toString());
+        }
+        return temp;
+    }
+
+    public static String decodeEmoji(String orgStr)
+    {
+        if (StringUtil.isEmpty(orgStr))
+        {
+            return orgStr;
+        }
+        String temp = orgStr;
+        Pattern pattern = Pattern.compile("\\[em:[\\d\\-]+\\]", Pattern.CASE_INSENSITIVE);
+        Matcher matcher = pattern.matcher(orgStr);
+        while (matcher.find())
+        {
+            StringBuilder sb = new StringBuilder("\\[em:");
+            StringBuilder emojiSb = new StringBuilder();
+            String mStr = matcher.group();
+            String[] emojis = mStr.substring(4, mStr.length() - 1).split("-");
+            for (int i = 0; i < emojis.length; i++)
+            {
+                int emoji = Integer.parseInt(emojis[i]);
+                emojiSb.append((char)emoji);
+                if (i < emojis.length - 1)
+                {
+                    sb.append(emoji).append("\\-");
+                }
+                else
+                {
+                    sb.append(emoji).append("\\]");
+                }
+            }
+            temp = temp.replaceAll(sb.toString(), emojiSb.toString());
+        }
+        return temp;
+    }
+
 }

+ 9 - 9
service-front/src/main/java/com/java110/front/smo/login/impl/OwnerAppLoginSMOImpl.java

@@ -230,8 +230,8 @@ public class OwnerAppLoginSMOImpl extends AbstractFrontServiceSMO implements IOw
             //将openId放到redis 缓存,给前段下发临时票据
             String code = UUID.randomUUID().toString();
             CommonCache.setValue(code, openId, expireTime);
-            CommonCache.setValue(code+"-nickname",  userinfo_paramObj.getString("nickname"), expireTime);
-            CommonCache.setValue(code+"-headimgurl",  userinfo_paramObj.getString("headimgurl"), expireTime);
+            CommonCache.setValue(code + "-nickname", userinfo_paramObj.getString("nickname"), expireTime);
+            CommonCache.setValue(code + "-headimgurl", userinfo_paramObj.getString("headimgurl"), expireTime);
             if (errorUrl.indexOf("?") > 0) {
                 errorUrl += ("&code=" + code);
             } else {
@@ -252,8 +252,8 @@ public class OwnerAppLoginSMOImpl extends AbstractFrontServiceSMO implements IOw
             //将openId放到redis 缓存,给前段下发临时票据
             String code = UUID.randomUUID().toString();
             CommonCache.setValue(code, openId, expireTime);
-            CommonCache.setValue(code+"-nickname",  userinfo_paramObj.getString("nickname"), expireTime);
-            CommonCache.setValue(code+"-headimgurl",  userinfo_paramObj.getString("headimgurl"), expireTime);
+            CommonCache.setValue(code + "-nickname", userinfo_paramObj.getString("nickname"), expireTime);
+            CommonCache.setValue(code + "-headimgurl", userinfo_paramObj.getString("headimgurl"), expireTime);
             if (errorUrl.indexOf("?") > 0) {
                 errorUrl += ("&code=" + code);
             } else {
@@ -281,8 +281,8 @@ public class OwnerAppLoginSMOImpl extends AbstractFrontServiceSMO implements IOw
         if (StringUtil.isEmpty(tmpUserDto.getKey())) {
             String code = UUID.randomUUID().toString();
             CommonCache.setValue(code, openId, expireTime);
-            CommonCache.setValue(code+"-nickname",  userinfo_paramObj.getString("nickname"), expireTime);
-            CommonCache.setValue(code+"-headimgurl",  userinfo_paramObj.getString("headimgurl"), expireTime);
+            CommonCache.setValue(code + "-nickname", userinfo_paramObj.getString("nickname"), expireTime);
+            CommonCache.setValue(code + "-headimgurl", userinfo_paramObj.getString("headimgurl"), expireTime);
             if (errorUrl.indexOf("?") > 0) {
                 errorUrl += ("&code=" + code);
             } else {
@@ -395,8 +395,8 @@ public class OwnerAppLoginSMOImpl extends AbstractFrontServiceSMO implements IOw
         String code = paramIn.getString("code");
 
         String openId = CommonCache.getValue(code);
-        String nickname = CommonCache.getValue(code+"-nickname");
-        String headimgurl = CommonCache.getValue(code+"-headimgurl");
+        String nickname = CommonCache.getValue(code + "-nickname");
+        String headimgurl = CommonCache.getValue(code + "-headimgurl");
 
         if (StringUtil.isEmpty(openId)) {
             responseEntity = new ResponseEntity<>("页面失效,请刷新后重试", HttpStatus.UNAUTHORIZED);
@@ -413,7 +413,7 @@ public class OwnerAppLoginSMOImpl extends AbstractFrontServiceSMO implements IOw
         JSONObject userOwnerInfo = new JSONObject();
         OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
         ownerAppUserDto.setOpenId(openId);
-        ownerAppUserDto.setNickName(nickname);
+        ownerAppUserDto.setNickName(StringUtil.encodeEmoji(nickname));
         ownerAppUserDto.setHeadImgUrl(headimgurl);
         ownerAppUserDto.setAppType(OwnerAppUserDto.APP_TYPE_WECHAT);
         if (curOwnerApp != null) {