中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

「小程序JAVA實戰」小程序登錄與后端聯調(36)

發布時間:2020-06-01 13:41:04 來源:網絡 閱讀:581 作者:IT人故事 欄目:移動開發

重新溫習下用戶的注冊的方式,開發一個用戶登錄的spring boot接口。源碼:https://github.com/limingios/wxProgram.git 中的wx-springboot 和 No.15

service 類的開發

  • UserService.java

package?com.idig8.service;

import?com.idig8.pojo.Users;

public?interface?UserService?{

????/**
?????*?判斷用戶名是否存在
?????*?@param?username
?????*?@return
?????*/
????public?boolean?queryUsernameIsExist(String?username);

????/**
?????*?保存用戶
?????*?@param?user
?????*?@return
?????*/
????public?void?saveUser(Users?user);

????/**
?????*?查詢用戶對象
?????*?@param?username
?????*?@return
?????*/
????public?Users?queryUserIsExist(Users?user);


}

···

*?UserServiceImpl.java
>?Sid?是注入的id的生成工具,Example?queryExample?=?new?Example(Users.class);
和?Criteria?criteria?=?queryExample.createCriteria();?都是一種套路,就是查詢套路,大家可以看看
https://baike.baidu.com/item/criteria/5354117

···?java
package?com.idig8.service;

import?org.n3r.idworker.Sid;
import?org.springframework.beans.factory.annotation.Autowired;
import?org.springframework.boot.autoconfigure.security.SecurityProperties.User;
import?org.springframework.stereotype.Service;
import?org.springframework.transaction.annotation.Propagation;
import?org.springframework.transaction.annotation.Transactional;

import?com.idig8.mapper.UsersMapper;
import?com.idig8.pojo.Users;
import?com.idig8.utils.MD5Utils;

import?tk.mybatis.mapper.entity.Example;
import?tk.mybatis.mapper.entity.Example.Criteria;

@Service
public?class?UserServiceImpl?implements?UserService?{

????@Autowired
????private?UsersMapper?usersMapper;

????@Autowired
????private?Sid?sid;

????@Transactional(propagation?=Propagation.SUPPORTS)
????@Override
????public?boolean?queryUsernameIsExist(String?username)?{
????????Users?user?=?new?Users();
????????user.setUsername(username);
????????Users?result?=?usersMapper.selectOne(user);
????????return?result==null??false:true;
????}

????@Transactional(propagation?=Propagation.REQUIRED)
????@Override
????public?void?saveUser(Users?user)?{
????????String?userId?=sid.nextShort();
????????user.setId(userId);
????????usersMapper.insert(user);
????}

????@Transactional(propagation?=Propagation.SUPPORTS)
????@Override
????public?Users?queryUserIsExist(Users?user)?{
????????Example?queryExample?=?new?Example(Users.class);
????????Criteria?criteria?=?queryExample.createCriteria();
????????criteria.andEqualTo("username",user.getUsername());
????????try?{
????????????criteria.andEqualTo("password",MD5Utils.getMD5Str(user.getPassword()));
????????}?catch?(Exception?e)?{
????????????//?TODO?Auto-generated?catch?block
????????????e.printStackTrace();
????????}
????????Users?userOne?=??usersMapper.selectOneByExample(queryExample);
????????return?userOne;
????}

}

controller 類的開發

RegistLoginController.java

增加了登錄方法。


