Commit 7bafc6c6 authored by xc's avatar xc

登录bug修复,增加字段联合查询导致的

parent 360ca116
package cn.wisenergy.mapper; package cn.wisenergy.mapper;
import cn.hutool.system.UserInfo;
import cn.wisenergy.model.app.StaffUserVip;
import cn.wisenergy.model.app.User; import cn.wisenergy.model.app.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
...@@ -18,6 +15,8 @@ import java.util.Map; ...@@ -18,6 +15,8 @@ import java.util.Map;
*/ */
public interface UsersMapper extends BaseMapper<User> { public interface UsersMapper extends BaseMapper<User> {
User selectOne(Map<String, Object> param);
/** /**
* 添加 * 添加
* *
......
...@@ -83,6 +83,17 @@ ...@@ -83,6 +83,17 @@
<if test="vipMobile != null">vip_mobile =#{vipMobile}</if> <if test="vipMobile != null">vip_mobile =#{vipMobile}</if>
</sql> </sql>
<select id="selectOne" resultMap="userMap">
select
<include refid="cols_all"/>
from
<include refid="table"/>
<where>
<if test="phone != null and phone !=''">and phone = #{phone}</if>
<if test="is_delete != null and is_delete !=''">and is_delete = #{is_delete}</if>
</where>
</select>
<insert id="add" parameterType="cn.wisenergy.model.app.User" keyProperty="id" useGeneratedKeys="true"> <insert id="add" parameterType="cn.wisenergy.model.app.User" keyProperty="id" useGeneratedKeys="true">
insert into insert into
<include refid="table"/> <include refid="table"/>
...@@ -155,7 +166,6 @@ ...@@ -155,7 +166,6 @@
s.culture_grade, s.major_grade, ul.usable_limit s.culture_grade, s.major_grade, ul.usable_limit
FROM `user` u LEFT JOIN score s ON s.user_id = u.id FROM `user` u LEFT JOIN score s ON s.user_id = u.id
LEFT JOIN user_limit ul ON ul.user_id = u.id LEFT JOIN user_limit ul ON ul.user_id = u.id
LEFT JOIN pay_record pr ON pr.user_id = u.id AND result = 0
<where> <where>
is_delete=0 and is_vip = 2 is_delete=0 and is_vip = 2
<if test="startTime != null and startTime !=''"> <if test="startTime != null and startTime !=''">
......
...@@ -36,6 +36,8 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -36,6 +36,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/** /**
* @author 86187 * @author 86187
...@@ -113,50 +115,11 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme ...@@ -113,50 +115,11 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
return R.error("入参为空!"); return R.error("入参为空!");
} }
//1、判断手机号账户是否存在 //1、判断手机号账户是否存在
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("phone", userVo.getPhone()); queryWrapper.eq("phone", userVo.getPhone());
queryWrapper.eq("is_delete", 0); queryWrapper.eq("is_delete", 0);
User user = baseMapper.selectOne(queryWrapper); User user = baseMapper.selectOne(queryWrapper);
/* if (null == user) {
return R.error("该手机号未注册,请先注册!");
}*/
//2、判断验证码是否正确
/* String source = SourceType.getByCode(userVo.getSource());
R<Boolean> result = sendSmsSerVice.valid(userVo.getPhone(), userVo.getCode(), userVo.getScene(), source);
if (null != result && result.getCode() == ERROR_CODE) {
return R.error(result.getMessage());
}*/
//判断该用户是否登录,保存session到redis
/* User userInfo = (User) request.getSession().getAttribute("user");
if (null != userInfo && userInfo.getId().equals(user.getId())) {
HttpSession session = (HttpSession) redisService.get(user.getId().toString());
session.invalidate();
request.getSession().setAttribute("user", user);
redisService.set(user.getId().toString(), request.getSession());
System.out.println(redisService.get(user.getId().toString()));
}*/
//3、保存登录信息
/* LoginRecord loginRecord = new LoginRecord();
loginRecord.setType(OperationTypeEnum.USER_LOGIN.getCode());
loginRecord.setUserId(user.getId());
String name = OperationTypeEnum.getByCode(OperationTypeEnum.USER_LOGIN.getCode());
loginRecord.setOperationName(name);
loginRecordMapper.add(loginRecord);
//4、构造返回参数
UserInfoVo userInfoVo = new UserInfoVo();
userInfoVo.setUserId(user.getId());
userInfoVo.setUserName(user.getUserName());
userInfoVo.setPhone(user.getPhone());
return R.ok(userInfoVo);*/
Subject subject = SecurityUtils.getSubject(); Subject subject = SecurityUtils.getSubject();
UserToken userToken = new UserToken(userVo.getPhone(), userVo.getCode(), CODE_LOGIN_TYPE); UserToken userToken = new UserToken(userVo.getPhone(), userVo.getCode(), CODE_LOGIN_TYPE);
...@@ -170,16 +133,6 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme ...@@ -170,16 +133,6 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
userInfoVo.setPhone(user.getPhone()); userInfoVo.setPhone(user.getPhone());
userInfoVo.setSessionId(subject.getSession().getId().toString()); userInfoVo.setSessionId(subject.getSession().getId().toString());
/* //3、保存操作记录
LoginRecord loginRecord = new LoginRecord();
loginRecord.setType(OperationTypeEnum.USER_LOGIN.getCode());
loginRecord.setUserId(user.getId());
String name = OperationTypeEnum.getByCode(OperationTypeEnum.USER_LOGIN.getCode());
loginRecord.setOperationName(name);
int sum = loginRecordMapper.add(loginRecord);
if (sum == 0) {
return R.error("保存操作记录失败!");
}*/
User userInfo= new User(); User userInfo= new User();
userInfo.setId(user.getId()); userInfo.setId(user.getId());
userInfo.setLastLoginTime(new Date()); userInfo.setLastLoginTime(new Date());
...@@ -207,10 +160,10 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme ...@@ -207,10 +160,10 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
} }
//1、根据手机号,获取用户信息 //1、根据手机号,获取用户信息
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); Map<String, Object> map = new HashMap<>(16);
queryWrapper.eq("phone", userVo.getPhone()); map.put("phone", userVo.getPhone());
queryWrapper.eq("is_delete", 0); map.put("is_delete", 0);
User user = usersMapper.selectOne(queryWrapper); User user = usersMapper.selectOne(map);
Subject subject = SecurityUtils.getSubject(); Subject subject = SecurityUtils.getSubject();
String credentialsSalt = Md5Util.digestMD5(userVo.getPassword() + userVo.getPhone()); String credentialsSalt = Md5Util.digestMD5(userVo.getPassword() + userVo.getPhone());
...@@ -224,17 +177,7 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme ...@@ -224,17 +177,7 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
userInfoVo.setUserName(user.getUserName()); userInfoVo.setUserName(user.getUserName());
userInfoVo.setPhone(user.getPhone()); userInfoVo.setPhone(user.getPhone());
userInfoVo.setSessionId(subject.getSession().getId().toString()); userInfoVo.setSessionId(subject.getSession().getId().toString());
/*
//3、保存操作记录
LoginRecord loginRecord = new LoginRecord();
loginRecord.setType(OperationTypeEnum.USER_LOGIN.getCode());
loginRecord.setUserId(user.getId());
String name = OperationTypeEnum.getByCode(OperationTypeEnum.USER_LOGIN.getCode());
loginRecord.setOperationName(name);
int sum = loginRecordMapper.add(loginRecord);
if (sum == 0) {
return R.error("保存操作记录失败!");
}*/
User userInfo= new User(); User userInfo= new User();
userInfo.setId(user.getId()); userInfo.setId(user.getId());
userInfo.setLastLoginTime(new Date()); userInfo.setLastLoginTime(new Date());
...@@ -253,38 +196,6 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme ...@@ -253,38 +196,6 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
} catch (Exception e) { } catch (Exception e) {
return R.error(1, "系统异常"); return R.error(1, "系统异常");
} }
/*
if (null == user) {
return R.error("该用户不存在,请您注册账号!");
}
//2、判断密码是否正确
//MD5加密
String secret = Md5Util.digestMD5(userVo.getPassword() + userVo.getPhone());
if (!user.getPassword().equals(secret)) {
return R.error("密码错误,请您输入正确密码!");
}*/
/* //3、构造返回参数
UserInfoVo userInfoVo = new UserInfoVo();
userInfoVo.setUserId(user.getId());
userInfoVo.setUserName(user.getUserName());
userInfoVo.setPhone(user.getPhone());
//3、保存操作记录
LoginRecord loginRecord = new LoginRecord();
loginRecord.setType(OperationTypeEnum.USER_LOGIN.getCode());
loginRecord.setUserId(user.getId());
String name = OperationTypeEnum.getByCode(OperationTypeEnum.USER_LOGIN.getCode());
loginRecord.setOperationName(name);
int sum = loginRecordMapper.add(loginRecord);
if (sum == 0) {
return R.error("保存操作记录失败!");
}
return R.ok(userInfoVo);*/
} }
@Override @Override
......
...@@ -6,7 +6,6 @@ import cn.wisenergy.model.enums.SourceType; ...@@ -6,7 +6,6 @@ import cn.wisenergy.model.enums.SourceType;
import cn.wisenergy.service.cache.RedisService; import cn.wisenergy.service.cache.RedisService;
import cn.wisenergy.service.common.CachePrefix; import cn.wisenergy.service.common.CachePrefix;
import cn.wisenergy.service.util.UserToken; import cn.wisenergy.service.util.UserToken;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.AuthenticationToken;
...@@ -16,6 +15,9 @@ import org.apache.shiro.realm.AuthorizingRealm; ...@@ -16,6 +15,9 @@ import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection; import org.apache.shiro.subject.PrincipalCollection;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import java.util.HashMap;
import java.util.Map;
public class CodeRealm extends AuthorizingRealm { public class CodeRealm extends AuthorizingRealm {
@Autowired @Autowired
private UsersMapper usersMapper; private UsersMapper usersMapper;
...@@ -30,10 +32,10 @@ public class CodeRealm extends AuthorizingRealm { ...@@ -30,10 +32,10 @@ public class CodeRealm extends AuthorizingRealm {
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
UserToken userToken = (UserToken)token; UserToken userToken = (UserToken)token;
String userName=userToken.getUsername(); String userName=userToken.getUsername();
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); Map<String, Object> map = new HashMap<>(16);
queryWrapper.eq("phone", userName); map.put("phone", userName);
queryWrapper.eq("is_delete", 0); map.put("is_delete", 0);
User userInfo = usersMapper.selectOne(queryWrapper); User userInfo = usersMapper.selectOne(map);
if (userInfo == null) { if (userInfo == null) {
return null; return null;
} }
......
...@@ -3,7 +3,6 @@ package cn.wisenergy.service.shir.realm; ...@@ -3,7 +3,6 @@ package cn.wisenergy.service.shir.realm;
import cn.wisenergy.mapper.UsersMapper; import cn.wisenergy.mapper.UsersMapper;
import cn.wisenergy.model.app.User; import cn.wisenergy.model.app.User;
import cn.wisenergy.service.util.UserToken; import cn.wisenergy.service.util.UserToken;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.AuthenticationToken;
...@@ -13,6 +12,9 @@ import org.apache.shiro.realm.AuthorizingRealm; ...@@ -13,6 +12,9 @@ import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection; import org.apache.shiro.subject.PrincipalCollection;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import java.util.HashMap;
import java.util.Map;
public class UserRealm extends AuthorizingRealm { public class UserRealm extends AuthorizingRealm {
@Autowired @Autowired
private UsersMapper usersMapper; private UsersMapper usersMapper;
...@@ -26,10 +28,10 @@ public class UserRealm extends AuthorizingRealm { ...@@ -26,10 +28,10 @@ public class UserRealm extends AuthorizingRealm {
UserToken userToken = (UserToken)token; UserToken userToken = (UserToken)token;
String userName=userToken.getUsername(); String userName=userToken.getUsername();
//通过username从数据库中查找 User对象 //通过username从数据库中查找 User对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); Map<String, Object> map = new HashMap<>(16);
queryWrapper.eq("phone", userName); map.put("phone", userName);
queryWrapper.eq("is_delete", 0); map.put("is_delete", 0);
User userInfo = usersMapper.selectOne(queryWrapper); User userInfo = usersMapper.selectOne(map);
if (userInfo == null) { if (userInfo == null) {
return null; return null;
} }
......
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