pars-h5-2021/src/main/java/com/szxgl/vote2021/service/impl/UserServiceImpl.java
liuxingzhi cf21cdb227 ...
2021-11-15 18:37:15 +08:00

107 lines
3.5 KiB
Java

package com.szxgl.vote2021.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.szxgl.vote2021.entity.UserDO;
import com.szxgl.vote2021.entity.UserWorks;
import com.szxgl.vote2021.entity.WxMpUser;
import com.szxgl.vote2021.mapper.UserMapper;
import com.szxgl.vote2021.mapper.UserMapper2;
import com.szxgl.vote2021.service.UserService;
import com.szxgl.vote2021.utils.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.Cookie;
import java.util.Date;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Autowired
private UserMapper2 userMapper2;
@Autowired
private RedisUtil redisUtil;
@Autowired
private static final String USERINFO = "userInfo";
@Override
public void saveAndUpdate(WxMpUser wxMpUser) {
String openid = wxMpUser.getOpenid();
UserDO userDO = get(openid);
if(userDO==null){
UserDO userDO1 = new UserDO();
userDO1.setOpenid(openid);
userDO1.setNickname(wxMpUser.getNickname());
userDO1.setHeadimgurl(wxMpUser.getHeadimgurl());
userDO1.setCreateTime(new Date());
userMapper.insert(userDO1);
}
}
@Override
public UserDO get(String openid) {
QueryWrapper<UserDO> wrapper = new QueryWrapper<>();
wrapper.eq("openid",openid);
return userMapper.selectOne(wrapper);
}
@Override
public void updateUser(UserDO userDO) {
UpdateWrapper<UserDO> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("openid",userDO.getOpenid());
updateWrapper.set("realname",userDO.getRealname());
updateWrapper.set("phone",userDO.getPhone());
updateWrapper.set("update_time",new Date());
userMapper.update(null,updateWrapper);
}
@Override
public UserWorks getUserWorks(String openid) {
//redis是否有该用户信息
if(!redisUtil.hasKey(USERINFO+openid)){
//不存在创建缓存 有效期2小时
UserWorks userWorks = userMapper2.getUserWorks(openid);
redisUtil.set(USERINFO+openid,userWorks,60 * 60 * 2);
return userWorks;
}else {
//判断redis中的用户信息是否为null 如果之前没有上传文件去查看排行榜存入的信息就为null
if(redisUtil.get(USERINFO + openid) != null){
return (UserWorks)redisUtil.get(USERINFO + openid);
}else {
redisUtil.del(USERINFO + openid);
UserWorks userWorks = userMapper2.getUserWorks(openid);
redisUtil.set(USERINFO+openid,userWorks,60 * 60 * 2);
return userWorks;
}
}
}
@Override
public List<UserDO> getUserList() {
QueryWrapper<UserDO> queryWrapper = new QueryWrapper<>();
queryWrapper.select("openid");
return userMapper.selectList(queryWrapper);
}
@Override
public UserDO getUserInfo(String openid) {
QueryWrapper<UserDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("openid",openid);
queryWrapper.select("realname","phone");
return userMapper.selectOne(queryWrapper);
}
@Override
public String getWorksUser(Integer worksId) {
return userMapper2.getWorksUser(worksId);
}
}