diff --git a/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallUserService.java b/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallUserService.java index 1be5b0e8..63f7f6a8 100644 --- a/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallUserService.java +++ b/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallUserService.java @@ -63,4 +63,10 @@ public class LitemallUserService { LitemallUserExample example = new LitemallUserExample(); return (int)userMapper.countByExample(example); } + + public List queryByUsername(String username) { + LitemallUserExample example = new LitemallUserExample(); + example.or().andUsernameEqualTo(username); + return userMapper.selectByExample(example); + } } diff --git a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxAuthController.java b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxAuthController.java index 852c123d..7fbe1b97 100644 --- a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxAuthController.java +++ b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxAuthController.java @@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.time.LocalDate; import java.util.HashMap; +import java.util.List; import java.util.Map; @RestController @@ -35,14 +36,59 @@ public class WxAuthController { @Autowired private WxMaService wxService; + /** + * 微信登录 + */ + @RequestMapping("login") + public Object login(@RequestBody String body, HttpServletRequest request) { + String username = JacksonUtil.parseString(body, "username"); + String password = JacksonUtil.parseString(body, "password"); + if(username == null || password == null){ + return ResponseUtil.badArgument(); + } + + List userList =userService.queryByUsername(username); + LitemallUser user = null; + if(userList.size() > 1){ + return ResponseUtil.fail502(); + } + else if(userList.size() == 0){ + return ResponseUtil.badArgumentValue(); + } + else { + user = userList.get(0); + } + + if(!user.getPassword().equals(password)){ + return ResponseUtil.badArgumentValue(); + } + + // userInfo + UserInfo userInfo = new UserInfo(); + userInfo.setNickName(username); + userInfo.setAvatarUrl(user.getAvatar()); + + // token + UserToken userToken = UserTokenManager.generateToken(user.getId()); + + Map result = new HashMap(); + result.put("token", userToken.getToken()); + result.put("tokenExpire", userToken.getExpireTime().toString()); + result.put("userInfo", userInfo); + return ResponseUtil.ok(result); + } + /** * 微信登录 */ @RequestMapping("login_by_weixin") public Object loginByWeixin(@RequestBody String body, HttpServletRequest request) { - String code = JacksonUtil.parseString(body, "code"); FullUserInfo fullUserInfo = JacksonUtil.parseObject(body, "userInfo", FullUserInfo.class); + if(code == null || fullUserInfo == null){ + return ResponseUtil.badArgument(); + } + UserInfo userInfo = fullUserInfo.getUserInfo(); String sessionKey = null; diff --git a/litemall-wx/config/api.js b/litemall-wx/config/api.js index 0112869a..4a114832 100644 --- a/litemall-wx/config/api.js +++ b/litemall-wx/config/api.js @@ -21,6 +21,7 @@ module.exports = { CatalogCurrent: WxApiRoot + 'catalog/current', //分类目录当前分类数据接口 AuthLoginByWeixin: WxApiRoot + 'auth/login_by_weixin', //微信登录 + AuthLoginByAccount: WxApiRoot + 'auth/login', //账号登录 GoodsCount: WxApiRoot + 'goods/count', //统计商品总数 GoodsList: WxApiRoot + 'goods/list', //获得商品列表 diff --git a/litemall-wx/pages/auth/login/login.js b/litemall-wx/pages/auth/login/login.js index 2e351086..a18b3479 100644 --- a/litemall-wx/pages/auth/login/login.js +++ b/litemall-wx/pages/auth/login/login.js @@ -48,7 +48,7 @@ Page({ accountLogin: function () { var that = this; - if (that.data.password.length < 1 || that.data.username.length < 1) { + if (this.data.password.length < 1 || this.data.username.length < 1) { wx.showModal({ title: '错误信息', content: '请输入用户名和密码', @@ -58,7 +58,7 @@ Page({ } wx.request({ - url: api.ApiRootUrl + 'auth/login', + url: api.AuthLoginByAccount, data: { username: that.data.username, password: that.data.password @@ -68,11 +68,12 @@ Page({ 'content-type': 'application/json' }, success: function (res) { - if(res.data.code == 200){ + if (res.data.errno == 0){ that.setData({ - 'loginErrorCount': 0 + loginErrorCount: 0 }); app.globalData.hasLogin = true; + wx.setStorageSync('userInfo', res.data.data.userInfo); wx.setStorage({ key:"token", data: res.data.data.token, @@ -84,6 +85,9 @@ Page({ }); } else{ + that.setData({ + loginErrorCount: that.data.loginErrorCount + 1 + }); app.globalData.hasLogin = false; util.showErrorToast('账户登录失败'); } diff --git a/litemall-wx/pages/auth/login/login.wxml b/litemall-wx/pages/auth/login/login.wxml index d2365536..f3f12e93 100644 --- a/litemall-wx/pages/auth/login/login.wxml +++ b/litemall-wx/pages/auth/login/login.wxml @@ -2,7 +2,7 @@ - + @@ -11,22 +11,22 @@ - + - - 注册账号 + + 注册账号 忘记密码 - + - + \ No newline at end of file