....
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
package com.szxgl.pars2021.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.szxgl.pars2021.entity.UserDO;
|
||||
import com.szxgl.pars2021.entity.UserWorks;
|
||||
import com.szxgl.pars2021.entity.WxMpUser;
|
||||
import com.szxgl.pars2021.mapper.UserMapper;
|
||||
import com.szxgl.pars2021.mapper.UserMapper2;
|
||||
import com.szxgl.pars2021.service.UserService;
|
||||
import com.szxgl.pars2021.utils.RedisUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user