package com.idig8.controller; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.idig8.pojo.Users; import com.idig8.service.UserService; import com.idig8.utils.JSONResult; import com.idig8.utils.MD5Utils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @RestController @Api(value="用戶注冊登錄的接口",tags={"注冊和登錄的controller"}) public class RegistLoginController { ? ?@Autowired ? ?private UserService userService; ? ?@ApiOperation(value="用戶注冊",notes="用戶注冊的接口") ? ?@PostMapping("/regist") ? ?public JSONResult regist(@RequestBody Users user) { ? ? ? ?//1.判斷用戶名和密碼不能為空 ? ? ? ?if(StringUtils.isBlank(user.getUsername())||StringUtils.isBlank(user.getPassword())) { ? ? ? ? ? ?return JSONResult.errorMsg("用戶名或密碼不能為空"); ? ? ? ?} ? ? ? ?//2.判斷用戶名是否存在 ? ? ? ?boolean usernameIsExist = userService.queryUsernameIsExist(user.getUsername()); ? ? ? ?if(!usernameIsExist) { ? ? ? ? ? ?user.setNickname(user.getUsername()); ? ? ? ? ? ?try { ? ? ? ? ? ? ? ?user.setPassword(MD5Utils.getMD5Str(user.getPassword())); ? ? ? ? ? ?} catch (Exception e) { ? ? ? ? ? ? ? ?return JSONResult.errorMsg(e.getMessage()); ? ? ? ? ? ?} ? ? ? ? ? ?user.setFollowCounts(0); ? ? ? ? ? ?user.setReceiveLikeCounts(0); ? ? ? ? ? ?user.setFansCounts(0); ? ? ? ? ? ?userService.saveUser(user); ? ? ? ?}else { ? ? ? ? ? ?return JSONResult.errorMsg("用戶名或已經存在,請更換在試試!"); ? ? ? ?} ? ? ? ?//防止密碼返回被獲取到 ? ? ? ?user.setPassword(""); ? ? ? ?return JSONResult.ok(user); ? ?} ? ?@ApiOperation(value="用戶登錄",notes="用戶登錄的接口") ? ?@PostMapping("/login") ? ?public JSONResult login(@RequestBody Users user) { ? ? ? ?//1.判斷用戶名和密碼不能為空 ? ? ? ?if(StringUtils.isBlank(user.getUsername())||StringUtils.isBlank(user.getPassword())) { ? ? ? ? ? ?return JSONResult.errorMsg("用戶名或密碼不能為空"); ? ? ? ?} ? ? ? ?//2.判斷用戶名是否存在 ? ? ? ?Users userObject = userService.queryUserIsExist(user); ? ? ? ?if(userObject==null){ ? ? ? ? ? ?return JSONResult.errorMsg("用戶名或密碼不存在!"); ? ? ? ?} ? ? ? ?//防止密碼返回被獲取到 ? ? ? ?user.setPassword(""); ? ? ? ?return JSONResult.ok(userObject); ? ?} }

wx前端部分的開發

「小程序JAVA實戰」小程序登錄與后端聯調(36)

<view>
????<view?class="login-icon">
????????<image?class="login-img"?src="../../resource/images/dsp.jpg"></image>
????</view>
????<view?class="login-from">
????????<form?bindsubmit='doLogin'>
????????????<!--賬號-->
????????????<view?class="inputView">
????????????????<image?class="nameImage"?src="../../resource/images/username.png"></image>
????????????????<label?class="loginLabel">賬號</label>
????????????????<input?name="username"?type="text"??maxlength="10"?class="inputText"?placeholder="請輸入賬號"/>
????????????</view>

????????????<view?class="line"></view>

????????????<!--密碼-->
????????????<view?class="inputView">
????????????????<image?class="keyImage"?src="../../resource/images/password.png"></image>
????????????????<label?class="loginLabel">密碼</label>
????????????????<input?name="password"?maxlength="10"?type="text"?class="inputText"?password="{{true}}"?placeholder="請輸入密碼"/>
????????????</view>

????????????<!--按鈕-->
????????????<view>
????????????????<button?class="loginBtn"?type="primary"?form-type='submit'>登陸</button>
????????????</view>

????????????<view>
????????????????<button?class="goLoginBtn"?type="warn"?bindtap="goRegisterPage">返回注冊</button>
????????????</view>
????????</form>
????</view>
</view>
const?app?=?getApp()

Page({
??data:?{

??},

??doLogin:?function?(e)?{
????var?formObject?=?e.detail.value;
????var?username?=?formObject.username;
????var?password?=?formObject.password;

????//?簡單驗證
????if?(username.length?==?0?||?password.length?==?0)?{
??????wx.showToast({
????????title:?'用戶名或密碼不能為空',
????????icon:?'none',
????????duration:?3000
??????})
????}?else?{
??????wx.request({
????????url:?app.serverUrl?+?"/login",
????????method:?"POST",
????????data:?{
??????????username:?username,
??????????password:?password
????????},
????????header:?{
??????????'content-type':?'application/json'?//?默認值
????????},
????????success:?function?(res)?{
??????????console.log(res.data);
??????????var?status?=?res.data.status;
??????????if?(status?==?200)?{
????????????wx.showToast({
??????????????title:?"用戶登陸成功~!",
??????????????icon:?'none',
??????????????duration:?3000
????????????})
????????????app.userinfo?=?res.data.data;
??????????}?else?if?(status?==?500)?{
????????????wx.showToast({
??????????????title:?res.data.msg,
??????????????icon:?'none',
??????????????duration:?3000
????????????})
??????????}
????????}
??????})
????}
??},
??goLoginPage:?function?(e)?{
????console.log("跳轉到注冊");
??}
})

「小程序JAVA實戰」小程序登錄與后端聯調(36)

「小程序JAVA實戰」小程序登錄與后端聯調(36)

PS:測試成功了,其實登錄和注冊頁面基本一樣的,就是改了個標題,請求的request地址發生了改變,唯一區別比較大的是,https://baike.baidu.com/item/criteria/5354117 這是spring boot常用的。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铁岭市| 囊谦县| 建瓯市| 陕西省| 茌平县| 大厂| 镇安县| 昭平县| 福清市| 日土县| 招远市| 雷波县| 托克逊县| 翁源县| 贞丰县| 鲜城| 大城县| 诏安县| 新郑市| 南丹县| 琼海市| 万盛区| 德格县| 淳化县| 甘孜县| 兴业县| 南昌县| 讷河市| 宜君县| 梁山县| 方山县| 泸西县| 五莲县| 海原县| 修水县| 城固县| 宁化县| 米脂县| 襄垣县| 宝丰县| 昂仁县|