Commit 7bafc6c6 authored by xc's avatar xc

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

parent 360ca116
package cn.wisenergy.mapper;
import cn.hutool.system.UserInfo;
import cn.wisenergy.model.app.StaffUserVip;
import cn.wisenergy.model.app.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -18,6 +15,8 @@ import java.util.Map;
*/
public interface UsersMapper extends BaseMapper<User> {
User selectOne(Map<String, Object> param);
/**
* 添加
*
......
......@@ -83,6 +83,17 @@
<if test="vipMobile != null">vip_mobile =#{vipMobile}</if>
</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 into
<include refid="table"/>
......@@ -155,7 +166,6 @@
s.culture_grade, s.major_grade, ul.usable_limit
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 pay_record pr ON pr.user_id = u.id AND result = 0
<where>
is_delete=0 and is_vip = 2
<if test="startTime != null and startTime !=''">
......
......@@ -36,6 +36,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @author 86187
......@@ -113,50 +115,11 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
return R.error("入参为空!");
}
//1、判断手机号账户是否存在
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("phone", userVo.getPhone());
queryWrapper.eq("is_delete", 0);
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();
UserToken userToken = new UserToken(userVo.getPhone(), userVo.getCode(), CODE_LOGIN_TYPE);
......@@ -170,16 +133,6 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
userInfoVo.setPhone(user.getPhone());
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();
userInfo.setId(user.getId());
userInfo.setLastLoginTime(new Date());
......@@ -207,10 +160,10 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
}
//1、根据手机号,获取用户信息
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("phone", userVo.getPhone());
queryWrapper.eq("is_delete", 0);
User user = usersMapper.selectOne(queryWrapper);
Map<String, Object> map = new HashMap<>(16);
map.put("phone", userVo.getPhone());
map.put("is_delete", 0);
User user = usersMapper.selectOne(map);
Subject subject = SecurityUtils.getSubject();
String credentialsSalt = Md5Util.digestMD5(userVo.getPassword() + userVo.getPhone());
......@@ -224,17 +177,7 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
userInfoVo.setUserName(user.getUserName());
userInfoVo.setPhone(user.getPhone());
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();
userInfo.setId(user.getId());
userInfo.setLastLoginTime(new Date());
......@@ -253,38 +196,6 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
} catch (Exception e) {
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
......
......@@ -6,7 +6,6 @@ import cn.wisenergy.model.enums.SourceType;
import cn.wisenergy.service.cache.RedisService;
import cn.wisenergy.service.common.CachePrefix;
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.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
......@@ -16,6 +15,9 @@ import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.HashMap;
import java.util.Map;
public class CodeRealm extends AuthorizingRealm {
@Autowired
private UsersMapper usersMapper;
......@@ -30,10 +32,10 @@ public class CodeRealm extends AuthorizingRealm {
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
UserToken userToken = (UserToken)token;
String userName=userToken.getUsername();
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("phone", userName);
queryWrapper.eq("is_delete", 0);
User userInfo = usersMapper.selectOne(queryWrapper);
Map<String, Object> map = new HashMap<>(16);
map.put("phone", userName);
map.put("is_delete", 0);
User userInfo = usersMapper.selectOne(map);
if (userInfo == null) {
return null;
}
......
......@@ -3,7 +3,6 @@ package cn.wisenergy.service.shir.realm;
import cn.wisenergy.mapper.UsersMapper;
import cn.wisenergy.model.app.User;
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.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
......@@ -13,6 +12,9 @@ import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.HashMap;
import java.util.Map;
public class UserRealm extends AuthorizingRealm {
@Autowired
private UsersMapper usersMapper;
......@@ -26,10 +28,10 @@ public class UserRealm extends AuthorizingRealm {
UserToken userToken = (UserToken)token;
String userName=userToken.getUsername();
//通过username从数据库中查找 User对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("phone", userName);
queryWrapper.eq("is_delete", 0);
User userInfo = usersMapper.selectOne(queryWrapper);
Map<String, Object> map = new HashMap<>(16);
map.put("phone", userName);
map.put("is_delete", 0);
User userInfo = usersMapper.selectOne(map);
if (userInfo == 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