fix bug ,国际电话区号, 连接池释放配置

This commit is contained in:
Jack 2024-12-13 00:41:06 +08:00
parent 48aa92e2b8
commit 79cd942d3a
20 changed files with 61 additions and 25 deletions

View File

@ -7,6 +7,7 @@ import com.suisung.mall.account.service.AccountUserBaseService;
import com.suisung.mall.account.service.AccountUserInfoService;
import com.suisung.mall.common.api.CommonResult;
import com.suisung.mall.common.constant.AuthConstant;
import com.suisung.mall.common.constant.CommonConstant;
import com.suisung.mall.common.constant.RedisConstant;
import com.suisung.mall.common.service.impl.BaseControllerImpl;
import com.suisung.mall.common.utils.I18nUtil;
@ -70,7 +71,7 @@ public class LoginController extends BaseControllerImpl {
//user_account判断是否手机号
if (result.getStatus() != 200 && Validator.isNumber(user_account)) {
user_account = "+86" + user_account;
user_account = CommonConstant.IDD_ZH_CN + user_account;
if (PhoneNumberUtils.isValidNumber(user_account)) {
//尝试手机号绑定登录
result = accountUserBaseService.doMobileBindLogin(user_account, user_password);
@ -101,7 +102,7 @@ public class LoginController extends BaseControllerImpl {
//user_account判断是否手机号
if (result.getStatus() != 200 && Validator.isNumber(user_account)) {
user_account = "+86" + user_account;
user_account = CommonConstant.IDD_ZH_CN + user_account;
if (PhoneNumberUtils.isValidNumber(user_account)) {
//尝试手机号绑定登录
result = accountUserBaseService.doMobileBindLogin(user_account, user_password);

View File

@ -10,6 +10,7 @@ import com.suisung.mall.account.service.AccountUserBaseService;
import com.suisung.mall.account.service.AccountUserLoginService;
import com.suisung.mall.common.api.CommonResult;
import com.suisung.mall.common.constant.AuthConstant;
import com.suisung.mall.common.constant.CommonConstant;
import com.suisung.mall.common.constant.RedisConstant;
import com.suisung.mall.common.domain.UserDto;
import com.suisung.mall.common.exception.ApiUserException;
@ -147,7 +148,7 @@ public class AccountUserBaseController extends BaseControllerImpl {
//user_account判断是否手机号
if (result.getStatus() != 200 && Validator.isNumber(user_account)) {
user_account = "+86" + user_account;
user_account = CommonConstant.IDD_ZH_CN + user_account;
if (PhoneNumberUtils.isValidNumber(user_account)) {
//尝试手机号绑定登录
result = accountUserBaseService.doMobileBindLogin(user_account, user_password);

View File

@ -10,6 +10,7 @@ import cn.hutool.core.util.StrUtil;
import com.suisung.mall.account.service.*;
import com.suisung.mall.common.api.CommonResult;
import com.suisung.mall.common.api.ResultCode;
import com.suisung.mall.common.constant.CommonConstant;
import com.suisung.mall.common.domain.UserDto;
import com.suisung.mall.common.exception.ApiException;
import com.suisung.mall.common.feignService.PayService;
@ -272,9 +273,18 @@ public class UserController extends BaseControllerImpl {
@RequestMapping(value = "/verifyCode", method = RequestMethod.GET)
public CommonResult getVerifyCode(@RequestParam(name = "mobile", required = false) String mobile,
@RequestParam(name = "email", required = false) String email) {
if (StrUtil.isNotBlank(mobile) && !PhoneNumberUtils.isValidNumber(mobile)) {
throw new ApiException(I18nUtil._("请输入正确的手机号!"));
// 2024-12-12 update
if(StrUtil.isNotBlank(mobile)) {
if(!StrUtil.startWith(mobile, CommonConstant.IDD_ZH_CN)) {
mobile = CommonConstant.IDD_ZH_CN + mobile;
}
if(!PhoneNumberUtils.isValidNumber(mobile)){
throw new ApiException(I18nUtil._("请输入正确的手机号!"));
}
}
else if (StrUtil.isNotBlank(email) && !CheckUtil.isEmail(email)) {
throw new ApiException(I18nUtil._("请输入正确邮箱格式!"));
}

View File

@ -29,10 +29,7 @@ import com.suisung.mall.common.api.BindCode;
import com.suisung.mall.common.api.CommonResult;
import com.suisung.mall.common.api.PointsType;
import com.suisung.mall.common.api.ResultCode;
import com.suisung.mall.common.constant.AuthConstant;
import com.suisung.mall.common.constant.ConfigConstant;
import com.suisung.mall.common.constant.RedisConstant;
import com.suisung.mall.common.constant.SignConstant;
import com.suisung.mall.common.constant.*;
import com.suisung.mall.common.domain.RoleIdEnum;
import com.suisung.mall.common.domain.TokenDto;
import com.suisung.mall.common.domain.UserDto;
@ -2079,7 +2076,7 @@ public class AccountUserBaseServiceImpl extends BaseServiceImpl<AccountUserBaseM
}
//google类库解析为intl + mobile 获取信息
String user_intl = getParameter("user_intl", "+86");
String user_intl = getParameter("user_intl", CommonConstant.IDD_ZH_CN);
String mobile = StrUtil.replace(bind_id, user_intl, "");
bind_id = user_intl + mobile;
@ -2253,7 +2250,7 @@ public class AccountUserBaseServiceImpl extends BaseServiceImpl<AccountUserBaseM
//读取sms配置信息
String service_user_id = accountBaseConfigService.getConfig("service_user_id");
String service_app_key = accountBaseConfigService.getConfig("service_app_key");
number = StrUtil.removePrefix(number, "+86");
number = StrUtil.removePrefix(number, CommonConstant.IDD_ZH_CN);
SmsDto smsDto = new SmsDto();
@ -2340,7 +2337,7 @@ public class AccountUserBaseServiceImpl extends BaseServiceImpl<AccountUserBaseM
// todo 优化国际手机号截取
if (PhoneUtil.isMobile(number)) {
number = StrUtil.removePrefix(number, "+86");
number = StrUtil.removePrefix(number, CommonConstant.IDD_ZH_CN);
//读取sms配置信息
String service_user_id = accountBaseConfigService.getConfig("service_user_id");
String service_app_key = accountBaseConfigService.getConfig("service_app_key");

View File

@ -9,6 +9,7 @@ import com.suisung.mall.account.service.AccountUserBaseService;
import com.suisung.mall.account.service.AccountUserBindConnectService;
import com.suisung.mall.account.service.AccountUserInfoService;
import com.suisung.mall.common.api.ResultCode;
import com.suisung.mall.common.constant.CommonConstant;
import com.suisung.mall.common.exception.ApiException;
import com.suisung.mall.common.modules.account.AccountUserBase;
import com.suisung.mall.common.modules.account.AccountUserBindConnect;
@ -133,7 +134,7 @@ public class AccountUserBindConnectServiceImpl extends BaseServiceImpl<AccountUs
AccountUserInfo userInfo = new AccountUserInfo();
switch (bind_type) {
case 1:
String user_intl = ObjectUtil.defaultIfNull(getParameter("user_intl"), "+86");
String user_intl = ObjectUtil.defaultIfNull(getParameter("user_intl"), CommonConstant.IDD_ZH_CN);
String sub_user_intl = bind_id.substring(0, user_intl.length());
if (StrUtil.equals(user_intl, sub_user_intl)) {
userInfo.setUser_mobile(StrUtil.removePrefix(bind_id, sub_user_intl));

View File

@ -25,6 +25,8 @@ spring:
log-slow-sql: true
slow-sql-millis: 10
aop-patterns: com.suisung.mall.common.service.impl.*,com.suisung.mall.core.web.service.impl.*,com.suisung.mall.account.*
remove-abandoned: true
remove-abandoned-timeout: 1800
redis:
host: @redis.host@ # Redis服务器地址
database: @redis.database@ # Redis数据库索引默认为0

View File

@ -29,6 +29,8 @@ spring:
log-slow-sql: true
slow-sql-millis: 10
aop-patterns: com.suisung.mall.common.service.impl.*,com.suisung.mall.core.web.service.impl.*,com.suisung.mall.admin.*
remove-abandoned: true
remove-abandoned-timeout: 1800
redis:
# host: 127.0.0.1 # Redis服务器地址
host: @redis.host@ # Redis服务器地址

View File

@ -25,6 +25,8 @@ spring:
log-slow-sql: true
slow-sql-millis: 10
aop-patterns: com.suisung.mall.common.service.impl.*,com.suisung.mall.core.web.service.impl.*,com.suisung.mall.cms.*
remove-abandoned: true
remove-abandoned-timeout: 1800
redis:
host: @redis.host@ # Redis服务器地址
database: @redis.database@ # Redis数据库索引默认为0

View File

@ -19,6 +19,9 @@ public class CommonConstant {
public static final Integer Delivery_Amount_Comput_Type_Discounted = 2;
public static final Integer Delivery_Amount_Comput_Type_Payment = 3;
// 国际电话区号
public static final String IDD_ZH_CN = "+86"; //中国
// 店铺角色权限组
public static final String STORE_RIGHT_GROUP_ADMIN = "店铺管理员"; // 店铺管理员;
public static final String STORE_RIGHT_GROUP_YYJL = "运营经理"; // 店铺管理员;

View File

@ -48,12 +48,12 @@ public class AliServiceImpl implements ThirdService {
request.setTemplateParam(JSONUtil.toJsonStr(paramMap)); // json 格式
}
logger.info("阿里云短信发送请求的参数{}", JSONUtil.toJsonStr(smsDto));
logger.info("阿里云短信发送请求的参数(通用模版){}", JSONUtil.toJsonStr(smsDto));
// 获取发送结果
try {
SendSmsResponse response = client.getAcsResponse(request);
logger.info("阿里云短信发送返回结果{}", response);
logger.info("阿里云短信发送返回结果(通用模版){}", response);
if (!response.getCode().equals("OK")) {
String errMsg = response.getMessage();
LogUtil.error(ErrorTypeEnum.ERR_ALI_SERVICE.getValue(), errMsg);

View File

@ -168,7 +168,7 @@ public class PhoneNumberUtils {
}
/**
* 判定手机号是否可用
* 判定手机号带区号的号码是否可用
*
* @param phoneNumber 带区号的号码
* +8613111111111中国

View File

@ -25,6 +25,8 @@ spring:
log-slow-sql: true
slow-sql-millis: 10
aop-patterns: com.suisung.mall.common.service.impl.*,com.suisung.mall.core.web.service.impl.*,com.suisung.mall.im.*
remove-abandoned: true
remove-abandoned-timeout: 1800
redis:
host: @redis.host@ # Redis服务器地址
database: @redis.database@ # Redis数据库索引默认为0

View File

@ -25,6 +25,8 @@ spring:
log-slow-sql: true
slow-sql-millis: 10
aop-patterns: com.suisung.mall.common.service.impl.*,com.suisung.mall.core.web.service.impl.*,com.suisung.mall.pay.*
remove-abandoned: true
remove-abandoned-timeout: 1800
redis:
host: @redis.host@ # Redis服务器地址
database: @redis.database@ # Redis数据库索引默认为0

View File

@ -25,6 +25,8 @@ spring:
log-slow-sql: true
slow-sql-millis: 10
aop-patterns: com.suisung.mall.common.service.impl.*,com.suisung.mall.core.web.service.impl.*,com.suisung.mall.search.*
remove-abandoned: true
remove-abandoned-timeout: 1800
data:
elasticsearch:
repositories:

View File

@ -3,6 +3,7 @@ package com.suisung.mall.shop.message.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
@ -15,6 +16,7 @@ import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.suisung.mall.common.api.BindCode;
import com.suisung.mall.common.constant.CommonConstant;
import com.suisung.mall.common.exception.ApiException;
import com.suisung.mall.common.feignService.AccountService;
import com.suisung.mall.common.feignService.SnsService;
@ -271,7 +273,7 @@ public class ShopMessageTemplateServiceImpl extends BaseServiceImpl<ShopMessageT
// String message_sms = dealMessageTemplate(message_row.getMessage_sms(), args);
//str = '[chain_name]的商品库存不足请及时补货SPU[product_id]SKU[item_id],可去店铺查看详情';
mobile = StrUtil.removePrefix(mobile, "+86");
mobile = StrUtil.removePrefix(mobile, CommonConstant.IDD_ZH_CN);
String service_user_id = accountBaseConfigService.getConfig("service_user_id");
String service_app_key = accountBaseConfigService.getConfig("service_app_key");
SmsDto smsDto = new SmsDto();
@ -280,7 +282,7 @@ public class ShopMessageTemplateServiceImpl extends BaseServiceImpl<ShopMessageT
smsDto.setServiceUserId(service_user_id);
smsDto.setServiceAppKey(service_app_key);
//其它通道要赋值通道信息 appid 以及 key
//阿里云短信通道要赋值通道信息 appid 以及 key
String aliyunSmsAccessKeyId = accountBaseConfigService.getConfig("aliyun_sms_access_key_id");
String aliyunSmsAccessKeySecret = accountBaseConfigService.getConfig("aliyun_sms_access_key_secret");
String aliyunSmsRegionId = accountBaseConfigService.getConfig("aliyun_sms_region_id");
@ -291,12 +293,12 @@ public class ShopMessageTemplateServiceImpl extends BaseServiceImpl<ShopMessageT
smsDto.setAliyunSmsRegionId(aliyunSmsRegionId);
smsDto.setSmsSign(aliyunSmsSign);
// 华为短信通道
String huaweiSmsKey = accountBaseConfigService.getConfig("huawei_sms_access_key");
String huaweiSmsKeySecret = accountBaseConfigService.getConfig("huawei_sms_access_secret");
smsDto.setHuaweiSmsKey(huaweiSmsKey);
smsDto.setHuaweiSmsKeySecret(huaweiSmsKeySecret);
// 短信应用SDK AppID 1400开头
Integer tengxunAppId = accountBaseConfigService.getConfig("tengxun_sms_app_id", 0);
// 短信应用SDK AppKey
@ -304,18 +306,17 @@ public class ShopMessageTemplateServiceImpl extends BaseServiceImpl<ShopMessageT
smsDto.setTengxunAppId(tengxunAppId);
smsDto.setTengxunAppkey(tengxunAppkey);
smsDto.setMobile(mobile);
smsDto.setTemplateCode(message_row.getMessage_tpl_id());
smsDto.setTemplateCode(message_row.getMessage_tpl_id()); // 重要比如阿里云腾讯云的短信模版code id比如阿里云SMS_475836097
smsDto.setContent(message_row.getMessage_sms());
smsDto.setParamMap(args); //传入模板对应参数
smsDto.setTengxunTemplateId(Convert.toInt(message_row.getMessage_tpl_id()));
smsDto.setTengxunTemplateId(NumberUtil.parseInt(message_row.getMessage_tpl_id(),0));
try {
ThirdUtil.send(smsDto);
log.debug("消息发送的数据{}", smsDto);
log.debug("消息发送的数据(通用){}", smsDto);
} catch (Exception e) {
LogUtil.error(ErrorTypeEnum.ERR_PSUH_MSG.getValue(), e);
}
@ -635,6 +636,8 @@ public class ShopMessageTemplateServiceImpl extends BaseServiceImpl<ShopMessageT
return false;
}
log.debug("给手机{}发送短信{}成功", mobile, tmplCode);
return true;
} catch (ClientException e) {
LogUtil.error(ErrorTypeEnum.ERR_ALI_SERVICE.getValue(), e);

View File

@ -3075,8 +3075,8 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
Map<String, Object> tmplArgs = new HashMap<>(2);
tmplArgs.put("order_id", order_id);
tmplArgs.put("order_payment_amount", order_payment_amount);
// 所有店铺管理员的发送邮件 提醒商家收到一笔${order_payment_amount}元新订单${order_id}付款请及时处理
shopMessageTemplateService.aliyunSmsSend(shopKeeperMobiles, "SMS_475831067", tmplArgs);//SMS_475945807
// 所有店铺管理员的发送邮件 提醒商家有一笔新的订单 ${order_id}请及时处理
shopMessageTemplateService.aliyunSmsSend(shopKeeperMobiles, "SMS_475836097", tmplArgs);//SMS_475945807
}
// 付款成功对通知推广员进行提醒

View File

@ -2,6 +2,7 @@ package com.suisung.mall.shop.store.controller.admin;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.suisung.mall.common.api.CommonResult;
import com.suisung.mall.common.constant.CommonConstant;
import com.suisung.mall.common.modules.store.ShopStoreEmployee;
import com.suisung.mall.shop.store.service.ShopStoreEmployeeService;
import io.swagger.annotations.Api;
@ -74,6 +75,8 @@ public class ShopStoreEmployeeController {
userInfo.put("user_account", user_account);
userInfo.put("user_password", user_password);
userInfo.put("user_nickname", user_nickname);
// 2024-12-12 update
userInfo.put("user_intl", CommonConstant.IDD_ZH_CN);
if (user_gender != null) {
userInfo.put("user_gender", user_gender);
}

View File

@ -148,6 +148,7 @@ public class ShopStoreEmployeeServiceImpl extends BaseServiceImpl<ShopStoreEmplo
UserDto user = getCurrentUser();
Integer store_id = Convert.toInt(user.getStore_id());
Integer employee_id = shopStoreEmployee.getEmployee_id();
if (user.isStore() && employee_id == null) {
userInfo.put("auto_login", false);
userInfo.put("rights_group_id", 1);

View File

@ -31,6 +31,8 @@ spring:
log-slow-sql: true
slow-sql-millis: 10
aop-patterns: com.suisung.mall.common.service.impl.*,com.suisung.mall.core.web.service.impl.*,com.suisung.mall.shop.*
remove-abandoned: true
remove-abandoned-timeout: 1800
redis:
host: @redis.host@ # Redis服务器地址
database: @redis.database@ # Redis数据库索引默认为0

View File

@ -25,6 +25,8 @@ spring:
log-slow-sql: true
slow-sql-millis: 10
aop-patterns: com.suisung.mall.common.service.impl.*,com.suisung.mall.core.web.service.impl.*,com.suisung.mall.sns.*
remove-abandoned: true
remove-abandoned-timeout: 1800
redis:
host: @redis.host@ # Redis服务器地址
database: @redis.database@ # Redis数据库索引默认为0