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