package com.dg.core.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.dg.core.ResultData;
|
import com.dg.core.db.gen.entity.SysUser;
|
import com.dg.core.db.gen.mapper.SysUserMapper;
|
import com.dg.core.manager.TokenManager;
|
import com.dg.core.service.ISysUserService;
|
import com.dg.core.util.SmsUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.repository.query.Param;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDateTime;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Service
|
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService
|
{
|
|
@Resource
|
SmsUtil smsUtil;
|
|
@Resource
|
RedisTemplate<String, Object> redisTemplate;
|
|
@Autowired
|
TokenManager tokenManager;
|
|
@Override
|
public SysUser getUserById(Long id) {
|
return baseMapper.selectById(id);
|
}
|
|
@Override
|
public SysUser getUserByAccount(String account) {
|
HashMap<String, Object> map = new HashMap();
|
map.put("login_name", account);
|
List<SysUser> sysUsers = baseMapper.selectByMap(map);
|
if (sysUsers.size() > 0) {
|
return sysUsers.get(0);
|
}
|
return null;
|
}
|
|
@Override
|
public ResultData smsSend(SysUser user){
|
SysUser sysUser = baseMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhonenumber, user.getPhonenumber()));
|
if (sysUser==null){
|
SysUser newUser = new SysUser();
|
newUser.setLoginName(user.getPhonenumber());
|
newUser.setUserName(user.getPhonenumber().substring(0,3)+"xxxx"+user.getPhonenumber().substring(7,11)+"用户");
|
newUser.setUserType("3");
|
newUser.setPhonenumber(user.getPhonenumber());
|
newUser.setSex("2");
|
newUser.setCreateTime(LocalDateTime.now());
|
newUser.setUpdateTime(LocalDateTime.now());
|
baseMapper.insert(newUser);
|
}
|
return smsUtil.sendSms(user.getPhonenumber());
|
}
|
|
@Override
|
public ResultData loginByAccount(String phonenumber, String code){
|
String code1 = redisTemplate.opsForValue().get(phonenumber) + "";
|
if (code.equals(code1)) {
|
SysUser sysUser = baseMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhonenumber, phonenumber));
|
if (sysUser!=null){
|
String token = tokenManager.getTokenByUserId(sysUser.getUserId());
|
// String token = tokenManager.createToken(user.getUserId(), user.getRoleId());
|
System.out.println("token "+token);
|
if (token == null) {
|
//生成一个token,保存用户登录状态
|
token = tokenManager.createToken(sysUser.getUserId(), sysUser.getUserId());
|
}
|
|
sysUser.setLoginDate(LocalDateTime.now());
|
//更新登录时间
|
this.updateConfig(sysUser);
|
|
Map<String, Object> map = new HashMap<>();
|
map.put("token", token);
|
map.put("userId", sysUser.getUserId());
|
map.put("userName", sysUser.getUserName());
|
|
return ResultData.success(map);
|
}
|
else {
|
return ResultData.error("验证码错误");
|
}
|
|
}
|
return ResultData.error("验证码错误");
|
|
}
|
|
@Override
|
public List<SysUser> selectListByDepartmentId(String departmentId, String classifyId) {
|
return baseMapper.selectListByDepartmentId(departmentId,classifyId);
|
}
|
|
@Override
|
public List<SysUser> selectConfigList(IPage<SysUser> page, Integer state,String userType) {
|
return baseMapper.selectConfigList(page, state,userType);
|
}
|
|
|
|
|
/**
|
* 新增聊天记录
|
*
|
* @param config 参数配置信息
|
* @return 结果
|
*/
|
public int insertConfig(SysUser config)
|
{
|
return baseMapper.insertConfig(config);
|
}
|
|
/**
|
* 更新聊天记录
|
*
|
* @param config 参数配置信息
|
* @return 结果
|
*/
|
public int updateConfig(SysUser config)
|
{
|
return baseMapper.updateConfig(config);
|
}
|
|
/**
|
* 删除聊天记录
|
*
|
* @param id 聊天记录主键id
|
* @return 结果
|
*/
|
public int deleteConfigById(String id)
|
{
|
return baseMapper.deleteConfigById(id);
|
}
|
|
@Override
|
public int selectNum(String userType) {
|
return baseMapper.selectNum(userType);
|
}
|
|
|
|
}
|