SmsService移动到系统模块
This commit is contained in:
@@ -9,8 +9,9 @@ import com.czg.config.RedisCst;
|
||||
import com.czg.exception.ApiNotPrintException;
|
||||
import com.czg.sa.StpKit;
|
||||
import com.czg.service.RedisService;
|
||||
import com.czg.utils.SmsUtil;
|
||||
import com.czg.system.service.SmsService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
@@ -18,8 +19,8 @@ import org.springframework.stereotype.Service;
|
||||
*/
|
||||
@Service
|
||||
public class CommonServiceImpl implements CommonService {
|
||||
@Resource
|
||||
private SmsUtil smsUtil;
|
||||
@DubboReference
|
||||
private SmsService smsService;
|
||||
@Resource
|
||||
private SysUserService sysUserService;
|
||||
@Resource
|
||||
@@ -33,7 +34,7 @@ public class CommonServiceImpl implements CommonService {
|
||||
}
|
||||
int code = RandomUtil.randomInt(100000, 1000000);
|
||||
redisService.set(RedisCst.SMS_CODE + sysUser.getPhone() + ":" + type, code, 300);
|
||||
smsUtil.sendCode(sysUser.getPhone(), String.valueOf(code));
|
||||
smsService.sendCode(sysUser.getPhone(), String.valueOf(code));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,10 +55,17 @@ public class UserAuthorizationServiceImpl implements UserAuthorizationService {
|
||||
@Override
|
||||
public String getPhone(GetPhoneDTO phoneDTO) {
|
||||
String mobile;
|
||||
String openId;
|
||||
UserInfo userInfo;
|
||||
if (UserAuthSourceEnum.ALIPAY.getValue().equals(phoneDTO.getSource())) {
|
||||
openId = alipayUtil.getOpenId(phoneDTO.getCode(), true);
|
||||
mobile = alipayUtil.getMobile(phoneDTO.getEncryptedData());
|
||||
userInfo = userInfoService.queryChain().eq(UserInfo::getWechatOpenId, openId).one();
|
||||
} else {
|
||||
String sessionKey = wechatAuthUtil.getSessionKey(phoneDTO.getCode(), "session_key");
|
||||
JSONObject session = wechatAuthUtil.getSession(phoneDTO.getCode());
|
||||
String sessionKey = session.getString("session_key");
|
||||
openId = session.getString("openId");
|
||||
userInfo = userInfoService.queryChain().eq(UserInfo::getAlipayOpenId, openId).one();
|
||||
String data = WxMaCryptUtils.decrypt(sessionKey, phoneDTO.getEncryptedData(), phoneDTO.getIv());
|
||||
JSONObject jsonObject = JSONObject.parseObject(data);
|
||||
if (jsonObject.containsKey("phoneNumber")) {
|
||||
|
||||
@@ -8,20 +8,17 @@ import com.czg.account.dto.user.userinfo.UserInfoAssetsSummaryDTO;
|
||||
import com.czg.account.dto.user.userinfo.UserInfoDTO;
|
||||
import com.czg.account.dto.user.userinfo.UserInfoEditDTO;
|
||||
import com.czg.account.dto.user.userinfo.UserInfoPwdEditDTO;
|
||||
import com.czg.account.entity.ShopUser;
|
||||
import com.czg.account.entity.SysUser;
|
||||
import com.czg.account.entity.UserInfo;
|
||||
import com.czg.account.service.UserInfoService;
|
||||
import com.czg.config.RedisCst;
|
||||
import com.czg.exception.ApiNotPrintException;
|
||||
import com.czg.sa.StpKit;
|
||||
import com.czg.service.RedisService;
|
||||
import com.czg.service.account.mapper.ShopUserMapper;
|
||||
import com.czg.service.account.mapper.UserInfoMapper;
|
||||
import com.czg.utils.SmsUtil;
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import com.czg.system.service.SmsService;
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
|
||||
/**
|
||||
@@ -36,8 +33,9 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
|
||||
private ShopUserMapper shopUserMapper;
|
||||
@Resource
|
||||
private RedisService redisService;
|
||||
@Resource
|
||||
private SmsUtil smsUtil;
|
||||
|
||||
@DubboReference
|
||||
private SmsService smsService;
|
||||
|
||||
@Override
|
||||
public UserInfoDTO getInfo(long userInfoId) {
|
||||
@@ -67,7 +65,7 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
|
||||
}
|
||||
int code = RandomUtil.randomInt(100000, 1000000);
|
||||
redisService.set("%s%s:%s".formatted(RedisCst.SMS_CODE, userInfo.getPhone(), type), String.valueOf(code), 300);
|
||||
smsUtil.sendCode(userInfo.getPhone(), String.valueOf(code));
|
||||
smsService.sendCode(userInfo.getPhone(), String.valueOf(code));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.czg.service.system.service.impl;
|
||||
|
||||
import com.aliyun.dysmsapi20170525.Client;
|
||||
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
|
||||
import com.aliyun.teaopenapi.models.Config;
|
||||
import com.czg.exception.ApiNotPrintException;
|
||||
import com.czg.resp.CzgResult;
|
||||
import com.czg.system.dto.SysParamsDTO;
|
||||
import com.czg.system.service.SmsService;
|
||||
import com.czg.system.service.SysParamsService;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 验证码工具类
|
||||
*
|
||||
* @author Administrator
|
||||
*/
|
||||
@DubboService
|
||||
@Slf4j
|
||||
public class SmsServiceImpl implements SmsService {
|
||||
@Resource
|
||||
private SysParamsService sysParamsService;
|
||||
|
||||
/**
|
||||
* 阿里云key
|
||||
*/
|
||||
// @Value("${alipay.sms.key}")
|
||||
private String key;
|
||||
/**
|
||||
* 阿里云secret
|
||||
*/
|
||||
// @Value("${alipay.sms.secret}")
|
||||
private String secret;
|
||||
/**
|
||||
* 短信模板id
|
||||
*/
|
||||
// @Value("${alipay.sms.templateCode}")
|
||||
private String templateCode;
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
CzgResult<SysParamsDTO> aliSmsKey = sysParamsService.getParamsByCode("ali_sms_key");
|
||||
CzgResult<SysParamsDTO> aliSmsSecret = sysParamsService.getParamsByCode("ali_sms_secret");
|
||||
CzgResult<SysParamsDTO> aliSmsTemplateCode = sysParamsService.getParamsByCode("ali_sms_template_code");
|
||||
key = aliSmsKey.getData().getParamValue();
|
||||
secret = aliSmsSecret.getData().getParamValue();
|
||||
templateCode = aliSmsTemplateCode.getData().getParamValue();
|
||||
log.info("短信工具类初始化完毕,key: {}, secret: {}, templateCode: {}", key, secret, templateCode);
|
||||
}
|
||||
|
||||
public Client createClient() throws Exception {
|
||||
Config config = new Config();
|
||||
config.accessKeyId = key;
|
||||
config.accessKeySecret = secret;
|
||||
return new Client(config);
|
||||
}
|
||||
|
||||
public void sendCode(String phone, String checkCode) {
|
||||
try {
|
||||
Client client = createClient();
|
||||
// 1.发送短信
|
||||
com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
|
||||
.setSignName("银收客")
|
||||
.setTemplateCode(templateCode)
|
||||
.setTemplateParam("{\"code\":" + "'" + checkCode + "'" + "}")
|
||||
.setPhoneNumbers(phone);
|
||||
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
|
||||
log.info("短信发送请求参数: 手机号: {}, 短信模板: {}, 短信内容: {}", phone, templateCode, checkCode);
|
||||
SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime);
|
||||
if (sendSmsResponse.getStatusCode() != 200) {
|
||||
throw new ApiNotPrintException("短信发送失败");
|
||||
}
|
||||
}catch (Exception e) {
|
||||
log.info("发送短信失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Config config = new Config();
|
||||
config.accessKeyId = "LTAI5tPdEfYSZcqHbjCrtPRD";
|
||||
config.accessKeySecret = "DZjyHBq3nTujF0NMLxnZgsecU8ZCvy";
|
||||
Client client = new Client(config);
|
||||
// 1.发送短信
|
||||
com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
|
||||
.setSignName("银收客")
|
||||
.setTemplateCode("SMS_244665149")
|
||||
.setTemplateParam("{\"code\":" + "'" + "23123" + "'" + "}")
|
||||
.setPhoneNumbers("19502966242");
|
||||
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
|
||||
SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime);
|
||||
System.out.println(sendSmsResponse);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user