From 08f1b1f1804a8bd833d42f257908d80e88387b55 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 14 三月 2025 11:27:47 +0800 Subject: [PATCH] 3.5增加登录验证、修改密码、人员列表调整 --- flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java | 237 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 205 insertions(+), 32 deletions(-) diff --git a/flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java index e9d5229..41b3628 100644 --- a/flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java +++ b/flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java @@ -4,20 +4,23 @@ 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.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.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -35,44 +38,77 @@ @Autowired TokenManager tokenManager; - @Override - public SysUser getUserById(Long id) { - return baseMapper.selectById(id); - } + @Resource + private OrganizationChartMapper organizationChartMapper; + + /** + * 花城e+用户接口 + */ + @Autowired + IHuaChengSysUserService iHuaChengSysUserService; @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; + baseMapper.setGroup(); + SysUser sysUsers = baseMapper.getUserByAccount(account); + return sysUsers; } @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()); + 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<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 sysUser = baseMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhonenumber, phonenumber)); + 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()); @@ -103,11 +139,143 @@ } @Override - public List<SysUser> selectConfigList(IPage<SysUser> page, Integer state,String userType) { - return baseMapper.selectConfigList(page, state,userType); + public List<SysUser> selectListByDepartmentId(String departmentId, String classifyId) { + baseMapper.setGroup(); + 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) + { + baseMapper.setGroup(); + 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) { + baseMapper.setGroup(); + return baseMapper.queryList(userType,keyWord); + } + + @Override + public void setGroup() { + baseMapper.setGroup(); + } + + 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) { + 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); + } /** @@ -144,10 +312,15 @@ } @Override - public int selectNum(String userType) { - return baseMapper.selectNum(userType); + public int selectNum(String userType,String userName,List<String> ids,String isDivisionHead) { + return baseMapper.selectNum(userType,userName,ids,isDivisionHead); } + + + + + } -- Gitblit v1.7.1