Commit a44754e4 authored by 李博今's avatar 李博今

修改时间格式

完善发送短信功能
parent 2a5d29f5
......@@ -357,6 +357,17 @@
<version>1.20</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>3.7.1</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
......
......@@ -109,5 +109,8 @@
<orderEntry type="library" name="Maven: com.googlecode.protobuf-java-format:protobuf-java-format:1.4" level="project" />
<orderEntry type="library" name="Maven: org.directwebremoting:dwr:3.0.2-RELEASE" level="project" />
<orderEntry type="library" name="Maven: eu.bitwalker:UserAgentUtils:1.20" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:3.7.1" level="project" />
<orderEntry type="library" name="Maven: org.json:json:20170516" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-dysmsapi:1.1.0" level="project" />
</component>
</module>
\ No newline at end of file
/**
* createby : JinxLbj
* date : 2018/8/28
* desc : 短信类
**/
package com.qiqiim.webserver.sms;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class Sms {
public static SmsResponseEntity sendSms(String messagePhone) throws ClientException {
//设置超时时间-可自行调整
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//初始化ascClient需要的几个参数
//短信API产品名称(短信产品名固定,无需修改)
final String product = "Dysmsapi";
//短信API产品域名(接口地址固定,无需修改)
final String domain = "dysmsapi.aliyuncs.com";
//替换成你的AK
//你的accessKeyId,参考本文档步骤2
final String accessKeyId = "LTAI1iNWZ0jnl7Wt";
//你的accessKeySecret,参考本文档步骤2
final String accessKeySecret = "mATCFe5ssZsrelng2KURsb401BU55e";
//初始化ascClient,暂时不支持多region(请勿修改)
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,
accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
//组装请求对象
SendSmsRequest request = new SendSmsRequest();
//使用post提交
request.setMethod(MethodType.POST);
//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为00+国际区号+号码,如“0085200000000”
request.setPhoneNumbers(messagePhone);
//必填:短信签名-可在短信控制台中找到
request.setSignName("阿里云短信测试专用");
//必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版
request.setTemplateCode("SMS_141605474");
//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
//友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
// request.setTemplateParam("{\"code\":\"123456\"}");
//请求失败这里会抛ClientException异常
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
SmsResponseEntity smsResponseEntity = new SmsResponseEntity();
//请求成功
smsResponseEntity.setBizId(sendSmsResponse.getBizId());
smsResponseEntity.setCode(sendSmsResponse.getCode());
smsResponseEntity.setMessage(sendSmsResponse.getMessage());
smsResponseEntity.setRequestId(sendSmsResponse.getRequestId());
return smsResponseEntity;
}
public static void main(String[] args) throws ClientException {
sendSms("test");
}
}
/**
* createby : JinxLbj
* date : 2018/8/28
* desc : 返回类
**/
package com.qiqiim.webserver.sms;
public class SmsResponseEntity {
private String requestId;
private String code;
private String message;
private String bizId;
public String getRequestId() {
return requestId;
}
public void setRequestId(String requestId) {
this.requestId = requestId;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getBizId() {
return bizId;
}
public void setBizId(String bizId) {
this.bizId = bizId;
}
}
......@@ -8,7 +8,10 @@ import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.aliyuncs.exceptions.ClientException;
import com.qiqiim.server.model.Session;
import com.qiqiim.webserver.sms.Sms;
import com.qiqiim.webserver.sms.SmsResponseEntity;
import com.qiqiim.webserver.user.dao.UserAdminInfoDao;
import com.qiqiim.webserver.user.model.*;
import com.qiqiim.webserver.user.service.*;
......@@ -60,6 +63,8 @@ public class ImController extends BaseController {
private UserAdminInfoService userAdminInfoServiceImpl;
@Autowired
private UserInfoService userInfoServiceImpl;
@Autowired
private ErrorLogService errorLogServiceImpl;
private static Logger logger = LoggerFactory.getLogger(ImController.class);
......@@ -179,7 +184,7 @@ public class ImController extends BaseController {
UserAccountEntity userAccountEntity = userAccountServiceImpl.queryObject(Long.valueOf(nowId));
params.put("account", userAccountEntity.getAccount());
params.put("password", userAccountEntity.getPassword());
}else{
} else {
//生成新用户
UserAccountEntity newUserAccount = new UserAccountEntity();
String data = UUID.randomUUID().toString().replaceAll("-", "");
......@@ -194,8 +199,39 @@ public class ImController extends BaseController {
//将信息放入params
params.put("account", data);
params.put("password", data);
//发送短信
String messagePhone = userInfoServiceImpl.getMessagePhone(Long.parseLong(request.getParameter("wantedId")));
try {
SmsResponseEntity smsResponseEntity = Sms.sendSms(messagePhone);
if (smsResponseEntity.getCode() == null || !"OK".equals(smsResponseEntity.getCode())){
//请求失败
ErrorLog errorLog = new ErrorLog();
errorLog.setId(smsResponseEntity.getRequestId());
errorLog.setConsultantId(Long.parseLong(request.getParameter("wantedId")));
Map<String, Object> map = new HashMap<>();
map.put("account", data);
errorLog.setUserId(userAccountServiceImpl.queryObjectByAccount(map).getId());
errorLog.setErrorCode(smsResponseEntity.getCode());
errorLog.setErrorMessage(smsResponseEntity.getMessage());
errorLog.setPhone(messagePhone);
errorLog.setSendTime(new Date());
errorLogServiceImpl.saveErrorLog(errorLog);
}
} catch (ClientException e) {
ErrorLog errorLog = new ErrorLog();
errorLog.setId(e.getRequestId());
errorLog.setConsultantId(Long.parseLong(request.getParameter("wantedId")));
Map<String, Object> map = new HashMap<>();
map.put("account", data);
errorLog.setUserId(userAccountServiceImpl.queryObjectByAccount(map).getId());
errorLog.setErrorCode(e.getErrCode());
errorLog.setErrorMessage(e.getMessage());
errorLog.setPhone(messagePhone);
errorLog.setSendTime(new Date());
errorLogServiceImpl.saveErrorLog(errorLog);
e.printStackTrace();
}
}
//根据新用户登录
......@@ -706,9 +742,9 @@ public class ImController extends BaseController {
@RequestMapping(value = "/receivePhone")
@ResponseBody
public Map<String,Object> receivePhone(@Param(value = "id") long id){
public Map<String, Object> receivePhone(@Param(value = "id") long id) {
String phone = userInfoServiceImpl.getPhone(id);
Map<String,Object> map = new HashMap<>();
Map<String, Object> map = new HashMap<>();
map.put("phone", phone);
return map;
}
......
......@@ -6,14 +6,16 @@
package com.qiqiim.webserver.user.dao;
import com.qiqiim.webserver.base.dao.BaseDao;
import com.qiqiim.webserver.user.model.ErrorLog;
import com.qiqiim.webserver.user.model.UserAccountEntity;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ErrorLogDao {
public interface ErrorLogDao extends BaseDao<UserAccountEntity> {
List<ErrorLog> getLogs(String state);
......
......@@ -21,8 +21,8 @@
</select>
<insert id="saveErrorLog">
INSERT INTO error_log (user_id,consultant_id,phone,message,error_code,error_message,send_time,state)
VALUE (#{userId},#{consultantId},#{phone},#{message},#{errorCode},#{errorMessage},#{sendTime},#{state});
INSERT INTO error_log (id,user_id,consultant_id,phone,message,error_code,error_message,send_time,state)
VALUE (#{id},#{userId},#{consultantId},#{phone},#{message},#{errorCode},#{errorMessage},#{sendTime},#{state});
</insert>
<delete id="delErrorLog">
......
......@@ -16,4 +16,6 @@ public interface UserInfoDao extends BaseDao<UserInfoEntity> {
int delByUid(@Param(value = "id") long id);
String getPhone(@Param(value = "id") long id);
String getMessagePhone(@Param(value = "id") long id);
}
......@@ -185,4 +185,7 @@
select phone from user_info where uid = #{id};
</select>
<select id="getMessagePhone" resultType="string">
select message_phone from user_info where uid = #{id};
</select>
</mapper>
\ No newline at end of file
......@@ -6,13 +6,18 @@
package com.qiqiim.webserver.user.model;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
@Component
public class ErrorLog {
private int id;
private int userId;
private int consultantId;
private String id;
private Long userId;
private Long consultantId;
private String phone;
private String message;
private String errorCode;
......@@ -20,28 +25,29 @@ public class ErrorLog {
private Date sendTime;
private String state = "0";
private String solution;
private String formatTime;
public int getId() {
public String getId() {
return id;
}
public void setId(int id) {
public void setId(String id) {
this.id = id;
}
public int getUserId() {
public Long getUserId() {
return userId;
}
public void setUserId(int userId) {
public void setUserId(Long userId) {
this.userId = userId;
}
public int getConsultantId() {
public Long getConsultantId() {
return consultantId;
}
public void setConsultantId(int consultantId) {
public void setConsultantId(Long consultantId) {
this.consultantId = consultantId;
}
......@@ -69,14 +75,6 @@ public class ErrorLog {
this.errorCode = errorCode;
}
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
}
public String getErrorMessage() {
return errorMessage;
}
......@@ -85,6 +83,16 @@ public class ErrorLog {
this.errorMessage = errorMessage;
}
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
this.formatTime = sdf.format(sendTime);
}
public String getState() {
return state;
}
......@@ -100,4 +108,12 @@ public class ErrorLog {
public void setSolution(String solution) {
this.solution = solution;
}
public String getFormatTime() {
return formatTime;
}
public void setFormatTime(String formatTime) {
this.formatTime = formatTime;
}
}
\ No newline at end of file
......@@ -16,7 +16,7 @@ public interface ErrorLogService {
* 错误信息录入数据库
* @return 插入是否成功(0失败 1成功)
*/
int saveErrorLog();
int saveErrorLog(ErrorLog errorLog);
/**
* 获取所有错误信息
......
......@@ -29,4 +29,6 @@ public interface UserInfoService {
int delByUid(long uid);
String getPhone(long uid);
String getMessagePhone(long uid);
}
......@@ -21,8 +21,8 @@ public class ErrorLogServiceImpl implements ErrorLogService {
private ErrorLogDao errorLogDao;
@Override
public int saveErrorLog() {
return errorLogDao.saveErrorLog(new ErrorLog());
public int saveErrorLog(ErrorLog errorLog) {
return errorLogDao.saveErrorLog(errorLog);
}
@Override
......
......@@ -72,4 +72,8 @@ public class UserInfoServiceImpl implements UserInfoService {
return userInfoDao.getPhone(uid);
}
@Override
public String getMessagePhone(long uid) {
return userInfoDao.getMessagePhone(uid);
}
}
......@@ -42,7 +42,7 @@
<td>${user.message}</td>
<td>${user.errorCode}</td>
<td>${user.errorMessage}</td>
<td>${user.sendTime}</td>
<td>${user.formatTime}</td>
<td>
<a class="layui-btn layui-btn-primary layui-btn-xs sendUserMsg" onclick="del(this)">删除</a>
</td>
......
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