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.HuaChengSysUser;
|
import com.dg.core.db.gen.entity.OrganizationChartEntity;
|
import com.dg.core.db.gen.entity.SysUser;
|
import com.dg.core.db.gen.mapper.OrganizationChartMapper;
|
import com.dg.core.db.gen.mapper.SysUserMapper;
|
import com.dg.core.manager.TokenManager;
|
import com.dg.core.service.IHuaChengSysUserService;
|
import com.dg.core.service.ISysUserService;
|
import com.dg.core.util.SmsUtil;
|
import com.dg.core.util.Snowflake;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDateTime;
|
import java.util.ArrayList;
|
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;
|
|
@Resource
|
private OrganizationChartMapper organizationChartMapper;
|
|
/**
|
* 花城e+用户接口
|
*/
|
@Autowired
|
IHuaChengSysUserService iHuaChengSysUserService;
|
|
@Override
|
public SysUser getUserByAccount(String account) {
|
SysUser sysUsers = baseMapper.getUserByAccount(account);
|
return sysUsers;
|
}
|
|
@Override
|
public ResultData smsSend(SysUser user){
|
return smsUtil.sendSmsNew(user.getPhonenumber());
|
|
}
|
|
@Override
|
public ResultData loginByAccount(String phonenumber, String code){
|
String code1 = redisTemplate.opsForValue().get(phonenumber) + "";
|
|
SysUser sysUser = baseMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhonenumber, phonenumber));
|
if (sysUser==null){
|
//查询花城e+是否存在此用户
|
List<HuaChengSysUser> list=iHuaChengSysUserService.selectData("","",phonenumber);
|
HuaChengSysUser huaChengSysUser=null;
|
|
if( list.size()>0 )
|
{
|
huaChengSysUser=list.get(0);
|
}
|
|
if(huaChengSysUser==null)
|
{
|
SysUser newUser = new SysUser();
|
newUser.setUserId(Snowflake.getId()+"");
|
newUser.setLoginName(phonenumber);
|
newUser.setUserName(phonenumber.substring(0,3)+"xxxx"+phonenumber.substring(7,11)+"用户");
|
newUser.setUserType("3");
|
newUser.setPhonenumber(phonenumber);
|
newUser.setSex("1");
|
newUser.setCreateTime(LocalDateTime.now());
|
newUser.setUpdateTime(LocalDateTime.now());
|
baseMapper.insertConfig(newUser);
|
}
|
else
|
{
|
SysUser newUser = new SysUser();
|
newUser.setUserId(huaChengSysUser.getUserId()+"");
|
newUser.setLoginName(huaChengSysUser.getPhone());
|
newUser.setUserName(huaChengSysUser.getNickName());
|
newUser.setUserType("3");
|
newUser.setPhonenumber(huaChengSysUser.getPhone());
|
newUser.setSex(huaChengSysUser.getSex());
|
newUser.setAvatar(huaChengSysUser.getImageUrl());
|
newUser.setCreateTime(LocalDateTime.now());
|
newUser.setUpdateTime(LocalDateTime.now());
|
newUser.setOpenid(huaChengSysUser.getOpenid());
|
baseMapper.insertConfig(newUser);
|
}
|
}
|
|
if (code.equals(code1)) {
|
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) {
|
List<String> departmentIds=new ArrayList<>();
|
departmentIds.add(departmentId);
|
List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda()
|
.eq(OrganizationChartEntity::getParentId, departmentId));
|
if (organizationChartEntities!=null){
|
for (OrganizationChartEntity organizationChart:organizationChartEntities) {
|
departmentIds.add(organizationChart.getId().toString());
|
List<OrganizationChartEntity> organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda()
|
.eq(OrganizationChartEntity::getParentId, organizationChart.getId().toString()));
|
if (organizationChartEntitiesUser!=null)
|
departmentIds=this.getDepartmentIds(organizationChartEntitiesUser,departmentIds);
|
}
|
}
|
if (classifyId==null)
|
return baseMapper.selectListByDepartmentId(departmentIds,null,null);
|
else
|
return baseMapper.selectListByDepartmentId(departmentIds,","+classifyId,classifyId+",");
|
}
|
|
@Override
|
public ResultData loginByPhonenumber(String phonenumber)
|
{
|
SysUser sysUser = baseMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhonenumber, phonenumber));
|
if (sysUser==null){
|
//查询花城e+是否存在此用户
|
List<HuaChengSysUser> list=iHuaChengSysUserService.selectData("","",phonenumber);
|
HuaChengSysUser huaChengSysUser=null;
|
|
if(list!=null || list.size()>0 )
|
{
|
huaChengSysUser=list.get(0);
|
}
|
|
SysUser newUser = new SysUser();
|
if(huaChengSysUser==null)
|
{
|
newUser.setUserId(Snowflake.getId()+"");
|
newUser.setLoginName(phonenumber);
|
newUser.setUserName(phonenumber.substring(0,3)+"xxxx"+phonenumber.substring(7,11)+"用户");
|
newUser.setUserType("3");
|
newUser.setPhonenumber(phonenumber);
|
newUser.setSex("1");
|
newUser.setCreateTime(LocalDateTime.now());
|
newUser.setUpdateTime(LocalDateTime.now());
|
baseMapper.insertConfig(newUser);
|
}
|
else
|
{
|
newUser.setUserId(huaChengSysUser.getUserId());
|
newUser.setLoginName(huaChengSysUser.getPhone());
|
newUser.setUserName(huaChengSysUser.getNickName());
|
newUser.setUserType("3");
|
newUser.setPhonenumber(huaChengSysUser.getPhone());
|
newUser.setSex(huaChengSysUser.getSex());
|
newUser.setAvatar(huaChengSysUser.getImageUrl());
|
newUser.setCreateTime(LocalDateTime.now());
|
newUser.setUpdateTime(LocalDateTime.now());
|
newUser.setOpenid(huaChengSysUser.getOpenid());
|
baseMapper.insertConfig(newUser);
|
}
|
|
String token = tokenManager.getTokenByUserId(newUser.getUserId());
|
// String token = tokenManager.createToken(user.getUserId(), user.getRoleId());
|
System.out.println("token " + token);
|
if (token == null) {
|
//生成一个token,保存用户登录状态
|
token = tokenManager.createToken(newUser.getUserId(), newUser.getUserId());
|
}
|
|
Map<String, Object> map = new HashMap<>();
|
map.put("token", token);
|
map.put("userId", newUser.getUserId());
|
map.put("userName", newUser.getUserName());
|
|
return ResultData.success(map);
|
|
}
|
else
|
{
|
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);
|
}
|
}
|
|
@Override
|
public List<SysUser> queryList(Integer userType,String keyWord) {
|
return baseMapper.queryList(userType,keyWord);
|
}
|
|
public List<String> getDepartmentIds( List<OrganizationChartEntity> organizationChartEntities,List<String> departmentIds){
|
for (OrganizationChartEntity organizationChart:organizationChartEntities) {
|
departmentIds.add(organizationChart.getId().toString());
|
List<OrganizationChartEntity> organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda()
|
.eq(OrganizationChartEntity::getParentId, organizationChart.getId().toString()));
|
if (organizationChartEntitiesUser!=null)
|
departmentIds=this.getDepartmentIds(organizationChartEntitiesUser,departmentIds);
|
|
}
|
return departmentIds;
|
}
|
|
@Override
|
public List<SysUser> selectConfigList(IPage<SysUser> page, Integer state,String userType,String userName,List<String> ids,String isDivisionHead) {
|
return baseMapper.selectConfigList(page, state,userType,userName,ids,isDivisionHead);
|
}
|
|
@Override
|
public SysUser selectData(String userId,String phonenumber,String loginName) {
|
return baseMapper.selectData(userId,phonenumber,loginName);
|
}
|
|
|
/**
|
* 新增聊天记录
|
*
|
* @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,String userName,List<String> ids,String isDivisionHead) {
|
return baseMapper.selectNum(userType,userName,ids,isDivisionHead);
|
}
|
|
|
|
|
|
|
|
|
}
|