Commit 9f290dbd authored by 技术部-任文超's avatar 技术部-任文超

Merge branch '20180301-Fixed_LogException' into 20180316-UserStatistics

parents ae182cb4 d4f56fcf
......@@ -25,7 +25,7 @@ import java.util.Set;
@Configuration
public class RedisConfig {
@Value("${xyqb.data.redis.defaultExpiration}")
@Value("${xyqb.redis.defaultExpiration}")
private Long defaultExpiration;
@Value("${xyqb.redis.master.host}")
private String masterHost;
......
......@@ -477,12 +477,16 @@ public class InnerController implements IBaseController {
}
addressObj.setUserId(userId);
addressObj.setProvinceCode(provinceCode);
addressObj.setProvince(province);
addressObj.setCityCode(cityCode);
addressObj.setCity(city);
addressObj.setDistrictCode(districtCode);
addressObj.setDistrict(district);
addressObj.setAddress(address);
addressObj.setProvince(province);
if (StringUtils.isNotBlank(address)) {
// 替换所有,UTF-8编码时4字节的Emoji表情字符
addressObj.setAddress(EmojiUtil.filterUnicode4(address));
}
addressObj = addressService.save(addressObj);
LOGGER.info("保存后地址详情:{}", addressObj);
return JsonResult.buildSuccessResult(null, AddressRet.address2AddressRet(addressObj));
......
......@@ -238,10 +238,17 @@ public class WeChatController implements IBaseController {
if (userInfoInDb == null) {
// 微信用户首次登录界面, 首先保存userInfo, 跳入到微信注册登录界面
if (StringUtils.isNotBlank(userInfo.getNickName())) {
String nickName = EmojiUtil.filter(userInfo.getNickName());
// 替换所有,UTF-8编码时4字节的Emoji表情字符
String nickName = EmojiUtil.filterUnicode4(userInfo.getNickName());
userInfo.setNickName(nickName);
}
userInfo = wechatService.saveWechatUserInfo(userInfo);
try{
userInfo = wechatService.saveWechatUserInfo(userInfo);
}catch (Exception e){
LOGGER.warn("微信用户首次登陆,保存userInfo异常,执行操作:Nick置为*并重新保存.", e);
userInfo.setNickName(EmojiUtil.BYTE_4_REPLACE_TEMPLATE);
userInfo = wechatService.saveWechatUserInfo(userInfo);
}
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfo, registerFrom, domain);
return;
}
......
......@@ -6,6 +6,7 @@ import cn.quantgroup.xyqb.entity.*;
import cn.quantgroup.user.enums.*;
import cn.quantgroup.xyqb.model.JsonResult;
import cn.quantgroup.xyqb.service.user.*;
import cn.quantgroup.xyqb.util.EmojiUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import org.apache.commons.collections.CollectionUtils;
......@@ -142,6 +143,10 @@ public class UserCenterController {
if(null == userId || userId == 0L) {
return JsonResult.buildErrorStateResult("该用户不存在", null);
}
if (StringUtils.isNotBlank(nick)) {
// 替换所有,UTF-8编码时4字节的Emoji表情字符
nick = EmojiUtil.filterUnicode4(nick);
}
UserAttached userAttached = userCenterService.searchUserAttachedByUserId(userId);
if(null == userAttached) {
userAttached = createUserAttached(userId, "", nick);
......@@ -290,6 +295,10 @@ public class UserCenterController {
addressInfo.setDistrictCode(districtCode);
addressInfo.setDistrict(district);
addressInfo.setAddress(address);
if (StringUtils.isNotBlank(address)) {
// 替换所有,UTF-8编码时4字节的Emoji表情字符
addressInfo.setAddress(EmojiUtil.filterUnicode4(address));
}
//更新时间
addressInfo.setUpdateAt(new Timestamp(System.currentTimeMillis()));
addressService.save(addressInfo);
......
......@@ -53,11 +53,14 @@ public class UserDetailController implements IBaseController {
return JsonResult.buildErrorStateResult("系统错误", null);
}
Timestamp now = new Timestamp(System.currentTimeMillis());
UserDetail userDetail = new UserDetail();
UserDetail userDetail = userDetailService.findByUserId(user.getId());
if (null == userDetail) {
userDetail = new UserDetail();
userDetail.setCreatedAt(now);
}
userDetail.setIdNo(idNo);
userDetail.setPhoneNo(user.getPhoneNo());
userDetail.setUserId(user.getId());
userDetail.setCreatedAt(now);
userDetail.setUpdatedAt(now);
userDetail.setName(name);
userDetail.setGender(info.getGender());
......
package cn.quantgroup.xyqb.util;
import java.util.regex.Pattern;
/**
* Created by 11 on 2017/2/9.
* 过滤emoji表情
* @author renwc
* @date 2018-02-26
*/
public class EmojiUtil {
public static final String BYTE_4_REPLACE_TEMPLATE = "*";
/**
* Emoji表情
* 1-3字节
* [©-㊙]
*/
private static final Pattern EMOJI_USC_123 = Pattern.compile("[©-㊙]|\ufe0f");
/**
* Emoji表情
* 4字节
* [🀄-🧦]
*/
private static final Pattern EMOJI_USC_4 = Pattern.compile("[\uD83C\uDC04-\uD83E\uDDE6]");
/**
* Emoji表情
* 1-4字节
* [©-㊙]|[🀄-🧦]
*/
private static final Pattern EMOJI_USC_1234 = Pattern.compile("[\uD83C\uDC04-\uD83E\uDDE6]|[©-㊙]|\ufe0f");
private static final Pattern EMOJI = Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]");
/**
* 替换所有Emoji表情字符
* @param text
* @return
*/
public static String filterUnicode1234(String text) {
return text == null || text.trim().isEmpty() ? text : EMOJI_USC_1234.matcher(text).replaceAll("");
}
public static String filter(String str) {
return str == null || str.trim().isEmpty() ? str : EMOJI.matcher(str).replaceAll("");
/**
* 替换所有Emoji表情字符
* 条件:UTF-8编码时4字节的
* @param text
* @return
*/
public static String filterUnicode4(String text) {
return text == null || text.trim().isEmpty() ? text : EMOJI_USC_4.matcher(text).replaceAll(BYTE_4_REPLACE_TEMPLATE);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment