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}; - select user_token from user_ticket where user_id=#{userId} - - select token_status from user_ticket where user_id=#{userId} @@ -40,13 +40,16 @@ + user_name,user_id,password,created_time - user_name,password - + user_name,password,nickname + + + - select from user_info where user_name=#{userName} @@ -67,7 +70,7 @@ from user_info where user_name=#{userName} - select user_id from user_info where user_name=#{userName} @@ -80,6 +83,9 @@ - insert into user_info () values (#{userName},#{password}) + insert into user_info () values (#{userName},#{password},#{nickname}) + + update user_info set nickname=#{nickname} where user_name=#{userName} + diff --git a/src/test/java/com/yuxihan/StuserverApplicationTests.java b/src/test/java/com/yuxihan/SduServerApplicationTests.java similarity index 80% rename from src/test/java/com/yuxihan/StuserverApplicationTests.java rename to src/test/java/com/yuxihan/SduServerApplicationTests.java index 2b766f1..2619415 100644 --- a/src/test/java/com/yuxihan/StuserverApplicationTests.java +++ b/src/test/java/com/yuxihan/SduServerApplicationTests.java @@ -5,7 +5,7 @@ import org.junit.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest - public class StuserverApplicationTests { + public class SduServerApplicationTests { @Test public void contextLoads() {