yangdamao 5 kuukautta sitten
vanhempi
commit
6c1756d106

+ 3 - 0
zhichen-admin/src/main/java/com/zhichen/controller/cos/CosController.java

@@ -4,6 +4,7 @@ package com.zhichen.controller.cos;
 import com.zhichen.common.core.controller.BaseController;
 import com.zhichen.common.core.domain.AjaxResult;
 import com.zhichen.modules.alioss.bo.OssRequest;
+import com.zhichen.modules.alioss.vo.ResultBean;
 import com.zhichen.modules.txcos.service.CosService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -11,6 +12,8 @@ import lombok.RequiredArgsConstructor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;

+ 15 - 2
zhichen-admin/src/main/resources/application.yml

@@ -259,8 +259,21 @@ poliv:
 
 tencent:
   cloud:
-    SecretId: AKIDd6XkjTw9D1atwkJceS2NSIuHPK1ThfOr
-    SecretKey: GG2ZqrdCWcS6Yx72h6F7k7E4ey2qPnwq
+    SecretId: AKIDfDaKgROLSM4DVHRPAh072jDUbWEi1AGB
+    SecretKey: oS3hDXiR2PYUCnQo0yhDVaR4UgeOvEKB
+
+tengxun:
+  sms:
+    signName: 广东志宸科技
+    sdkAppId: 1400970406
+    registerTemplateId: 2417860
+    loginTemplateId: 2417863
+    forgetTemplateId: 2417861
+    pwdTemplateId: 0
+    bindNewTelId: 0
+    secretld: AKIDfDaKgROLSM4DVHRPAh072jDUbWEi1AGB
+    secretkey: oS3hDXiR2PYUCnQo0yhDVaR4UgeOvEKB
+
 
 aliyun:
   sms:

+ 4 - 4
zhichen-api/src/main/java/com/zhichen/controller/cmmon/CommonController.java

@@ -331,16 +331,16 @@ public class CommonController extends BaseController {
             return AjaxResult.success("成功",tenantId.toString());
         }else{
             if(Validator.isNotEmpty(bo.getHostH5())&&bo.getHostH5().equals("120.79.166.78:19012")){
-                return AjaxResult.success("成功","867735392558919680");
+                return AjaxResult.success("成功","1");
             }
             if(Validator.isNotEmpty(bo.getHostLive())&&bo.getHostLive().equals("120.79.166.78:19012")){
-                return AjaxResult.success("成功","867735392558919680");
+                return AjaxResult.success("成功","1");
             }
             if(Validator.isNotEmpty(bo.getHostPc())&&bo.getHostPc().equals("120.79.166.78:19012")){
-                return AjaxResult.success("成功","867735392558919680");
+                return AjaxResult.success("成功","1");
             }
             if(Validator.isNotEmpty(bo.getHostH5Seller())&&bo.getHostH5Seller().equals("120.79.166.78:19012")){
-                return AjaxResult.success("成功","867735392558919680");
+                return AjaxResult.success("成功","1");
             }
             return AjaxResult.error("失败",null);
         }

+ 9 - 0
zhichen-api/src/main/java/com/zhichen/controller/user/SmsController.java

@@ -9,6 +9,7 @@ import com.zhichen.common.exception.CustomException;
 import com.zhichen.common.utils.ServletUtils;
 import com.zhichen.modules.alisms.bo.SmsAddBo;
 import com.zhichen.modules.alisms.service.IAliSmsService;
+import com.zhichen.modules.alisms.service.TengXunSmsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -29,6 +30,7 @@ public class SmsController extends BaseController {
 
     private final IAliSmsService iSmsService;
     private final RedisCache redisCache;
+    private final TengXunSmsService tengXunSmsService;
 
     @ApiOperation("获取注册短信")
     @PostMapping("/register")
@@ -84,4 +86,11 @@ public class SmsController extends BaseController {
             throw new CustomException("图形验证码验证失败!请重新输入");
         }
     }
