mitao
2025-03-14 08f1b1f1804a8bd833d42f257908d80e88387b55
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);
    }
}