package com.whyc.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.whyc.dto.Response;
|
import com.whyc.mapper.UserMapper;
|
import com.whyc.pojo.UserClient;
|
import com.whyc.pojo.UserInf;
|
import com.whyc.util.ActionUtil;
|
import com.whyc.util.DigestsUtil;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.catalina.User;
|
import org.apache.catalina.Wrapper;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.ApplicationContext;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import javax.servlet.ServletContext;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Service
|
@Slf4j
|
public class UserService {
|
|
@Resource
|
private UserMapper userMapper;
|
|
@Resource
|
private UserBridgeService userBridgeService;
|
|
@Autowired
|
private ApplicationContext applicationContext;
|
|
public Response add(UserInf user) {
|
try {
|
UserInf userFound = userBridgeService.findPasswordByUserName(user.getUName());
|
if (userFound.getUId() != 0) {
|
return new Response<>().set(1, false, "用户已存在");
|
}
|
//user.setCreateTime(new Date());
|
Map<String, String> encryptMap = DigestsUtil.encryptPassword(user.getUpassword());
|
user.setUpassword(encryptMap.get("password"));
|
if (userMapper.insert(user) > 0) {
|
return new Response<>().set(1, true);
|
} else {
|
return new Response<>().set(1, false, "添加失败");
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
return new Response<>().set(0);
|
}
|
}
|
|
public UserInf getById(int id) {
|
return userMapper.selectById(id);
|
}
|
|
public List<UserInf> getAll() {
|
List<UserInf> users = userMapper.selectList(null);
|
return users;
|
}
|
|
public IPage<UserInf> getAllWithPage(Page page) {
|
return userMapper.selectPage(page, null);
|
}
|
|
public boolean update(UserInf user) {
|
return userMapper.updateById(user)>0;
|
}
|
|
public boolean delete(int id) {
|
return userMapper.deleteById(id)>0;
|
}
|
|
// 将所有登陆的用户的信息存到application中
|
public void setApplication(UserInf user) {
|
ServletContext application = ActionUtil.getApplication();
|
//查看全局中存储的users的Map的key-value集合
|
Map<String, UserClient> map = (Map) application.getAttribute("users");
|
if (map == null) {
|
map = new HashMap<String, UserClient>();
|
} else {
|
//如果集合中有值,则获取当前用户对应的用户信息,key为用户名username,Value为用户名,存储的时间
|
UserClient client = map.get(user.getUName());
|
if (client != null) { //已存在
|
map.remove(user.getUName());
|
}
|
}
|
Long login_time = new Date().getTime();
|
ActionUtil.getSession().setAttribute("login_time", login_time);
|
map.put(user.getUName(), new UserClient(ActionUtil.getRequest().getRemoteAddr(),user,login_time));
|
application.setAttribute("users", map);
|
}
|
|
public UserInf getUserByUKeyId(String uKeyId){
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.eq("uKey_ID",uKeyId);
|
UserInf userInf = userMapper.selectOne(queryWrapper);
|
return userInf;
|
}
|
|
public UserInf getUserByUserName(String userName){
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.eq("Uname",userName);
|
UserInf userInf = userMapper.selectOne(queryWrapper);
|
return userInf;
|
}
|
|
public boolean bindUkey(UserInf userInf){
|
UpdateWrapper updateWrapper = new UpdateWrapper();
|
updateWrapper.eq("uName",userInf.getUName());
|
int affectRows = userMapper.update(userInf,updateWrapper);
|
return affectRows>0;
|
}
|
|
|
public Response updatePassword(UserInf userInf,String uSnId){
|
String password = (String) ActionUtil.EncryptionMD5(uSnId);
|
userInf.setUSnId(uSnId);
|
userInf.setUpassword(password);
|
if (userMapper.updateById(userInf)>0){
|
return new Response().set(1,"修改成功");
|
}else {
|
return new Response().set(0,"修改失败");
|
}
|
}
|
|
|
}
|