SmsVerifyCodeServiceImpl.java
4.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package com.subsidy.service.impl;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.subsidy.common.constant.SmsCode;
import com.subsidy.common.exception.HttpException;
import com.subsidy.mapper.AdministerMapper;
import com.subsidy.model.AdministerDO;
import com.subsidy.model.ProjectJudgeDO;
import com.subsidy.model.SmsVerifyCodeDO;
import com.subsidy.mapper.SmsVerifyCodeMapper;
import com.subsidy.service.ProjectJudgeService;
import com.subsidy.service.SmsVerifyCodeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.*;
import com.subsidy.util.excel.ExcelUtil;
import org.apache.http.HttpResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.LinkedList;
/**
* <p>
* 短信验证码记录表 服务实现类
* </p>
*
* @author Tuyp
* @since 2025-01-07
*/
@Service
public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, SmsVerifyCodeDO> implements SmsVerifyCodeService {
@Autowired
private AdministerMapper administerMapper;
@Autowired
private ProjectJudgeService projectJudgeService;
@Autowired
private AliyunSmsUtil aliyunSmsUtil;
@Autowired
private SmsVerifyCodeMapper smsVerifyCodeMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void sendAdministerLoginCode(AdministerDO administerDO) {
AdministerDO administer = administerMapper.selectOne(new QueryWrapper<AdministerDO>()
.lambda()
.eq(AdministerDO::getTelephone, administerDO.getTelephone()));
if (administer == null) {
throw new HttpException(10009);
}
smsVerifyCodeMapper.delete(new QueryWrapper<SmsVerifyCodeDO>()
.lambda()
.eq(SmsVerifyCodeDO::getTelephone, administerDO.getTelephone()));
String verifyCode = RandomUtil.getRandomCode(6);
String param = "{ \"code\":\"" + verifyCode + "\"}";
SMSUtils.sendVerifySMS(ConstantUtils.TEMPLATE_CODE, administerDO.getTelephone(), param);
//插入短信验证码
this.baseMapper.delete(new QueryWrapper<SmsVerifyCodeDO>()
.lambda()
.eq(SmsVerifyCodeDO::getTelephone, administer.getTelephone()));
SmsVerifyCodeDO smsCodeDO = new SmsVerifyCodeDO();
smsCodeDO.setTelephone(administerDO.getTelephone());
smsCodeDO.setVerifyCode(verifyCode);
this.baseMapper.insert(smsCodeDO);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void sendJudgeLoginCode(SmsVerifyCodeDO smsCodeDO) {
ProjectJudgeDO projectJudgeDO = projectJudgeService.getOne(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getTelephone, smsCodeDO.getTelephone()));
if (projectJudgeDO == null) {
throw new HttpException(10060);
}
smsVerifyCodeMapper.delete(new QueryWrapper<SmsVerifyCodeDO>()
.lambda()
.eq(SmsVerifyCodeDO::getTelephone, smsCodeDO.getTelephone()));
if (projectJudgeDO.getPasswordFree() == null || projectJudgeDO.getPasswordFree() != 1) {
int code = RandomUtil.getCode();
SendSmsResponse sendSmsResponse = aliyunSmsUtil.send(smsCodeDO.getTelephone(), code);
if (sendSmsResponse != null && sendSmsResponse.getCode().equals("OK")) {
SmsVerifyCodeDO smsCode = this.baseMapper.selectOne(new QueryWrapper<SmsVerifyCodeDO>()
.lambda()
.eq(SmsVerifyCodeDO::getTelephone, smsCodeDO.getTelephone()));
if (smsCode != null) {
this.baseMapper.deleteById(smsCode.getId());
}
SmsVerifyCodeDO sc = new SmsVerifyCodeDO();
sc.setTelephone(smsCodeDO.getTelephone());
sc.setVerifyCode(String.valueOf(code));
this.baseMapper.insert(sc);
} else {
throw new HttpException(10011);
}
}
}
}