+
+
+    @PostMapping("/ceshi")
+    public AjaxResult ceshi(@RequestBody SmsAddBo bo) {
+        tengXunSmsService.ceshi(bo.getTel());
+        return AjaxResult.success();
+    }
 }

+ 14 - 2
zhichen-api/src/main/resources/application.yml

@@ -256,8 +256,20 @@ poliv:
 
 tencent:
   cloud:
-    SecretId: AKIDd6XkjTw9D1atwkJceS2NSIuHPK1ThfOr
-    SecretKey: GG2ZqrdCWcS6Yx72h6F7k7E4ey2qPnwq
+    SecretId: AKIDfDaKgROLSM4DVHRPAh072jDUbWEi1AGB
+    SecretKey: oS3hDXiR2PYUCnQo0yhDVaR4UgeOvEKB
+
+tengxun:
+    sms:
+      signName: 广东志宸科技
+      sdkAppId: 1400970406
+      registerTemplateId: 2417860
+      loginTemplateId: 2417863
+      forgetTemplateId: 2417861
+      pwdTemplateId: 0
+      bindNewTelId: 0
+      secretld: AKIDfDaKgROLSM4DVHRPAh072jDUbWEi1AGB
+      secretkey: oS3hDXiR2PYUCnQo0yhDVaR4UgeOvEKB
 
 
 aliyun:

+ 59 - 0
zhichen-common/src/main/java/com/zhichen/common/utils/TengXunSmsUtils.java

@@ -0,0 +1,59 @@
+package com.zhichen.common.utils;
+
+import com.tencentcloudapi.common.Credential;
+import com.tencentcloudapi.common.profile.ClientProfile;
+import com.tencentcloudapi.common.profile.HttpProfile;
+import com.tencentcloudapi.common.exception.TencentCloudSDKException;
+import com.tencentcloudapi.sms.v20210111.SmsClient;
+import com.tencentcloudapi.sms.v20210111.models.*;
+
+public class TengXunSmsUtils {
+
+    public static SmsClient createClient(String accessKeyId, String accessKeySecret) throws Exception {
+        // 实例化认证对象,参数需传入腾讯云账户的 SecretId 和 SecretKey
+        Credential cred = new Credential(accessKeyId, accessKeySecret);
+
+        // 实例化 HTTP 选项(可选,跳过则使用默认设置)
+        HttpProfile httpProfile = new HttpProfile();
+        httpProfile.setReqMethod("POST");  // POST 请求(默认)
+        httpProfile.setConnTimeout(60);    // 请求连接超时时间(秒)
+        httpProfile.setEndpoint("sms.tencentcloudapi.com");  // 指定接入地域域名
+
+        // 实例化客户端配置对象
+        ClientProfile clientProfile = new ClientProfile();
+        clientProfile.setHttpProfile(httpProfile);
+        clientProfile.setSignMethod("TC3-HMAC-SHA256");  // 指定签名算法
+
+        // 实例化 SMS 客户端对象
+        return new SmsClient(cred, "ap-guangzhou", clientProfile);
+    }
+
+    public static SendSmsResponse sendSms(String tel,String signName,String templateId,String param,String accessKeyId,String accessKeySecret,String sdkAppId) throws  Exception {
+
+        SmsClient client = TengXunSmsUtils.createClient(accessKeyId, accessKeySecret);
+        // 实例化请求对象
+        SendSmsRequest req = new SendSmsRequest();
+
+        // 设置短信应用 ID
+        req.setSmsSdkAppId(sdkAppId);
+
+        // 设置签名内容
+        req.setSignName(signName);
+
+        // 设置模板 ID
+        req.setTemplateId(templateId);
+
+        // 设置模板参数(若无模板参数,可忽略)
+        String[] templateParams = {param};
+        req.setTemplateParamSet(templateParams);
+
+        // 设置目标手机号(需带国家/地区码)
+        String[] phoneNumbers = {"+86"+tel};
+        req.setPhoneNumberSet(phoneNumbers);
+
+        // 发送短信
+        SendSmsResponse res = client.SendSms(req);
+
+        return res;
+    }
+}

