diff --git a/pom.xml b/pom.xml
index 5276492..ba6c8fc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,6 +66,19 @@
+
+ com.auth0
+ java-jwt
+ 3.4.0
+
+
+
+ com.tencentcloudapi
+ tencentcloud-sdk-java
+
+ 3.1.37
+
+
diff --git a/src/main/java/com/yuxihan/StuserverApplication.java b/src/main/java/com/yuxihan/SduServerApplication.java
similarity index 69%
rename from src/main/java/com/yuxihan/StuserverApplication.java
rename to src/main/java/com/yuxihan/SduServerApplication.java
index 545eed8..5521fcb 100644
--- a/src/main/java/com/yuxihan/StuserverApplication.java
+++ b/src/main/java/com/yuxihan/SduServerApplication.java
@@ -4,10 +4,10 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
-public class StuserverApplication {
+public class SduServerApplication {
public static void main(String[] args) {
- SpringApplication.run(StuserverApplication.class, args);
+ SpringApplication.run(SduServerApplication.class, args);
}
}
diff --git a/src/main/java/com/yuxihan/SendSms.java b/src/main/java/com/yuxihan/SendSms.java
new file mode 100644
index 0000000..9efc831
--- /dev/null
+++ b/src/main/java/com/yuxihan/SendSms.java
@@ -0,0 +1,55 @@
+package com.yuxihan;
+
+
+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.v20190711.SmsClient;
+
+import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest;
+import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse;
+
+/**
+ * 发送验证码
+ */
+public class SendSms {
+
+ public static final String SECRET_ID = "AKIDwfARTHDAE4e4GE7XrwnOltlPr54rJgjW";
+ public static final String SECRET_KEY = "jGZfbJn34qQmuoTu75oNioeHfplSwCDy";
+
+
+ public static void main(String[] args) {
+ try {
+
+ Credential cred = new Credential(SECRET_ID, SECRET_KEY);
+
+ HttpProfile httpProfile = new HttpProfile();
+ httpProfile.setEndpoint("sms.tencentcloudapi.com");
+
+ ClientProfile clientProfile = new ClientProfile();
+ clientProfile.setHttpProfile(httpProfile);
+
+ SmsClient client = new SmsClient(cred, "ap-guangzhou-open", clientProfile);
+
+/* String params = "{\"PhoneNumberSet\":[\"+8613262911437\"],\"TemplateID\":\"574746\",\"Sign\":\"yuxihan网\",\"TemplateParamSet\":[\"987654\",\"30\"],\"SmsSdkAppid\":\"1400349431\"}";
+ SendSmsRequest req = SendSmsRequest.fromJsonString(params, SendSmsRequest.class);
+ SendSmsResponse resp = client.SendSms(req);
+ */
+ SendSmsRequest sendSmsRequest = new SendSmsRequest();
+ sendSmsRequest.setTemplateID("574746");
+ sendSmsRequest.setSign("yuxihan网");
+ sendSmsRequest.setSmsSdkAppid("1400349431");
+ sendSmsRequest.setPhoneNumberSet(new String[]{"+8613262911437"});
+ sendSmsRequest.setTemplateParamSet(new String[]{"123456","31"});
+ SendSmsResponse resp = client.SendSms(sendSmsRequest);
+
+ System.out.println(SendSmsRequest.toJsonString(resp));
+ } catch (TencentCloudSDKException e) {
+ System.out.println(e.toString());
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/yuxihan/bean/ErrJson.java b/src/main/java/com/yuxihan/bean/ErrJson.java
index eb9916e..793ecd4 100644
--- a/src/main/java/com/yuxihan/bean/ErrJson.java
+++ b/src/main/java/com/yuxihan/bean/ErrJson.java
@@ -2,11 +2,13 @@ package com.yuxihan.bean;
import org.springframework.stereotype.Component;
+import java.util.Map;
+
@Component
public class ErrJson {
private String errCode;
private String errMsg;
- private String result;
+ private Map result;
public String getErrCode() {
return errCode;
@@ -24,11 +26,11 @@ public class ErrJson {
this.errMsg = errMsg;
}
- public String getResult() {
+ public Map getResult() {
return result;
}
- public void setResult(String result) {
+ public void setResult(Map result) {
this.result = result;
}
}
diff --git a/src/main/java/com/yuxihan/bean/User.java b/src/main/java/com/yuxihan/bean/User.java
index 9ff4a06..8b12d2b 100644
--- a/src/main/java/com/yuxihan/bean/User.java
+++ b/src/main/java/com/yuxihan/bean/User.java
@@ -12,6 +12,7 @@ public class User implements Serializable {
private String password;
private Date createdTime;
private Date updatedTime;
+ private String nickname;
public Integer getId() {
return userId;
@@ -52,4 +53,12 @@ public class User implements Serializable {
public void setUpdatedTime(Date updatedTime) {
this.updatedTime = updatedTime;
}
+
+ public String getNickname() {
+ return nickname;
+ }
+
+ public void setNickname(String nickname) {
+ this.nickname = nickname;
+ }
}
diff --git a/src/main/java/com/yuxihan/controller/UserController.java b/src/main/java/com/yuxihan/controller/UserController.java
index 24bdbea..854820c 100644
--- a/src/main/java/com/yuxihan/controller/UserController.java
+++ b/src/main/java/com/yuxihan/controller/UserController.java
@@ -15,7 +15,27 @@ import java.util.List;
public class UserController {
@Autowired
private UserServies userServies;
-
+ @Autowired
+ private ErrJson errJson;
+ /**
+ * 修改昵称
+ * @param userName
+ * @param nickname
+ * @return
+ */
+ @RequestMapping(value = "/updateName", produces = {"application/json; charset=UTF-8"}, method = RequestMethod.POST)
+ public ErrJson updateName(@RequestParam(value = "userName") String userName, @RequestParam(value = "nickname") String nickname,@RequestParam(value = "token") String token){
+ if (token.isEmpty()) {
+ return errJson;
+ }
+ if (1 == userServies.getTokenStatus(userName)) {
+ return errJson;
+ }
+ if (token.equals(userServies.getToken(userName))) {
+ return userServies.updateName(userName,nickname);
+ }
+ return errJson;
+ }
/**
* 登录
*
diff --git a/src/main/java/com/yuxihan/mapper/UserMapper.java b/src/main/java/com/yuxihan/mapper/UserMapper.java
index f2c3798..a7ec264 100644
--- a/src/main/java/com/yuxihan/mapper/UserMapper.java
+++ b/src/main/java/com/yuxihan/mapper/UserMapper.java
@@ -19,14 +19,18 @@ public interface UserMapper {
String getPsd(User user);
- int getUserId(User user);
+ int getUserId(String userName);
void updateTokenStatus(Token token);
void insertToken(Token token);
- String getToken(Token token);
+ String getToken(Integer userId);
- String getTokenStatus(Token token);
+ int getTokenStatus(Integer userId);
+
+ User findUser(String userName);
+
+ void updateName(User user);
}
diff --git a/src/main/java/com/yuxihan/servies/UserServies.java b/src/main/java/com/yuxihan/servies/UserServies.java
index a4e7372..3a2d009 100644
--- a/src/main/java/com/yuxihan/servies/UserServies.java
+++ b/src/main/java/com/yuxihan/servies/UserServies.java
@@ -8,8 +8,20 @@ import java.util.List;
public interface UserServies {
List findAll();
- public ErrJson addUser(String userName, String password);
- public int isExistsUser(String userName);
- public String getPsd(String userName);
- public ErrJson login(String userName,String password);
+
+ ErrJson addUser(String userName, String password);
+
+ int isExistsUser(String userName);
+
+ String getPsd(String userName);
+
+ ErrJson login(String userName, String password);
+
+ String getToken(String userName);
+
+ int getTokenStatus(String userName);
+
+ ErrJson updateName(String userName, String nickname);
+
+ int getUserId(String userName);
}
diff --git a/src/main/java/com/yuxihan/servies/impl/UserServiesImpl.java b/src/main/java/com/yuxihan/servies/impl/UserServiesImpl.java
index 89f6a70..8989650 100644
--- a/src/main/java/com/yuxihan/servies/impl/UserServiesImpl.java
+++ b/src/main/java/com/yuxihan/servies/impl/UserServiesImpl.java
@@ -1,6 +1,7 @@
package com.yuxihan.servies.impl;
import com.yuxihan.bean.ErrJson;
+import com.yuxihan.bean.Token;
import com.yuxihan.bean.User;
import com.yuxihan.mapper.UserMapper;
import com.yuxihan.servies.UserServies;
@@ -9,13 +10,15 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
@Service
public class UserServiesImpl implements UserServies {
+
private static String SUCCESS = "0";
private static String FAIL = "1";
+ private static Integer ENABLE = 0;
+ private static Integer STOP = 1;
//注入接口代理对象
@Autowired
private UserMapper userMapper;
@@ -25,10 +28,48 @@ public class UserServiesImpl implements UserServies {
private MD5Util md5Util;
@Autowired
private User user;
+ @Autowired
+ private Token token;
+
public List findAll(){
return userMapper.findAll();
}
+ /**
+ * 获取用户id
+ * @param userName
+ * @return
+ */
+ @Override
+ public int getUserId(String userName) {
+ return userMapper.getUserId(userName);
+ }
+
+ /**
+ * 修改昵称
+ * @param userName
+ * @param nickname
+ * @return
+ */
+ @Override
+ public ErrJson updateName(String userName, String nickname) {
+ errJson.setErrCode(FAIL);
+ errJson.setErrMsg("");
+ if (userName.isEmpty()) {
+ errJson.setErrMsg("用户名不能为空");
+ return errJson;
+ }
+ if (nickname.isEmpty()) {
+ errJson.setErrMsg("昵称不能为空");
+ return errJson;
+ }
+ user.setNickname(nickname);
+ user.setName(userName);
+ userMapper.updateName(user);
+ errJson.setErrCode(SUCCESS);
+ return errJson;
+ }
+
/**
* 登录
*
@@ -44,7 +85,10 @@ public class UserServiesImpl implements UserServies {
return errJson;
}
if (userMapper.getPsd(user).equals(md5Util.string2MD5(password))) {
+ Map ticket = new HashMap<>();
+ ticket.put("token",addLoginTicket(userMapper.getUserId(userName)));
errJson.setErrCode(SUCCESS);
+ errJson.setResult(ticket);
return errJson;
} else {
errJson.setErrMsg("密码错误");
@@ -52,6 +96,7 @@ public class UserServiesImpl implements UserServies {
}
}
+
/**
* 注册用户
* @param userName,password
@@ -60,6 +105,8 @@ public class UserServiesImpl implements UserServies {
if (isNotEmpty(userName,password)) return errJson;
user.setPassword( md5Util.string2MD5(password));
user.setName(userName);
+ //默认昵称
+ user.setNickname("小胖猪"+Calendar.getInstance().getTimeInMillis());
if (0 == userMapper.isExistsUser(user)) {
userMapper.addUser(user);
errJson.setErrCode(SUCCESS);
@@ -80,6 +127,26 @@ public class UserServiesImpl implements UserServies {
return userMapper.isExistsUser(user);
}
+ /**
+ * 获取用户token状态
+ * @param userName
+ * @return
+ */
+ @Override
+ public int getTokenStatus(String userName) {
+ return userMapper.getTokenStatus(userMapper.getUserId(userName));
+ }
+
+ /**
+ * 获取用户token
+ * @param userName
+ * @return
+ */
+ @Override
+ public String getToken(String userName) {
+ return userMapper.getToken(userMapper.getUserId(userName));
+ }
+
/**
* 获取用户密码
* @param userName
@@ -99,7 +166,6 @@ public class UserServiesImpl implements UserServies {
private boolean isNotEmpty(@RequestParam("userName") String userName, @RequestParam("password") String password) {
errJson.setErrCode(FAIL);
errJson.setErrMsg("");
- errJson.setResult("");
if (userName.isEmpty()) {
errJson.setErrMsg("用户名不能为空");
return true;
@@ -111,6 +177,13 @@ public class UserServiesImpl implements UserServies {
return false;
}
+ private String addLoginTicket(int userId){
+ token.setUserToken(UUID.randomUUID().toString().replaceAll("_",""));
+ token.setUserId(userId);
+ token.setTokenStatus(ENABLE);
+ userMapper.insertToken(token);
+ return token.getUserToken();
+ }
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 6d30b13..a993b51 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -8,6 +8,9 @@ mybatis:
spring:
datasource:
url: jdbc:mysql://localhost:3305/test?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ # url: jdbc:mysql://sdu.yuxihan.com:3306/test?useUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 20190914
+
+#show variables like 'char%';
\ No newline at end of file
diff --git a/src/main/resources/mapper/userMapper.xml b/src/main/resources/mapper/userMapper.xml
index c179ce0..624f5ce 100644
--- a/src/main/resources/mapper/userMapper.xml
+++ b/src/main/resources/mapper/userMapper.xml
@@ -24,13 +24,13 @@
insert into user_ticket (user_id,user_token,token_status) values(#{userId},#{userToken},#{tokenStatus}) on duplicate key update token_status=#{tokenStatus};
-