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 implements ISysUserService { @Resource SmsUtil smsUtil; @Resource RedisTemplate redisTemplate; @Autowired TokenManager tokenManager; @Resource private OrganizationChartMapper organizationChartMapper; /** * 花城e+用户接口 */ @Autowired IHuaChengSysUserService iHuaChengSysUserService; @Override public SysUser getUserByAccount(String account) { baseMapper.setGroup(); SysUser sysUsers = baseMapper.getUserByAccount(account); return sysUsers; } @Override public ResultData smsSend(SysUser user){ baseMapper.setGroup(); return smsUtil.sendSmsNew(user.getPhonenumber()); } @Override public ResultData loginByAccount(String phonenumber, String code){ baseMapper.setGroup(); String code1 = redisTemplate.opsForValue().get(phonenumber) + ""; SysUser sysUser = baseMapper.selectOne(new QueryWrapper().lambda().eq(SysUser::getPhonenumber, phonenumber)); if (sysUser==null){ //查询花城e+是否存在此用户 List 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().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 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 selectListByDepartmentId(String departmentId, String classifyId) { baseMapper.setGroup(); List departmentIds=new ArrayList<>(); departmentIds.add(departmentId); List organizationChartEntities = organizationChartMapper.selectList(new QueryWrapper().lambda() .eq(OrganizationChartEntity::getParentId, departmentId)); if (organizationChartEntities!=null){ for (OrganizationChartEntity organizationChart:organizationChartEntities) { departmentIds.add(organizationChart.getId().toString()); List organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper().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) { baseMapper.setGroup(); SysUser sysUser = baseMapper.selectOne(new QueryWrapper().lambda().eq(SysUser::getPhonenumber, phonenumber)); if (sysUser==null){ //查询花城e+是否存在此用户 List 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 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 map = new HashMap<>(); map.put("token", token); map.put("userId", sysUser.getUserId()); map.put("userName", sysUser.getUserName()); return ResultData.success(map); } } @Override public List queryList(Integer userType,String keyWord) { baseMapper.setGroup(); return baseMapper.queryList(userType,keyWord); } @Override public void setGroup() { baseMapper.setGroup(); } public List getDepartmentIds( List organizationChartEntities,List departmentIds){ for (OrganizationChartEntity organizationChart:organizationChartEntities) { departmentIds.add(organizationChart.getId().toString()); List organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper().lambda() .eq(OrganizationChartEntity::getParentId, organizationChart.getId().toString())); if (organizationChartEntitiesUser!=null) departmentIds=this.getDepartmentIds(organizationChartEntitiesUser,departmentIds); } return departmentIds; } @Override public List selectConfigList(IPage page, Integer state,String userType,String userName,List ids,String isDivisionHead) { baseMapper.setGroup(); return baseMapper.selectConfigList(page, state,userType,userName,ids,isDivisionHead); } @Override public SysUser selectData(String userId,String phonenumber,String loginName) { baseMapper.setGroup(); 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 ids,String isDivisionHead) { return baseMapper.selectNum(userType,userName,ids,isDivisionHead); } }