+ 32 - 0
zhichen-system/src/main/java/com/zhichen/modules/alisms/service/TengXunSmsService.java

@@ -0,0 +1,32 @@
+package com.zhichen.modules.alisms.service;
+
+
+import com.zhichen.modules.alisms.vo.ResultBean;
+
+public interface TengXunSmsService {
+    ResultBean sendSms(String tel,String param);
+
+    ResultBean sendInformSms(String tel,String param,String code);
+
+    Boolean sendRegisterSms(String tel);
+
+    Boolean sendForgetSms(String tel);
+
+    Boolean sendLoginSms(String tel);
+
+    Boolean sendPwdSms(String tel,String code);
+
+    Boolean sendBindNewTelSms(String tel);
+
+
+    Boolean sendSellerRegisterSms(String tel);
+
+    Boolean sendSellerForgetSms(String tel);
+
+    Boolean sendSellerLoginSms(String tel);
+
+    Boolean sendLiveSms(String tel);
+
+    void ceshi(String tel);
+}
+

+ 466 - 0
zhichen-system/src/main/java/com/zhichen/modules/alisms/service/impl/TengXunSmsServiceImpl.java

@@ -0,0 +1,466 @@
+package com.zhichen.modules.alisms.service.impl;
+
+
+import cn.hutool.core.lang.Validator;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
+import com.zhichen.common.constant.Constants;
+import com.zhichen.common.core.domain.entity.SysUser;
+import com.zhichen.common.core.redis.RedisCache;
+import com.zhichen.common.exception.CustomException;
+import com.zhichen.common.type.EncryptHandler;
+import com.zhichen.common.utils.*;
+import com.zhichen.common.utils.ip.IpUtils;
+import com.zhichen.modules.alisms.service.IAliSmsService;
+import com.zhichen.modules.alisms.service.TengXunSmsService;
+import com.zhichen.modules.alisms.vo.ResultBean;
+import com.zhichen.modules.base.bo.SmsAddBo;
+import com.zhichen.modules.base.domain.Sms;
+import com.zhichen.modules.base.service.ISmsService;
+import com.zhichen.modules.distribution.service.IDistributionSellerService;
+import com.zhichen.modules.system.domain.SysTenant;
+import com.zhichen.modules.system.service.ISysConfigService;
+import com.zhichen.modules.system.service.ISysTenantService;
+import com.zhichen.modules.system.service.ISysUserService;
+import com.zhichen.modules.user.domain.User;
+import com.zhichen.modules.user.service.IUserService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+
+@Service
+public class TengXunSmsServiceImpl implements TengXunSmsService {
+    private static final Logger LOGGER = LoggerFactory.getLogger(TengXunSmsServiceImpl.class);
+
+    private String SIGNNAME;
+    @Value("${tengxun.sms.signName}")
+    private String DEFAULT_SIGNNAME;
+    @Value("${tengxun.sms.sdkAppId}")
+    private String SDKAPPID;
+    @Value("${tengxun.sms.registerTemplateId}")
+    private String REGISTERTEMPLATECODE;
+    @Value("${tengxun.sms.secretld}")
+    private String ACCESSKEYID;
+    @Value("${tengxun.sms.secretkey}")
+    private String ACCESSKEYSECRET;
+    @Value("${tengxun.sms.loginTemplateId}")
+    private String LOGINTEMPLATECODE;
+    @Value("${tengxun.sms.forgetTemplateId}")
+    private String FORGETTEMPLATECODE;
+    @Value("${tengxun.sms.pwdTemplateId}")
+    private String PWDTEMPLATECODE;
+    @Value("${tengxun.sms.bindNewTelId}")
+    private String BINDNEWTELCODE;
+
+    @Autowired
+    private IUserService iUserService;
+
+    @Autowired
+    private RedisCache redisCache;
+
+    @Autowired
+    private ISmsService iSmsService;
+
+    @Autowired
+    private IDistributionSellerService iDistributionSellerService;
+
+    @Autowired
+    private ISysUserService iSysUserService;
+
+    @Autowired
+    private ISysTenantService iSysTenantService;
+
+    @Autowired
+    private ISysConfigService configService;
+
+    public void initData(){
+        if(Validator.isNotEmpty(configService.selectConfigByKeyNoCache("sms.signName"))){
+            SIGNNAME = configService.selectConfigByKeyNoCache("sms.signName");
+        }else{
+            SIGNNAME = DEFAULT_SIGNNAME;
+        }
+
+    }
+
+    @Override
+    public ResultBean sendSms(String tel, String param) {
+        initData();
+        try{
+            SendSmsResponse response = TengXunSmsUtils.sendSms(tel,SIGNNAME,REGISTERTEMPLATECODE,param,ACCESSKEYID,ACCESSKEYSECRET,SDKAPPID);
+            System.out.println(response);
+        }catch (Exception e){
+
+        }
+
+        return null;
+    }
+
+    @Override
+    public ResultBean sendInformSms(String tel, String param,String code) {
+        initData();
+        //发送带指定短信code带参数发送不同短信内容
+        try{
+            SendSmsResponse response = TengXunSmsUtils.sendSms(tel,SIGNNAME,code,param,ACCESSKEYID,ACCESSKEYSECRET,SDKAPPID);
+            LOGGER.error("发送短信结果:"+JSON.toJSONString(response));
+            if(response.getSendStatusSet()[0].getCode().equals("OK")){
+                SmsAddBo smsAddBo = new SmsAddBo();
+                smsAddBo.setCode(param);
+                smsAddBo.setTel(tel);
+                smsAddBo.setType(9L);
+                smsAddBo.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+                iSmsService.insertByAddBo(smsAddBo);
+                return new ResultBean(response);
+            }
+            return null;
+        }catch (Exception e){
+
+        }
+        return null;
+    }
+
+    @Override
+    public Boolean sendRegisterSms(String tel) {
+        checkCodeFrequency();
+        initData();
+        if(tel==null){
+            throw new CustomException("手机号码不能为空");
+        }
+        User user = iUserService.getOne(new LambdaQueryWrapper<User>()
+                .eq(User::getTelphone,EncryptHandler.encrypt(tel)).last("limit 1"));
+        if(Validator.isNotNull(user)){
+            throw new CustomException("该手机号已注册");
+        }
+        String code = ToolsUtils.getSmsCode();
+        String key = Constants.REGISTER_SMS + tel;
+        redisCache.setCacheObject(key,code,5, TimeUnit.MINUTES);//5分钟
+        try{
+            Map<String,Object> param = new HashMap<>();
+            param.put("code",code);
+            SendSmsResponse response = TengXunSmsUtils.sendSms(tel,SIGNNAME,REGISTERTEMPLATECODE, JSON.toJSONString(param),ACCESSKEYID,ACCESSKEYSECRET,SDKAPPID);
+            if(response.getSendStatusSet()[0].getCode().equals("OK")){
+                SmsAddBo smsAddBo = new SmsAddBo();
+                smsAddBo.setCode(code);
+                smsAddBo.setTel(tel);
+                smsAddBo.setType(1L);
+                smsAddBo.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+                iSmsService.insertByAddBo(smsAddBo);
+                return true;
+            }
+        }catch (Exception e){
+            throw new CustomException(e.getMessage());
+        }
+        return false;
+    }
+
+    @Override
+    public Boolean sendForgetSms(String tel) {
+        initData();
+        if(tel==null){
+            throw new CustomException("手机号码不能为空");
+        }
+        User user = iUserService.getOne(new LambdaQueryWrapper<User>()
+                .eq(User::getTelphone,EncryptHandler.encrypt(tel)).last("limit 1"));
+        if(Validator.isEmpty(user)){
+            throw new CustomException("该手机号未注册");
+        }
+        String code = ToolsUtils.getSmsCode();
+        String key = Constants.FORGET_SMS + tel;
+        redisCache.setCacheObject(key,code,5, TimeUnit.MINUTES);//5分钟
+        try{
+            Map<String,Object> param = new HashMap<>();
+            param.put("code",code);
+            SendSmsResponse response = TengXunSmsUtils.sendSms(tel,SIGNNAME,FORGETTEMPLATECODE, JSON.toJSONString(param),ACCESSKEYID,ACCESSKEYSECRET,SDKAPPID);
+            if(response.getSendStatusSet()[0].getCode().equals("OK")){
+                SmsAddBo smsAddBo = new SmsAddBo();
+                smsAddBo.setCode(code);
+                smsAddBo.setTel(tel);
+                smsAddBo.setType(2L);
+                smsAddBo.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+                iSmsService.insertByAddBo(smsAddBo);
+                return true;
+            }
+        }catch (Exception e){
+            throw new CustomException(e.getMessage());
+        }
+        return false;
+    }
+
+    @Override
+    public Boolean sendLoginSms(String tel) {
+        //校验短信频率
+        checkCodeFrequency();
+        initData();
+        if(tel==null){
+            throw new CustomException("手机号码不能为空");
+        }
+        User user = iUserService.getOne(new LambdaQueryWrapper<User>()
+                .eq(User::getTelphone,EncryptHandler.encrypt(tel)).last("limit 1"));
+        if(Validator.isEmpty(user)){
+            throw new CustomException("该手机号未注册");
+        }
+        String code = ToolsUtils.getSmsCode();
+        String key = Constants.LOGIN_SMS + tel;
+        redisCache.setCacheObject(key,code,5, TimeUnit.MINUTES);//5分钟
+        try{
+            Map<String,Object> param = new HashMap<>();
+            param.put("code",code);
+            SendSmsResponse response = TengXunSmsUtils.sendSms(tel,SIGNNAME,LOGINTEMPLATECODE, JSON.toJSONString(param),ACCESSKEYID,ACCESSKEYSECRET,SDKAPPID);
+            if(response.getSendStatusSet()[0].getCode().equals("OK")){
+                SmsAddBo smsAddBo = new SmsAddBo();
+                smsAddBo.setCode(code);
+                smsAddBo.setTel(tel);
+                smsAddBo.setType(3L);
+                smsAddBo.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+                iSmsService.insertByAddBo(smsAddBo);
+                return true;
+            }
+        }catch (Exception e){
+            throw new CustomException(e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     * 校验短信发送频率(一个ip 60秒一次)
+     */
+    private void checkCodeFrequency() {
+        String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
+        Sms sms = iSmsService.getOne(new LambdaQueryWrapper<Sms>().eq(Sms::getIp, ipAddr)
+                .orderByDesc(Sms::getCreateTime).last("limit 1"));
+        if (ObjectUtils.isNull(sms)){
+            return;
+        }
+        Long createTime = sms.getCreateTime();
+        if (DateUtils.getNowTime() - createTime < 60){
+            throw new CustomException("请在60秒后重试!");
+        }
+    }
+
+    @Override
+    public Boolean sendPwdSms(String tel,String code) {
+        initData();
+        try{
+            Map<String,Object> param = new HashMap<>();
+            param.put("name","");
+            param.put("password",code);
+            SmsAddBo smsAddBo = new SmsAddBo();
+            smsAddBo.setCode(code);
+            smsAddBo.setTel(tel);
+            smsAddBo.setType(4L);
+            smsAddBo.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+            iSmsService.insertByAddBo(smsAddBo);
+            SendSmsResponse response = TengXunSmsUtils.sendSms(tel,SIGNNAME,PWDTEMPLATECODE, JSON.toJSONString(param),ACCESSKEYID,ACCESSKEYSECRET,SDKAPPID);
+            if(response.getSendStatusSet()[0].getCode().equals("OK")){
+                return true;
+            }
+        }catch (Exception e){
+            System.out.println(e);
+            throw new CustomException(e.getMessage());
+        }
+        return false;
+    }
+
+    @Override
+    public Boolean sendBindNewTelSms(String tel) {
+        initData();
+        if(tel==null){
+            throw new CustomException("手机号码不能为空");
+        }
+        User user = iUserService.getOne(new LambdaQueryWrapper<User>()
+                .eq(User::getTelphone, EncryptHandler.encrypt(tel)).last("limit 1"));
+        if(Validator.isNotEmpty(user)){
+            throw new CustomException("该手机号已被使用");
+        }
+        String code = ToolsUtils.getSmsCode();
+        String key = Constants.LOGIN_SMS + tel;
+        redisCache.setCacheObject(key,code,5, TimeUnit.MINUTES);//5分钟
+        try{
+            Map<String,Object> param = new HashMap<>();
+            param.put("code",code);
+            SendSmsResponse response = TengXunSmsUtils.sendSms(tel,SIGNNAME,BINDNEWTELCODE, JSON.toJSONString(param),ACCESSKEYID,ACCESSKEYSECRET,SDKAPPID);
+            if(response.getSendStatusSet()[0].getCode().equals("OK")){
+                SmsAddBo smsAddBo = new SmsAddBo();
+                smsAddBo.setCode(code);
+                smsAddBo.setTel(tel);
+                smsAddBo.setType(5L);
+                smsAddBo.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+                iSmsService.insertByAddBo(smsAddBo);
+                return true;
+            }
+        }catch (Exception e){
+            throw new CustomException(e.getMessage());
+        }
+        return false;
+    }
+
+    @Override
+    public Boolean sendSellerRegisterSms(String tel) {
+        initData();
+        if(tel==null){
+            throw new CustomException("手机号码不能为空");
+        }
+        SysUser seller = iSysUserService.getOneByTenant(tel);
+        if(Validator.isNotNull(seller)){
+            SysTenant tenant = iSysTenantService.getById(seller.getTenantId());
+            throw new CustomException(String.format("该手机号已在【%s】注册过!",tenant.getTenantName()));
+        }
+        String code = ToolsUtils.getSmsCode();
+        String key = Constants.REGISTER_SMS + tel;
+        redisCache.setCacheObject(key,code,5, TimeUnit.MINUTES);//5分钟
+        try{
+            Map<String,Object> param = new HashMap<>();
+            param.put("code",code);
+            SendSmsResponse response = TengXunSmsUtils.sendSms(tel,SIGNNAME,REGISTERTEMPLATECODE, JSON.toJSONString(param),ACCESSKEYID,ACCESSKEYSECRET,SDKAPPID);
+            if(response.getSendStatusSet()[0].getCode().equals("OK")){
+                SmsAddBo smsAddBo = new SmsAddBo();
+                smsAddBo.setCode(code);
+                smsAddBo.setTel(tel);
+                smsAddBo.setType(6L);
+                smsAddBo.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+                iSmsService.insertByAddBo(smsAddBo);
+                return true;
+            }
+        }catch (Exception e){
+            throw new CustomException(e.getMessage());
+        }
+        return false;
+    }
+
+    @Override
+    public Boolean sendSellerForgetSms(String tel) {
+        initData();
+        if(tel==null){
+            throw new CustomException("手机号码不能为空");
+        }
+        SysUser user = iSysUserService.getOne(new LambdaQueryWrapper<SysUser>()
+                .eq(SysUser::getPhonenumber,tel).last("limit 1"));
+        if(Validator.isEmpty(user)){
+            throw new CustomException("该手机号未注册");
+        }
+        String code = ToolsUtils.getSmsCode();
+        String key = Constants.FORGET_SMS + tel;
+        redisCache.setCacheObject(key,code,5, TimeUnit.MINUTES);//5分钟
+        try{
+            Map<String,Object> param = new HashMap<>();
+            param.put("code",code);
+            SendSmsResponse response = TengXunSmsUtils.sendSms(tel,SIGNNAME,FORGETTEMPLATECODE, JSON.toJSONString(param),ACCESSKEYID,ACCESSKEYSECRET,SDKAPPID);
+            if(response.getSendStatusSet()[0].getCode().equals("OK")){
+                SmsAddBo smsAddBo = new SmsAddBo();
+                smsAddBo.setCode(code);
+                smsAddBo.setTel(tel);
+                smsAddBo.setType(7L);
+                smsAddBo.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+                iSmsService.insertByAddBo(smsAddBo);
+                return true;
+            }
+        }catch (Exception e){
+            throw new CustomException(e.getMessage());
+        }
+        return false;
+    }
+
+    @Override
+    public Boolean sendSellerLoginSms(String tel) {
+        initData();
+        if(tel==null){
+            throw new CustomException("手机号码不能为空");
+        }
+        SysUser user = iSysUserService.getOne(new LambdaQueryWrapper<SysUser>()
+                .eq(SysUser::getPhonenumber,tel).last("limit 1"));
+        if(Validator.isEmpty(user)){
+            throw new CustomException("该手机号未注册");
+        }
+        String code = ToolsUtils.getSmsCode();
+        String key = Constants.LOGIN_SMS + tel;
+        redisCache.setCacheObject(key,code,5, TimeUnit.MINUTES);//5分钟
+        try{
+            Map<String,Object> param = new HashMap<>();
+            param.put("code",code);
+            SendSmsResponse response = TengXunSmsUtils.sendSms(tel,SIGNNAME,LOGINTEMPLATECODE, JSON.toJSONString(param),ACCESSKEYID,ACCESSKEYSECRET,SDKAPPID);
+            if(response.getSendStatusSet()[0].getCode().equals("OK")){
+                SmsAddBo smsAddBo = new SmsAddBo();
+                smsAddBo.setCode(code);
+                smsAddBo.setTel(tel);
+                smsAddBo.setType(8L);
+                smsAddBo.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+                iSmsService.insertByAddBo(smsAddBo);
+                return true;
+            }
+        }catch (Exception e){
+            throw new CustomException(e.getMessage());
+        }
+        return false;
+    }
+
+    @Override
+    public Boolean sendLiveSms(String tel) {
+        initData();
+        if(tel==null){
+            throw new CustomException("手机号码不能为空");
+        }
+        User user = iUserService.getUserByTelNotTenant(tel).stream().findFirst().orElse(null);
+        if(Validator.isEmpty(user)){
+            throw new CustomException("该手机号未注册");
+        }
+        ServletUtils.getResponse().setHeader("TenantId",user.getTenantId().toString());
+        String code = ToolsUtils.getSmsCode();
+        String key = Constants.LOGIN_SMS + tel;
+        redisCache.setCacheObjectTenant(key,code,5, TimeUnit.MINUTES);//5分钟
+        try{
+            Map<String,Object> param = new HashMap<>();
+            param.put("code",code);
+            SendSmsResponse response = TengXunSmsUtils.sendSms(tel,SIGNNAME,LOGINTEMPLATECODE, JSON.toJSONString(param),ACCESSKEYID,ACCESSKEYSECRET,SDKAPPID);
+            if(response.getSendStatusSet()[0].getCode().equals("OK")){
+                SmsAddBo smsAddBo = new SmsAddBo();
+                smsAddBo.setCode(code);
+                smsAddBo.setTel(tel);
+                smsAddBo.setType(3L);
+                smsAddBo.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+                iSmsService.insertByAddBo(smsAddBo);
+                return true;
+            }
+        }catch (Exception e){
+            throw new CustomException(e.getMessage());
+        }
+        return false;
+    }
+
+    @Override
+    public void ceshi(String tel) {
+        if(tel==null){
+            throw new CustomException("手机号码不能为空");
+        }
+        User user = iUserService.getOne(new LambdaQueryWrapper<User>()
+                .eq(User::getTelphone,EncryptHandler.encrypt(tel)).last("limit 1"));
+        if(Validator.isEmpty(user)){
+            throw new CustomException("该手机号未注册");
+        }
+        String code = ToolsUtils.getSmsCode();
+        String key = Constants.LOGIN_SMS + tel;
+        redisCache.setCacheObject(key,code,5, TimeUnit.MINUTES);//5分钟
+        try{
+            Map<String,Object> param = new HashMap<>();
+            param.put("code",code);
+            SendSmsResponse response = TengXunSmsUtils.sendSms(tel,DEFAULT_SIGNNAME,LOGINTEMPLATECODE, JSON.toJSONString(param),ACCESSKEYID,ACCESSKEYSECRET,SDKAPPID);
+            if(response.getSendStatusSet()[0].getCode().equals("OK")){
+                SmsAddBo smsAddBo = new SmsAddBo();
+                smsAddBo.setCode(code);
+                smsAddBo.setTel(tel);
+                smsAddBo.setType(3L);
+                smsAddBo.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+                iSmsService.insertByAddBo(smsAddBo);
+            }
+        }catch (Exception e){
+            throw new CustomException(e.getMessage());
+        }
+    }
+}

+ 5 - 5
zhichen-system/src/main/java/com/zhichen/modules/tencentcloud/service/impl/VodServiceImpl.java

@@ -68,7 +68,7 @@ public class VodServiceImpl implements IVodService {
             VodClient client = new VodClient(cred, "", clientProfile);
             // 实例化一个请求对象,每个接口都会对应一个request对象
             DescribeMediaInfosRequest req = new DescribeMediaInfosRequest();
-            req.setSubAppId(1306117675L);
+            req.setSubAppId(1346729515L);
     //        String[] fileIdss = new String[]{"3270835015060309946"};
             req.setFileIds(fileIds);
             // 返回的resp是一个DescribeMediaInfosResponse的实例,与请求对象对应
@@ -100,7 +100,7 @@ public class VodServiceImpl implements IVodService {
             VodClient client = new VodClient(cred, "", clientProfile);
             // 实例化一个请求对象,每个接口都会对应一个request对象
             DescribeMediaInfosRequest req = new DescribeMediaInfosRequest();
-            req.setSubAppId(1306117675L);
+            req.setSubAppId(1346729515L);
             //        String[] fileIdss = new String[]{"3270835015060309946"};
             req.setFileIds(fileIds);
             // 返回的resp是一个DescribeMediaInfosResponse的实例,与请求对象对应
@@ -115,7 +115,7 @@ public class VodServiceImpl implements IVodService {
 
     @Override
     public Map<String, Object> vodSignRequest(String FileId) {
-        Integer AppId = 1306117675;
+        Integer AppId = 1346729515;
     //    String FileId = "4564972818519602447";
     //    String AudioVideoType = "RawAdaptive";
         String AudioVideoType = "ProtectedAdaptive";
@@ -124,7 +124,7 @@ public class VodServiceImpl implements IVodService {
         Long CurrentTime = DateUtils.getNowTime();
         Long PsignExpire = DateUtils.getNowTime()+12*3600;
         String UrlTimeExpire = Long.toHexString(PsignExpire);
-        String PlayKey = "BlLcfriLPbYKPG1PWbzQ";
+        String PlayKey = "EsPBXLgrqU1djB363idW";
         HashMap<String, Object> urlAccessInfo = new HashMap<String, Object>();
         urlAccessInfo.put("t", UrlTimeExpire);
         HashMap<String, Object> contentInfo = new HashMap<String, Object>();
@@ -144,7 +144,7 @@ public class VodServiceImpl implements IVodService {
             rs.put("fileID",FileId);
             rs.put("appID",AppId);
             rs.put("psign",token);
-            rs.put("licenseUrl","https://license.vod2.myqcloud.com/license/v2/1306117675_1/v_cube.license");
+            rs.put("licenseUrl","https://license.vod2.myqcloud.com/license/v2/1346729515_1/v_cube.license");
     //        System.out.println("token:" + token);
             return rs;