lijin 2 kuukautta sitten
vanhempi
commit
e58a4a24bc

+ 15 - 9
authorize-api-service/src/main/java/com/xy/service/impl/SysWorkUserServiceImpl.java

@@ -9,6 +9,7 @@ import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.annotation.LogOperate;
 import com.xy.collections.list.JArrayList;
@@ -26,6 +27,7 @@ import com.xy.service.SysUserDeptService;
 import com.xy.service.SysUserRoleService;
 import com.xy.service.SysWorkUserService;
 import com.xy.utils.Beans;
+import com.xy.utils.FunctionUtils;
 import com.xy.utils.R;
 import icu.mhb.mybatisplus.plugln.core.JoinLambdaWrapper;
 import io.swagger.annotations.Api;
@@ -245,15 +247,19 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
                 }
             }
             // 账号、邮箱、手机、密码登录
-            LambdaQueryWrapper<SysWorkUser> lambdaQueryWrapper = new LambdaQueryWrapper<SysWorkUser>()
-                    .and(sysWorkUserLambdaQueryWrapper -> sysWorkUserLambdaQueryWrapper
-                            .eq(SysWorkUser::getAccount, loginDto.getLoginName())
-                            .or()
-                            .eq(SysWorkUser::getEmail, loginDto.getLoginName())
-                            .or()
-                            .eq(SysWorkUser::getPhone, loginDto.getLoginName()))
-                    .eq(SysWorkUser::getPassword, SecureUtil.md5(loginDto.getPassword()));
-            sysWorkUser = getOne(lambdaQueryWrapper);
+            FunctionUtils.ParamsResult<List<SFunction<SysWorkUser, String>>, SysWorkUser> fun = sFunctions -> {
+                for (SFunction<SysWorkUser, String> property : sFunctions) {
+                    LambdaQueryWrapper<SysWorkUser> lambdaQueryWrapper = new LambdaQueryWrapper<SysWorkUser>()
+                            .eq(property, loginDto.getLoginName())
+                            .eq(SysWorkUser::getPassword, SecureUtil.md5(loginDto.getPassword()));
+                    SysWorkUser user = getOne(lambdaQueryWrapper);
+                    if (user != null) {
+                        return user;
+                    }
+                }
+                return null;
+            };
+            sysWorkUser = fun.run(Arrays.asList(SysWorkUser::getAccount, SysWorkUser::getPhone, SysWorkUser::getEmail));
         }
         if (sysWorkUser == null) {
             return R.fail("登录名或密码错误");