3 次代碼提交 a9140eec42 ... 2c1eef63cb

作者 SHA1 備註 提交日期
  wangzhun 2c1eef63cb Merge branch 'master' of http://192.168.2.241:3000/wangzhun/gisbim into fac-master 4 月之前
  wangzhun d37bb9e434 功能修改 4 月之前
  wangzhun 265d486c88 tgp 同步逻辑修改 1 年之前
共有 21 個文件被更改,包括 558 次插入310 次删除
  1. 6 0
      sxgk-projet/base-service/pom.xml
  2. 200 7
      sxgk-projet/base-service/src/main/java/com/tofly/base/controller/UserController.java
  3. 2 0
      sxgk-projet/base-service/src/main/java/com/tofly/base/service/UserService.java
  4. 4 3
      sxgk-projet/base-service/src/main/java/com/tofly/base/service/impl/AuthcodeServiceImpl.java
  5. 37 1
      sxgk-projet/base-service/src/main/java/com/tofly/base/service/impl/UserServiceImpl.java
  6. 1 1
      sxgk-projet/base-service/src/main/resources/mapper/UserMapper.xml
  7. 4 6
      sxgk-projet/base-service/src/test/java/com/tofly/base/utils/DesUtilsTest.java
  8. 26 0
      sxgk-projet/base-service/src/test/java/com/tofly/base/utils/myTest.java
  9. 8 0
      sxgk-projet/sxgk/src/main/java/com/tofly/sxgk/custom/controller/UtilController.java
  10. 15 6
      sxgk-projet/sxgk/src/main/java/com/tofly/sxgk/tgpms/TgpmsConnectionTask.java
  11. 2 1
      sxgk-projet/sxgk/src/main/java/com/tofly/sxgk/tgpms/TgpmsDataHander.java
  12. 26 0
      sxgk-projet/sxgk/src/test/java/com/tofly/sxgk/custom/controller/myTest.java
  13. 2 3
      sxgk-projet/sxgk/src/test/java/service/Test2.java
  14. 2 1
      sxgk-projet/tofly-auth/src/main/java/com/tofly/auth/config/AuthorizationServerConfiguration.java
  15. 15 0
      sxgk-projet/tofly-auth/src/main/java/com/tofly/auth/controller/TokenController.java
  16. 26 0
      sxgk-projet/tofly-auth/src/main/java/com/tofly/auth/oauth/LoginTypeEnum.java
  17. 24 0
      sxgk-projet/tofly-auth/src/main/java/com/tofly/auth/oauth/PhoneNumberUtil.java
  18. 155 277
      sxgk-projet/tofly-auth/src/main/java/com/tofly/auth/oauth/ToFlyUserDetailsService.java
  19. 1 1
      sxgk-projet/tofly-auth/src/main/java/com/tofly/auth/oauth/ToflyAuthenticationProvider.java
  20. 0 1
      sxgk-projet/tofly-getway/src/main/java/com/tofly/toflygetway/filter/LoginParamFilter.java
  21. 2 2
      sxgk-projet/tofly-test1/pom.xml

+ 6 - 0
sxgk-projet/base-service/pom.xml

@@ -56,6 +56,12 @@
             <artifactId>qcloudsms</artifactId>
             <version>1.0.6</version>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.13.2</version>
+            <scope>test</scope>
+        </dependency>
 
     </dependencies>
 

+ 200 - 7
sxgk-projet/base-service/src/main/java/com/tofly/base/controller/UserController.java

@@ -4,6 +4,7 @@
  */
 package com.tofly.base.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -44,6 +45,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -424,16 +426,28 @@ public class UserController {
             @ApiImplicitParam(name = "password", value = "修改后密码", required = true, dataType = "String")
     })
     public ResultRespone updatePassword(@RequestBody User user2) {
-
+        log.info("修改密码"+ JSON.toJSONString(user2));
         Long id = user2.getId();
-        User u =new User();
+        User u = null;
         if(id!=null){
             u = userService.getById(id);
         }else{
-            if(SmsUtils.isPhoneNumber(user2.getUsername())) {
-                user2.setUsername(DesUtils.encrypt(user2.getUsername(), "toflysxgk"));
+            if(StringUtil.isEmpty(user2.getPhone())){
+                try{
+                    u = userService.getById(SecurityUtils.getUserId());
+                }catch (NullPointerException e){
+                     if(user2!=null && StringUtil.isNotEmpty(user2.getUsername())){
+                         u = userService.getUserByName(user2.getUsername());
+                     }
+                }
+
+            }else{
+                if(SmsUtils.isPhoneNumber(user2.getPhone())) {
+                    user2.setPhone(DesUtils.encrypt(user2.getUsername(), "toflysxgk"));
+                }
+                u = userService.getUserByName(user2.getUsername());
             }
-            u = userService.getUserByName(user2.getUsername());
+
         }
         id=u.getId();
         String password = user2.getPassword();
@@ -805,6 +819,182 @@ public class UserController {
         return null;
     }
 
+    @GetMapping("/initDataReplace")
+    @ApiOperation(value = "初始化获取用户所有资源")
+    @SneakyThrows
+    public ResultRespone getInitData2(@ApiParam(value = "所属平台,1BS2CS", name = "platform", required = true, type = "String") String platform
+    ,String sourceStr,String targetStr
+    ) {
+        Long userId = SecurityUtils.getUserId();
+        Long deptId = SecurityUtils.getUserDeptId();
+        Map proId = projectResultIdFeign.getProId();
+
+        Long prjId =  Long.parseLong(String.valueOf(proId.get(String.valueOf(userId)))) ;
+        //资源列表
+        //List gisList=new ArrayList();
+        List<Map> gisList = new ArrayList();
+        List<Map> sourList;
+        List<Map> progisResources = sourceService.listSourcesByPrjUser(userId);
+        //List gisList=new ArrayList();
+        List<Map> progisList = new ArrayList();
+        for (Map m : progisResources) {
+            List<Source> sourceList = sourceService.list(Wrappers.<Source>lambdaQuery()
+                    .eq(Source::getPid, m.get("id"))
+                    .apply("exists (select 1\n" +
+                            "          from tf_smpn_prjsource_x ps, tf_ywpn_userprj_w up\n" +
+                            "          where" +
+                            " ps.prj_id =up.prj_id and  ps.prj_id = {0}\n" +
+                            "          and ps.source_id = tf_smpn_source_x.id\n" +
+                            "          and up.user_id = {1}  )", proId.get(String.valueOf(userId)), userId).orderByAsc(true,Source::getId)
+            );
+            sourList = new ArrayList();
+            for (Source source : sourceList) {
+                Map sourcemap = new HashMap();
+                sourcemap.put("key", source.getCkey());
+                sourcemap.put("groupname", m.get("GROUPNAME"));
+                sourcemap.put("name", source.getName());
+                sourcemap.put("url", source.getCval().replace(sourceStr,targetStr));
+                sourcemap.put("isDisplay", source.getIsDisplay());
+                sourcemap.put("thirdSys",source.getThirdSys());
+                sourcemap.put("thirdSysAutoLoad",source.getThirdSysAutoLoad());
+                //  if("theme".equals(m.get("code"))){
+                Prjsource one = prjsourceService.getOne(Wrappers.<Prjsource>lambdaQuery()
+                        .eq(Prjsource::getPrjId, prjId).eq(Prjsource::getSourceId, source.getId()));
+                sourcemap.put("sort",one.getSort());
+                sourcemap.put("sourceGroup",one.getSourceGroup());
+//                }
+
+                sourList.add(sourcemap);
+            }
+            if("theme".equals(m.get("code"))){
+                sourList =     sourList.stream().sorted(new Comparator<Map>() {
+                    @Override
+                    public int compare(Map o1, Map o2) {
+                        Long id1 = (Long)  o1.get("sort");
+                        Long id2 = (Long)  o2.get("sort");
+                        if(id1==null){
+                            id1 = new Long(9999);
+                        }
+                        if(id2==null){
+                            id2= new Long(9999);
+                        }
+                        return id1.compareTo(id2);
+                    }
+                }).collect(Collectors.toList());
+            }
+
+            m.put("config", sourList);
+            progisList.add(m);
+        }
+
+
+        //所有菜单
+        List<Menu> menuList = userService.getMenuListByUser(platform);
+        //子系统
+        List<System> sysList = userService.getSystemListByUser(platform);
+
+        List<Map> menubarwidgets = new ArrayList<>();
+        List<Map> toolbarwidgets = new ArrayList<>();
+
+        for (Menu m : menuList) {
+            if (CommonConstants.MENU_TYPE_MENU.equals(m.getType())) {
+                Map map = new HashMap();
+                map.put("id", m.getCode());
+                map.put("label", m.getName());
+                map.put("icon", m.getIcon());
+                map.put("icon2", m.getMouseIcon());
+
+                List<Menu> menuList1 = menuService.list(Wrappers.<Menu>lambdaQuery()
+                        .eq(Menu::getParentId, m.getId()).orderByAsc(Menu::getSort)
+                        .apply("exists\n" +
+                                " (select 1\n" +
+                                "          from tf_smpn_userrole_x, tf_smpn_rolemenu_x\n" +
+                                "         where tf_smpn_userrole_x.role_id = tf_smpn_rolemenu_x.role_id\n" +
+                                "           and tf_smpn_rolemenu_x.menu_id = tf_smpn_menu_x.id\n" +
+                                "           and tf_smpn_userrole_x.user_id = {0})", SecurityUtils.getUserId())
+                );
+                List<Map> mmList = new ArrayList();
+                for (Menu menu : menuList1) {
+                    Map map1 = BeanUtils.describe(menu);
+                    map1.put("subsys", getSysCode(sysList, menu.getSysId()));
+                    map1.put("id", menu.getCode());
+                    map1.put("label", menu.getName());
+                    map1.put("widget", menu.getPath());
+                    map1.put("main", "Widget"); //写死。
+                    map1.put("inpanel", "1".equals(menu.getInpanel()) ? true : false);
+                    map1.put("autorun", "1".equals(menu.getAutorun()) ? true : false);
+                    mmList.add(map1);
+                }
+                ;
+                map.put("data", mmList);
+                menubarwidgets.add(map);
+            } else if (CommonConstants.MENU_TYPE_TOOL.equals(m.getType()) && (m.getParentId() == null)) {
+                Map map = new HashMap();
+                map.put("id", m.getCode());
+                map.put("sysId", getSysCode(sysList, m.getSysId()));
+                map.put("title", m.getName());
+                map.put("label", m.getName());
+                map.put("icon", m.getIcon());
+                map.put("icon2", m.getMouseIcon());
+
+                List<Menu> menuList1 = menuService.list(Wrappers.<Menu>lambdaQuery()
+                        .eq(Menu::getParentId, m.getId()).orderByAsc(Menu::getSort)
+                        .apply("exists\n" +
+                                " (select 1\n" +
+                                "          from tf_smpn_userrole_x, tf_smpn_rolemenu_x\n" +
+                                "         where tf_smpn_userrole_x.role_id = tf_smpn_rolemenu_x.role_id\n" +
+                                "           and tf_smpn_rolemenu_x.menu_id = tf_smpn_menu_x.id\n" +
+                                "           and tf_smpn_userrole_x.user_id = {0})", SecurityUtils.getUserId())
+                );
+                List<Map> mmList = new ArrayList();
+                for (Menu menu : menuList1) {
+                    Map map1 = BeanUtils.describe(menu);
+                    map1.put("id", menu.getCode());
+                    map1.put("sysId", getSysCode(sysList, m.getSysId()));
+                    map1.put("title", menu.getName());
+                    map1.put("label", menu.getName());
+                    map1.put("icon", menu.getIcon());
+                    map1.put("icon2", menu.getMouseIcon());
+                    mmList.add(map1);
+                }
+                ;
+                map.put("data", mmList);
+                toolbarwidgets.add(map);
+            }
+        }
+        ;
+
+        List<Map<String, Object>> subsystem = new ArrayList();
+        for (System sys : sysList) {
+            Map m = BeanUtils.describe(sys);
+            m.put("id", sys.getCode());
+            m.put("type", sys.getSystemType());
+            m.put("title", sys.getNotes());
+            m.put("label", sys.getSystemName());
+            m.put("icon1", sys.getIcon());
+            m.put("icon2", sys.getMouseIcon());
+            m.put("initShow", false); //没有字段,写死
+            subsystem.add(m);
+        }
+        ;
+
+        Map returnMap = new HashMap();
+        returnMap.put("gisresource", gisList);
+
+
+        returnMap.put("progisresource", progisList);
+        returnMap.put("menubarwidgets", menubarwidgets);
+        returnMap.put("subsystem", subsystem);
+        returnMap.put("toolbarwidgets", toolbarwidgets);
+        if("3".equals(platform)){
+            Map returnMap2 = new HashMap();
+            returnMap2.put("menubarwidgets", menubarwidgets);
+            return ResultRespone.success(returnMap2);
+        }
+        return ResultRespone.success(returnMap);
+    }
+
+
 
     /**
      * 通过id删除角色
@@ -1082,7 +1272,8 @@ public class UserController {
             throw new ToflyDeniedException(">>> 加密电话号码错误");
         }
         final User userExist = userService.getOne(Wrappers.<User>lambdaQuery()
-                .eq(User::getPhone, phoneEnc).eq(User::getBelong,"tgpmms系统_u"), false);
+                .eq(User::getPhone, phoneEnc).eq(User::getStatusFlag,1)
+                , false);
         if (userExist == null) {
             return ResultRespone.failed("用户信息为空, phone = " + phoneNumber + ", phoneEnc = " + phoneEnc);
         }
@@ -1171,7 +1362,9 @@ public class UserController {
     @ApiOperation(value = "修改密码根据用户名或手机号")
     @PutMapping("/info/updatePasswordByUser")
     public ResultRespone updatePasswordByUser(@RequestBody User user) {
-        return userService.updatePasswordByUser(user);
+        //验证是否已经通过手机验证码check
+
+        return userService.updatePasswordByUserCheck(user);
     }
 
     /* @ApiOperation(value = "批量修改弱手机")

+ 2 - 0
sxgk-projet/base-service/src/main/java/com/tofly/base/service/UserService.java

@@ -56,4 +56,6 @@ public interface UserService extends IService<User> {
 
     public ResultRespone updatePasswordByUser(User user2);
 
+    public ResultRespone updatePasswordByUserCheck(User user2);
+
 }

+ 4 - 3
sxgk-projet/base-service/src/main/java/com/tofly/base/service/impl/AuthcodeServiceImpl.java

@@ -65,7 +65,7 @@ public class AuthcodeServiceImpl extends ServiceImpl<AuthcodeMapper, Authcode> i
     private final ShortMessageBean shortMessageBean;
     @Override
     public Integer checkAuthCode(HashMap<String, Object> req) {
-        String phoneNumber = (String) req.get("phoneNumber");
+        String  phoneNumber = getPhoneNumber(req);
         String codeInput = (String) req.get("codeInput");
 
         String existCode = valueOperations.get(phoneNumber);
@@ -81,6 +81,7 @@ public class AuthcodeServiceImpl extends ServiceImpl<AuthcodeMapper, Authcode> i
         }
 
         if(verifyPass){
+            valueOperations.set("check"+phoneNumber,"pass",120l,TimeUnit.SECONDS);
             return  message_pass;
         }else{
             return  message_error;
@@ -122,7 +123,7 @@ public class AuthcodeServiceImpl extends ServiceImpl<AuthcodeMapper, Authcode> i
             //  final User exist = userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, phoneNumber), false);
             User userByName = userService.getUserByName(phoneNumber);
             if (userByName == null) {
-                throw new ToflyDeniedException("未找到该用户!");
+                throw new ToflyDeniedException("用户名或者密码错误!");
             }
             if(!StringUtils.isEmpty(userByName.getPhone())){
                 try {
@@ -252,7 +253,7 @@ public class AuthcodeServiceImpl extends ServiceImpl<AuthcodeMapper, Authcode> i
         valueOperations.set(phoneNumber+"_last",1+"",30,TimeUnit.SECONDS);
         count = count++;
         valueOperations.set(phoneNumber+"_total",count+"", DateUtil.getNowToNextDaySeconds(),TimeUnit.SECONDS);
-
+        valueOperations.set(phoneNumber, String.valueOf(TimeUnit.MINUTES),60);
         return  Boolean.TRUE;
     }
 

+ 37 - 1
sxgk-projet/base-service/src/main/java/com/tofly/base/service/impl/UserServiceImpl.java

@@ -7,6 +7,7 @@ package com.tofly.base.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -33,6 +34,7 @@ import org.apache.commons.collections.ArrayStack;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.Cache;
 import org.springframework.cache.CacheManager;
+import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
@@ -40,6 +42,7 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.InputStream;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -59,7 +62,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     private SourceService sourceService;
     @Autowired
     private UserRoleService userRoleService;
-
+    @Autowired
+    private  ValueOperations<String, String> valueOperations;
     @Autowired
     private DepartmentService departmentService;
 
@@ -364,6 +368,38 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         return ResultRespone.success(true);
     }
 
+    @Override
+    public ResultRespone updatePasswordByUserCheck(User user2) {
+        //check
+        String username = user2.getUsername();
+        if(StringUtil.isNotEmpty(username)){
+            User sysUser = userService.getUserByName(username);
+            if (sysUser == null) {
+                return ResultRespone.failed(username+"用户信息为空");
+            }
+        }
+        String phoneNumber=null;
+       //获取到的电话号码
+        try{
+              phoneNumber = DesUtils.decrypt(user2.getPhone(), "toflysxgk");
+        }catch(Exception e){
+            phoneNumber = user2.getUsername();
+            e.printStackTrace();
+        }
+
+      //  valueOperations.("check"+phoneNumber,"pass",120l, TimeUnit.SECONDS);
+//        final String flag = valueOperations.get("check" + phoneNumber);
+//        flag =true;
+//     if(StringUtils.isNotBlank(flag)){
+//         valueOperations.getOperations().delete("check" + phoneNumber);
+//         return this.updatePasswordByUser(user2);
+//     }else {
+//         return ResultRespone.failed("短信验证未通过");
+//     }
+        return this.updatePasswordByUser(user2);
+     
+    }
+
     private boolean checkPhone(String str){
         if(str.matches("^[1][3,4,5,7,8,9][0-9]{9}$")){
             return true;

+ 1 - 1
sxgk-projet/base-service/src/main/resources/mapper/UserMapper.xml

@@ -262,7 +262,7 @@ select distinct  id ,create_time from  (
         belong,
         create_user,
         user_level,
-        idcard,
+        replace(idcard,SUBSTR(idcard,4,3),'***') idcard,
         sex,
         (select real_name from TF_SMPN_USER_X
         where id=l.create_user) as create_user_name,

+ 4 - 6
sxgk-projet/base-service/src/test/java/com/tofly/base/utils/DesUtilsTest.java

@@ -1,17 +1,15 @@
 package com.tofly.base.utils;
 
+import com.tofly.common.core.util.PasswordUtil;
+import org.apache.commons.codec.digest.DigestUtils;
 import org.junit.jupiter.api.Test;
 
 public class DesUtilsTest {
 
     @Test
     public  void test1(){
-
-        String message = "18508122104";
-        final String[] split = message.split(",");
-        for (String s : split) {
-            System.out.println(DesUtils.encrypt(s, "toflysxgk"));
-        }
+        final String s = DigestUtils.sha1Hex("13Sxgk@2478!");
+        PasswordUtil.passwordEncode(s);
 
     }
 }

+ 26 - 0
sxgk-projet/base-service/src/test/java/com/tofly/base/utils/myTest.java

@@ -0,0 +1,26 @@
+package com.tofly.base.utils;
+
+import com.tofly.base.BaseApplication;
+import org.jasypt.encryption.StringEncryptor;
+import org.junit.jupiter.api.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import javax.annotation.Resource;
+
+@SpringBootTest(classes = BaseApplication.class)
+@RunWith(SpringRunner.class)
+public class myTest {
+
+    @Resource
+    private StringEncryptor jasyptStringEncryptor;
+
+    @Test
+    public void encodeMysql() {
+        //xuZafI3f/ijUGpnXgxdldza0mvSC1SUwis3Rgb+0JA2heKVuB7LoIqSK2/pjizQt
+        System.out.println(jasyptStringEncryptor.encrypt("Sxgk_028"));
+        System.out.println(jasyptStringEncryptor.decrypt("2e799gm8m7vuvg55mgDIN4GG49cDhr87wpR9iu5rj7byjFLxQghe1z8iEber7ujh"));
+    }
+}

+ 8 - 0
sxgk-projet/sxgk/src/main/java/com/tofly/sxgk/custom/controller/UtilController.java

@@ -29,6 +29,7 @@ public class UtilController {
     private  final MongoUtil mongoUtil;
     private final FilePathBean filePathBean;
     private  final TgpmsConnectionTask tgpmsConnectionTask;
+
     @PostMapping("/test" )
     @ApiOperation(value = "管线宝登录")
     @SneakyThrows
@@ -70,4 +71,11 @@ public class UtilController {
         mongoUtil.downloadFile(id, request, response);
 
     }
+
+    @GetMapping("/testTgp" )
+    @ApiOperation(value = "testTgp")
+    public void testTgp() throws Exception {
+        tgpmsConnectionTask.syncContract();
+
+    }
 }

+ 15 - 6
sxgk-projet/sxgk/src/main/java/com/tofly/sxgk/tgpms/TgpmsConnectionTask.java

@@ -130,6 +130,7 @@ public class TgpmsConnectionTask implements ApplicationRunner {
 
     public void syncdata(){
 
+        log.info("登录了");
         //首先登陆
         try {
             tgpmsDataHander.login();
@@ -139,7 +140,12 @@ public class TgpmsConnectionTask implements ApplicationRunner {
         //项目信息
         log.info("开始同步项目信息....");
 //        syncProject();
-        syncProjNew();
+        try {
+            syncProjNew();
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+        }
+
         log.info("项目信息同步完毕....");
         log.info("开始同步单位信息....");
         //单位信息
@@ -619,14 +625,14 @@ public class TgpmsConnectionTask implements ApplicationRunner {
         try {
             List<Map> list=tgpmsDataHander.getMaptoListHt(tgpmsConnectInfo.getSelContractList());
             Map<String, Long> ctList = contractService.list().stream()
-                    .collect(Collectors.toMap(k -> k.getCode(), v -> v.getId()));
+                    .collect(Collectors.toMap(k -> k.getCode(), v -> v.getId(),(k1,k2)->k1));
             Map<String, Long> dwList = departmentService.list().stream()
-                    .collect(Collectors.toMap(k -> k.getCode(), v -> v.getId()));
+                    .collect(Collectors.toMap(k -> k.getCode(), v -> v.getId(),(k1,k2)->k1));
             Map<String, Long> areaList = areacompanyService.list().stream()
-                    .collect(Collectors.toMap(k -> k.getCode(), v -> v.getId()));
+                    .collect(Collectors.toMap(k -> k.getCode(), v -> v.getId(),(k1,k2)->k1));
 
             Map<String, Long> prjList = prjService.list().stream()
-                    .collect(Collectors.toMap(k ->k.getAcode()+k.getCode(), v -> v.getId()));
+                    .collect(Collectors.toMap(k ->k.getAcode()+k.getCode(), v -> v.getId(),(k1,k2)->k1));
 
             Map<String, Long> prjcList = prjchildService.list().stream()
                     .collect(Collectors.toMap(k ->k.getAcode()+k.getPcode()+k.getCode(), v -> v.getId(),(v1,v2)->v1));
@@ -638,6 +644,7 @@ public class TgpmsConnectionTask implements ApplicationRunner {
             Set<String> cn=new HashSet<>();
             //DESCRIPTION,PO_NO,PROJECT+SUB_PROJECT -> Z,DIVISION  ,COMPANY,COMPANY_SUPERVISION
             list.stream().filter(m -> CONTRACT_TYPE.contains(m.get("PO_TYPE"))).forEach(con->{
+                log.info("po_no:"+con.get("PO_NO"));
                 if(!cn.contains((String)con.get("PO_NO"))){
                     Contract contract=new Contract();
                     contract.setCode((String)con.get("PO_NO"));
@@ -653,6 +660,7 @@ public class TgpmsConnectionTask implements ApplicationRunner {
                     contract.setConstructId(dwList.get((String)con.get("COMPANY")));
                     contract.setSupervisorId(dwList.get((String)con.get("COMPANY_SUPERVISION")));
                     contract.setType((String)con.get("PO_TYPE"));
+
                     if(ctList.keySet().contains((String)con.get("PO_NO"))){
                         contract.setId(ctList.get((String)con.get("PO_NO")));
                         updateList.add(contract);
@@ -667,7 +675,8 @@ public class TgpmsConnectionTask implements ApplicationRunner {
             contractService.updateBatchById(updateList);
 
         } catch (Exception e) {
-            log.error("同步合同时出错:{}",e.getMessage());
+            e.printStackTrace();
+            log.error("同步合同时出错:{}",e.getMessage(),e);
         }
     }
 

+ 2 - 1
sxgk-projet/sxgk/src/main/java/com/tofly/sxgk/tgpms/TgpmsDataHander.java

@@ -38,7 +38,7 @@ public class TgpmsDataHander {
         RestTemplate restTemplate = new RestTemplate();
 
         result = restTemplate.postForEntity(tgpmsConnectInfo.getUri()+tgpmsConnectInfo.getLogin()+
-                    "?username="+tgpmsConnectInfo.getUsername()+"&password="+tgpmsConnectInfo.getPassword(), requestEntity, HashMap.class);
+                    "?key="+tgpmsConnectInfo.getUsername(), requestEntity, HashMap.class);
         HashMap body = result.getBody();
         log.info("body:{}",body);
         Map data = (Map)body.get("data");
@@ -95,6 +95,7 @@ public class TgpmsDataHander {
 
 
     private Object getDataByTgpms(String url) throws Exception{
+        login();
         HttpHeaders requestHeaders = new HttpHeaders();
         requestHeaders.set("Authorization",token);
 

+ 26 - 0
sxgk-projet/sxgk/src/test/java/com/tofly/sxgk/custom/controller/myTest.java

@@ -0,0 +1,26 @@
+package com.tofly.sxgk.custom.controller;
+
+import com.tofly.sxgk.SxgkApplication;
+import org.jasypt.encryption.StringEncryptor;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import javax.annotation.Resource;
+
+@SpringBootTest(classes = SxgkApplication.class)
+@RunWith(SpringRunner.class)
+public class myTest {
+
+    @Resource
+    private StringEncryptor jasyptStringEncryptor;
+
+    @Test
+    public void encodeMysql() {
+        //xuZafI3f/ijUGpnXgxdldza0mvSC1SUwis3Rgb+0JA2heKVuB7LoIqSK2/pjizQt
+        System.out.println(jasyptStringEncryptor.encrypt("Sxgk_028"));
+        System.out.println(jasyptStringEncryptor.decrypt("2e799gm8m7vuvg55mgDIN4GG49cDhr87wpR9iu5rj7byjFLxQghe1z8iEber7ujh"));
+    }
+}

+ 2 - 3
sxgk-projet/sxgk/src/test/java/service/Test2.java

@@ -13,9 +13,8 @@ import java.util.Date;
 public class Test2 {
     public static void main(String[] args) throws IOException, WriterException {
 
-        String filename= IOUtil.TEMP_FILEPATH+"temp.png";
-
-        QRCodeMaker.MakeQRCode("HN08DDZZ.008.01.01.02",filename,300,"HN08DDZZ.008.01.01.02");
+       String message = "http://127.0.0.1:9000/gisbim/c694cd3bb6bd4cd982c93800a56ab2a976kJLugXAN4485203877f6a0259a5e5af53d0d055013.png";
 
+        System.out.println(message.substring(message.lastIndexOf("/")+1,message.length()));
     }
 }

+ 2 - 1
sxgk-projet/tofly-auth/src/main/java/com/tofly/auth/config/AuthorizationServerConfiguration.java

@@ -144,7 +144,8 @@ public class AuthorizationServerConfiguration extends AuthorizationServerConfigu
     @Bean
     public AuthorizationServerTokenServices tokenServices() {
         DefaultTokenServices defaultTokenServices = new DefaultTokenServices();
-        defaultTokenServices.setAccessTokenValiditySeconds(-1);
+        //设置token过期时间 单位秒
+        defaultTokenServices.setAccessTokenValiditySeconds(3600);
         defaultTokenServices.setRefreshTokenValiditySeconds(500);
         defaultTokenServices.setSupportRefreshToken(true);
         //defaultTokenServices.setReuseRefreshToken(false);

+ 15 - 0
sxgk-projet/tofly-auth/src/main/java/com/tofly/auth/controller/TokenController.java

@@ -168,6 +168,21 @@ public class TokenController {
         ResponseEntity<HashMap> result = restTemplate.exchange("http://tofly-getway/auth/oauth/login", HttpMethod.POST, requestEntity, HashMap.class);
         return ResultRespone.success(result.getBody());
     }
+
+    @GetMapping("/mydygLogin")
+    @ApiOperation(tags = "登陆接口", value = "多异构平台登录")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, dataType = "String"),
+    })
+    public ResultRespone mydygLogin(String token) {
+
+        HttpHeaders requestHeaders = new HttpHeaders();
+        requestHeaders.set("tokenCheck", token+ LoginTypeEnum.TOKEN_LOGIN_DYG.getSuf());
+        HttpEntity<MultiValueMap> requestEntity = new HttpEntity<MultiValueMap>(requestHeaders);
+        ResponseEntity<HashMap> result = restTemplate.exchange("http://tofly-getway/auth/oauth/login", HttpMethod.GET, requestEntity, HashMap.class);
+//        ResponseEntity<HashMap> result = restTemplate.exchange("http://tofly-getway-hs/auth-hs/oauth/login", HttpMethod.GET, requestEntity, HashMap.class);
+        return ResultRespone.success(result.getBody());
+    }
     @GetMapping("/loginByTgpms")
     @ApiOperation(tags = "登陆接口", value = "tpgms系统登陆")
     @ApiImplicitParams({

+ 26 - 0
sxgk-projet/tofly-auth/src/main/java/com/tofly/auth/oauth/LoginTypeEnum.java

@@ -0,0 +1,26 @@
+package com.tofly.auth.oauth;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@AllArgsConstructor
+public enum LoginTypeEnum {
+    TOKEN_LOGIN_SUF("#TOKENLOGIN"),
+    TOKEN_LOGIN_GIS_SUF("#TOKENGISLOGIN"),
+    NAME_PASSWORD_LOGIN("#NAMEANDPASSWORDLOGIN"),
+    TOKEN_LOGIN_DYG("#TOKENLOGINDYG");
+
+    String suf;
+
+    public  static  Boolean contain(String  suf){
+        for (LoginTypeEnum value : values()) {
+            if(value.suf.equals("#"+suf)){
+                return Boolean.TRUE;
+            }
+        }
+        return  Boolean.FALSE;
+    }
+}

+ 24 - 0
sxgk-projet/tofly-auth/src/main/java/com/tofly/auth/oauth/PhoneNumberUtil.java

@@ -0,0 +1,24 @@
+package com.tofly.auth.oauth;
+ 
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+ 
+public class PhoneNumberUtil {
+ 
+    /**
+     * @param phone 字符串类型的手机号
+     * 传入手机号,判断后返回
+     * true为手机号,false相反
+     * */
+    public static boolean isPhone(String phone) {
+        String regex = "^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}$";
+        if (phone.length() != 11) {
+            return false;
+        } else {
+            Pattern p = Pattern.compile(regex);
+            Matcher m = p.matcher(phone);
+            return m.matches();
+        }
+    }
+ 
+}

+ 155 - 277
sxgk-projet/tofly-auth/src/main/java/com/tofly/auth/oauth/ToFlyUserDetailsService.java

@@ -2,27 +2,26 @@ package com.tofly.auth.oauth;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.tofly.auth.api.APIUser;
 import com.tofly.auth.api.MydeskConnectInfo;
-import com.tofly.auth.api.TgpmsConnectInfo;
-import com.tofly.auth.config.SmsConfig;
+import com.tofly.auth.config.GisBimConfig;
 import com.tofly.auth.feign.BaseUserService;
-import com.tofly.auth.util.SmsUtils;
 import com.tofly.common.core.constant.CommonConstants;
 import com.tofly.common.core.constant.SecurityConstants;
 import com.tofly.common.core.entity.ResultRespone;
+import com.tofly.common.core.util.DateUtil;
 import com.tofly.common.core.util.SpringContextHolder;
 import com.tofly.common.oauth.auth.ToflyUser;
 import com.tofly.common.oauth.exception.ToflyDeniedException;
 import com.tofly.entity.pojo.User;
 import com.tofly.entity.pojo.UserInfo;
-import lombok.RequiredArgsConstructor;
+import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.impl.client.HttpClients;
 import org.springframework.cache.Cache;
 import org.springframework.cache.CacheManager;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
 import org.springframework.http.ResponseEntity;
 import org.springframework.http.client.ClientHttpRequestFactory;
 import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
@@ -40,7 +39,6 @@ import org.springframework.web.client.RestTemplate;
 import java.time.LocalDate;
 import java.time.Period;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * @author Administrator
@@ -49,67 +47,51 @@ import java.util.stream.Collectors;
  */
 @Service
 @Slf4j
-@RequiredArgsConstructor
+@AllArgsConstructor
 public class ToFlyUserDetailsService implements UserDetailsService {
 
-    private final CacheManager cacheManager;
-    private final BaseUserService baseUserService;
-    private final SmsConfig smsConfig;
-    private final String TOKEN_LOGIN_SUF="_TOKENLOGIN";
-    private final String TOKEN_LOGIN_SUF_X="_tokenLogin";
-    private static final String NAME_PASSWORD_LOGIN = "_NAMEANDPASSWORDLOGIN";
-    /**
-     * username 后缀, 区分登录方式, 手机验证码登录
-     */
-    private static final String SMS_LOGIN_SUF = "_SMSLOGIN";
-    /**
-     * 联合登录  验证码+密码
-     */
-    private static final String UNION_LOGIN_SUF = "_UNIONLOGIN";
 
-    private final TgpmsConnectInfo tgpmsConnectInfo;
 
+    private final CacheManager cacheManager;
+    private final BaseUserService baseUserService;
+    private final RedisTemplate redisTemplate;
     private final MydeskConnectInfo mydeskConnectInfo;
 
-/*
-    @Value("${tgpms.api.parsingMyDeskTokenAndLogin}")
-    private String tgpms_login;
-*/
 
     @Override
+    @SneakyThrows
     public UserDetails loadUserByUsername(String username){
-        log.info("到这来验证用户名:"+username);
+        //首先从缓存中获取,当调用时,我们可以将用户信息存储到缓存,或者程序启动时加载到缓存
         Cache cache = cacheManager.getCache("user_details");
-      //  username = username.toUpperCase();
-        if(username.endsWith(TOKEN_LOGIN_SUF)||username.endsWith(TOKEN_LOGIN_SUF_X)){
-            username = username.toUpperCase();
-            log.info("------------------------使用token登录 "+username.substring(0,username.indexOf(TOKEN_LOGIN_SUF)));
-            username= useTokenLogin(username.substring(0,username.indexOf(TOKEN_LOGIN_SUF)));
-        }else if(username.endsWith(SMS_LOGIN_SUF)){
-            log.info("------------------------使用短信验证码登录, phone  = {}", username);
-            final String phone = username;
-            final ResultRespone<UserInfo> resp = baseUserService.getUserInfoByPhone(phone);
-            final UserDetails userDetails = getUserDetails(resp, phone);
-            cache.put(userDetails.getUsername().toUpperCase(), userDetails);
-            return userDetails;
-
-        }else  if(username.endsWith(UNION_LOGIN_SUF)){
-            username= username.substring(0,username.indexOf(UNION_LOGIN_SUF));
-            //为电话号码
-            if(SmsUtils.isPhoneNumber(username)){
-                final String phone = username;
-                final ResultRespone<UserInfo> resp = baseUserService.getUserInfoByPhone(phone);
-                final UserDetails userDetails = getUserDetails(resp, phone);
-                cache.put(userDetails.getUsername().toUpperCase(), userDetails);
-                return userDetails;
-            }
+        //拆分带后缀的用户名
+        String[] userNameSplit = username.split("#");
+        String usernameWithoutSuf = null;
+        String suf = null;
+        String usernameUpper = null;
+        if(userNameSplit.length>0){
 
-        }else if(username.endsWith(NAME_PASSWORD_LOGIN)&&!smsConfig.getOpen()){
-            username= username.substring(0,username.indexOf(NAME_PASSWORD_LOGIN));
-        }else{
-            throw  new ToflyDeniedException("请求非法");
+            suf = userNameSplit[userNameSplit.length-1];
+
+            usernameWithoutSuf = username.replace(suf,"") ;
+        }
+
+        switch (suf){
+            case  "TOKENLOGIN":
+                username = useTokenLogin(usernameWithoutSuf);
+                break;
+            case  "TOKENGISLOGIN":
+                username = userTokenLoginGis(usernameWithoutSuf);
+                break;
+            case    "TOKENLOGINDYG":
+                username = userTokenLoginDYG(usernameWithoutSuf);
+                break;
+            case  "#NAMEANDPASSWORDLOGIN":
+                username = usernameWithoutSuf; break;
+            default: username = userNameSplit[0];
         }
-        username=username.toUpperCase();
+
+        usernameUpper = username.toUpperCase(Locale.ROOT);
+
 
         log.info("------------baseUserService:{},username:{}",baseUserService,username);
         ResultRespone<UserInfo> result = baseUserService.getInfo(username, SecurityConstants.FROM_IN);
@@ -133,13 +115,15 @@ public class ToFlyUserDetailsService implements UserDetailsService {
             }
         }
 
-        if (cache != null && cache.get(username) != null && cache.get(username).get()!=null) {
-            return (ToflyUser) cache.get(username).get();
+        if(!PhoneNumberUtil.isPhone(usernameUpper)){
+            if (cache != null && cache.get(usernameUpper) != null && cache.get(usernameUpper).get()!=null) {
+                return (ToflyUser) cache.get(usernameUpper).get();
+            }
         }
-
         UserDetails userDetails=getUserDetails(userInfo,username);
         //放入缓存
-        cache.put(username,userDetails);
+        //不区分账号大小写
+        cache.put(userDetails.getUsername().toUpperCase(Locale.ROOT),userDetails);
         return userDetails;
     }
 
@@ -191,41 +175,104 @@ public class ToFlyUserDetailsService implements UserDetailsService {
                 true,true,authorities);
     }
 
-    private UserDetails getUserDetails(ResultRespone<UserInfo> result,String username) {
-        if (result == null || result.getResult() == null) {
-            throw new UsernameNotFoundException(result.getMessage());
+
+    class UserCheckAuthenticationException extends AuthenticationException {
+
+        public UserCheckAuthenticationException(String msg, Throwable t) {
+            super(msg, t);
         }
 
-        UserInfo userInfo=result.getResult();
-        User user=userInfo.getSysUser();
-        if(CommonConstants.USER_STUTAS_FAIL.equals(user.getStatusFlag())){
-            throw new UserCheckAuthenticationException("用户已处于禁用状态,不能登录");
+        public UserCheckAuthenticationException(String msg) {
+            super(msg);
         }
+    }
 
-        if(CommonConstants.USER_LOCK_LOCKED.equals(user.getLockFlag())){
-            throw new UserCheckAuthenticationException("用户已处于锁定状态,不能登录");
+
+    private String userTokenLoginGis(String token){
+
+        MultiValueMap<String, String> requestHeader = new LinkedMultiValueMap<>();
+        token = token.toLowerCase(Locale.ROOT);
+        token =  token.replace("#","");
+        if(token.indexOf("bearer")==-1){
+            token = "bearer "+token;
         }
+        requestHeader.add("Authorization", token);
+        requestHeader.add("systemid","tgbcepcbim");
+        requestHeader.add(SecurityConstants.FROM,SecurityConstants.FROM_IN);
+        Map<String, String> urlVariables = new HashMap<>();
+        urlVariables.put("systemid", "tgbcepcbim");
+        //HttpEntity
+        HttpEntity<MultiValueMap> requestEntity = new HttpEntity<MultiValueMap>(requestHeader);
 
-        Set<String> dbauthSet=new HashSet<>();
-        Long[] roles=userInfo.getRoles();
-        if(roles!=null && roles.length>0){
-            //添加角色
-            Arrays.stream(roles).forEach(role->dbauthSet.add(SecurityConstants.ROLE+role));
-            //添加权限
-            dbauthSet.addAll(Arrays.asList(userInfo.getPermissions()));
-        }else{
-            //如果没有角色,也需要加一个默认角色用户名保证后续不会出错
-            dbauthSet.add(userInfo.getSysUser().getUsername());
+        ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(HttpClients.createDefault());
+        RestTemplate restTemplate = new RestTemplate(requestFactory);
+        //post
+        String username =null;
+        //"http://192.168.2.235:7007/base/user/getUserInfo"
+        try {
+            final ResponseEntity<Map> mapResponseEntity =
+                    restTemplate.postForEntity(gisBimConfig.getTokenLoginUrl(), requestEntity, Map.class,urlVariables);
+            final Map body = mapResponseEntity.getBody();
+            log.info(JSON.toJSONString(body));
+            Map ma  = (Map)body.get("result");
+            if(ma!=null){
+                final String username1 = (String)ma.get("username");
+                return username1;
+            }else{
+                log.error("跳转gis失败"+JSON.toJSONString(ma));
+                throw new UsernameNotFoundException("跳转失败");
+            }
+
+        }catch (Exception  e){
+            e.printStackTrace();
+            log.error("账号或密码出现异常,请联系管理员",e);
+            throw new UsernameNotFoundException("账号或密码出现异常,请联系管理员");
         }
+    }
 
+    /**
+     * 多异构校验
+     * @param token
+     * @return
+     */
+    private String userTokenLoginDYG(String token){
 
-        Collection<? extends GrantedAuthority> authorities
-                = AuthorityUtils.createAuthorityList(dbauthSet.toArray(new String[0]));
-        return new ToflyUser(user.getPwderrtimes(),user.getId(),user.getDepartmentId(),user.getUserLevel(),
-                user.getRealName(),user.getDepartmentName(),user.getAvatar(),
-                user.getUsername(),/*SecurityConstants.BCRYPT+*/user.getPassword(),
-                CommonConstants.STATUS_NORMAL.equals(user.getLockFlag()),true,
-                true,true,authorities);
+        MultiValueMap<String, String> requestHeader = new LinkedMultiValueMap<>();
+        token = token.toLowerCase(Locale.ROOT);
+        token =  token.replace("#","");
+
+//        requestHeader.add("Authorization", token);
+//        requestHeader.add(SecurityConstants.FROM,SecurityConstants.FROM_IN);
+        String url="https://tgdcepc.ctg.com.cn:8443/bimp/prod-api/auth/oauth/check_token";
+        //HttpEntity
+        // HttpEntity<MultiValueMap> requestEntity = new HttpEntity<MultiValueMap>(requestHeader);
+        ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(HttpClients.createDefault());
+        RestTemplate restTemplate = new RestTemplate(requestFactory);
+        //post
+        String username =null;
+        //"http://192.168.2.235:7007/base/user/getUserInfo"
+        try {
+            log.info("token"+token);
+            final ResponseEntity<Map> mapResponseEntity =
+                    restTemplate.getForEntity(url+"?token="+token, Map.class);
+            final Map body = mapResponseEntity.getBody();
+
+            log.info("多异构获取到的body"+JSON.toJSONString(body));
+            log.info(JSON.toJSONString(body));
+
+            if(body!=null){
+                String dygUser = (String)body.get("user_name");
+                return dygUser;
+            }else{
+                log.error("多异构验证失败"+JSON.toJSONString(body));
+                throw new UsernameNotFoundException("多异构验证失败");
+            }
+
+        }catch (Exception  e){
+            e.printStackTrace();
+            log.error("账号或密码出现异常,请联系管理员",e);
+            throw new UsernameNotFoundException("账号或密码出现异常,请联系管理员");
+        }
     }
 
 
@@ -233,50 +280,60 @@ public class ToFlyUserDetailsService implements UserDetailsService {
 
         MultiValueMap<String, String> requestBody = new LinkedMultiValueMap<>();
         token = token.toLowerCase(Locale.ROOT);
+        token =  token.replace("#","");
         requestBody.add("token", token);
+
         //HttpEntity
         HttpEntity<MultiValueMap> requestEntity = new HttpEntity<MultiValueMap>(requestBody);
         ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(HttpClients.createDefault());
         RestTemplate restTemplate = new RestTemplate(requestFactory);
+
+
+        Map<String, String> urlVariables = new HashMap<>();
+        urlVariables.put("systemid", "tgbcepcbim");
+
         //post
         ResponseEntity<String> responseEntity=null;
         try {
-            responseEntity = restTemplate.postForEntity(mydeskConnectInfo.getGetUserInfoByToken()+"?token="+token,requestEntity, String.class);
+            responseEntity = restTemplate.postForEntity(mydeskConnectInfo.getGetUserInfoByToken()+"?token="+token+"&systemid="+"tgbcepcbim",requestEntity, String.class);
         }catch (Exception  e){
             e.printStackTrace();
-            log.error("账号或密码出现异常,请联系管理员",e);
+            log.error("token useTokenLogin 账号或密码出现异常,请联系管理员",e);
             throw new UsernameNotFoundException("账号或密码出现异常,请联系管理员");
         }
         String body1 = responseEntity.getBody();
         if("not_login".equals(body1)){
-            log.error("token已失效,请联系管理员");
+            log.error("token已失效,请联系管理员",body1);
             throw new UsernameNotFoundException("token已失效,请联系管理员");
         }
         JSONObject jsonObject = JSON.parseObject(body1);
         String primaryAccountStr = (String) jsonObject.get("primaryAccount");
         //  HashMap body = (HashMap) body1
         log.info("返回的数据:{}",body1);
-     //   Map o = (Map)body.get("data");
-      //  getUserInfo((String)o.get("usercode"),(String)o.get("token"),(String)o.get("dataowner"));
+        //   Map o = (Map)body.get("data");
+        //  getUserInfo((String)o.get("usercode"),(String)o.get("token"),(String)o.get("dataowner"));
         //通过手机号查找用户
-       // getUserInfo((String)o.get("usercode"),(String)o.get("token"),(String)o.get("dataowner"));
+        // getUserInfo((String)o.get("usercode"),(String)o.get("token"),(String)o.get("dataowner"));
 
         ResultRespone<UserInfo> userResponse = baseUserService.getTgpUserInfoByPhone(primaryAccountStr);
-     //   ResultRespone<UserInfo> primaryAccount = baseUserService.getTgpUserInfoByPhone((String) o.get("primaryAccount"));
-     //   User sysUser = primaryAccount.getResult().getSysUser();
-       // return (String)o.get("usercode");
-       // return sysUser.getUsername();
-        String username;
+        //   ResultRespone<UserInfo> primaryAccount = baseUserService.getTgpUserInfoByPhone((String) o.get("primaryAccount"));
+        //   User sysUser = primaryAccount.getResult().getSysUser();
+        // return (String)o.get("usercode");
+        // return sysUser.getUsername();
+        String username=null;
         try {
             username = userResponse.getResult().getSysUser().getUsername();
         }catch (NullPointerException e){
+            log.error("未找到对应用户,请联系管理员"+JSON.toJSONString(userResponse),e);
             throw new UsernameNotFoundException("未找到对应用户,请联系管理员");
         }
         User sysUser = userResponse.getResult().getSysUser();
         if(CommonConstants.STATUS_NORMAL .equals(sysUser.getLockFlag())){
-              throw  new ToflyDeniedException("账号已被锁定,请联系管理员");
+            log.error("账号已被锁定,请联系管理员",userResponse);
+            throw  new ToflyDeniedException("账号已被锁定,请联系管理员");
         }
         if( CommonConstants.STATUS_NORMAL.equals(sysUser.getStatusFlag())){
+            log.error("未找到对应用户,请联系管理员"+username,userResponse);
             throw  new ToflyDeniedException("账号未启用,请联系管理员");
         }
 
@@ -285,183 +342,4 @@ public class ToFlyUserDetailsService implements UserDetailsService {
         return username;
     }
 
-    private String useTgpmsLogin(String userinfo){
-        String[] s = userinfo.split("@");
-        MultiValueMap<String, String> requestBody = new LinkedMultiValueMap<>();
-//        requestBody.add("username",username);
-//        requestBody.add("password",password);
-
-        HttpEntity<MultiValueMap> requestEntity = new HttpEntity<MultiValueMap>(requestBody);
-        ResponseEntity<HashMap> result=null;
-
-        //HttpEntity
-        RestTemplate restTemplate = new RestTemplate();
-        try {
-            result = restTemplate.postForEntity(tgpmsConnectInfo.getLogin()+"?username="+s[0]+"&password="+s[1], requestEntity, HashMap.class);
-        }catch (Exception e){
-            log.info("错误:{}",e.getMessage());
-        }
-        HashMap body = result.getBody();
-        log.info("body:{}",body);
-        if(body==null){
-            return null;
-        }
-        Map o = (Map)body.get("data");
-        if(o==null){
-            throw new UsernameNotFoundException("账号或密码出现异常,请联系管理员");
-        }
-        getUserInfo(s[0],(String)o.get("token"),(String)o.get("dataowner"));
-
-        return s[0];
-    }
-
-//    private UserDetails useTokenLogin(String token){
-//
-//        MultiValueMap<String, String> requestBody = new LinkedMultiValueMap<>();
-//        requestBody.add("token", token);
-//        //HttpEntity
-//        HttpEntity<MultiValueMap> requestEntity = new HttpEntity<MultiValueMap>(requestBody);
-//        RestTemplate restTemplate = new RestTemplate();
-//        //post
-//        ResponseEntity<HashMap> responseEntity=null;
-//        try {
-//            responseEntity = restTemplate.postForEntity(tgpmsConnectInfo.getParsingMyDeskTokenAndLogin()+"?token="+token,requestEntity, HashMap.class);
-//        }catch (Exception  e){
-//            throw new UsernameNotFoundException("使用"+token+"登陆统一平台报错:"+e.getMessage());
-//        }
-//
-//        HashMap body = responseEntity.getBody();
-//        log.info("返回的数据:{}",body);
-//        Map o = (Map)body.get("data");
-//        if(o==null){
-//            throw new UsernameNotFoundException("使用"+token+"未获取到数据");
-//        }
-//        User user=getUserInfo((String)o.get("usercode"),(String)o.get("token"),(String)o.get("dataowner"));
-//        if(user==null){
-//            throw new UsernameNotFoundException("使用"+token+"未获取人员基本信息");
-//        }
-//
-//        Set<String> dbauthSet=new HashSet<>();
-//        Collection<? extends GrantedAuthority> authorities
-//                = AuthorityUtils.createAuthorityList(dbauthSet.toArray(new String[0]));
-//        ToflyUser toflyUser1=new ToflyUser(user.getId(),user.getDepartmentId(),user.getUserLevel(),
-//                user.getRealName(),user.getDepartmentName(),"",
-//                user.getUsername(),user.getPassword(),
-//                true,true,
-//                true,true,authorities);
-//        Cache cache = cacheManager.getCache("user_details");
-//        cache.put(user.getUsername(),toflyUser1);
-//        return toflyUser1;
-//    }
-
-    private User getUserInfo(String username,String token,String dataowner){
-
-        APIUser apiUser=new APIUser();
-        apiUser.setUsername(username);
-        apiUser.setAuList(getAulist(token,tgpmsConnectInfo.getProgCodeFind(),username,dataowner));
-        ResultRespone<User> andSaveUser = baseUserService.getAndSaveUser(apiUser,SecurityConstants.FROM_IN);
-
-        return andSaveUser.getResult();
-    }
-
-
-    private List<String> getAulist(String token,String url,String username,String dataowner){
-        Map<String,String> map1=new HashMap();
-        map1.put("dataowner",dataowner);
-        map1.put("progCode","DM006");
-        map1.put("pageNo","1");
-        map1.put("pageSize","1000");
-        map1.put("data","{\"USER_NAME=\":\""+username+"\"}");
-
-        HttpHeaders requestHeaders = new HttpHeaders();
-        requestHeaders.set("Authorization",token);
-        requestHeaders.set("Content-Type","application/json");
-        HttpEntity<Map> requestEntity = new HttpEntity<Map>(map1,requestHeaders);
-        ResponseEntity<HashMap> result=null;
-
-        //HttpEntity
-        RestTemplate restTemplate = new RestTemplate();
-        try {
-            result = restTemplate.postForEntity(url,
-                    requestEntity, HashMap.class);
-        }catch (Exception e){
-            throw new UsernameNotFoundException("账号或密码出现异常,请联系管理员");
-        }
-        HashMap body = result.getBody();
-        log.info("body:{}",body);
-        if(body==null){
-            throw new UsernameNotFoundException("账号或密码出现异常,请联系管理员");
-        }
-        List<Map> data = (List)body.get("data");
-        List<String> collect = data.stream().filter(m -> ((String) m.get("SECURITY_CODE")).startsWith("TF_"))
-                .map(m->(String) m.get("SECURITY_CODE"))
-                .collect(Collectors.toList());
-
-        return collect;
-    }
-
-
-    private Map getUserJson(String username,String token,String dataowner){
-        HttpHeaders requestHeaders = new HttpHeaders();
-        requestHeaders.set("Authorization",token);
-
-        HttpEntity<MultiValueMap> requestEntity = new HttpEntity<MultiValueMap>(requestHeaders);
-        ResponseEntity<HashMap> result=null;
-
-        //HttpEntity
-        RestTemplate restTemplate = new RestTemplate();
-        try {
-            result = restTemplate.postForEntity(tgpmsConnectInfo.getSelPersonList()+"?entityItem="+username+"&dataowner="+dataowner+"&pageNo=1&pageSize=100",
-                    requestEntity, HashMap.class);
-        }catch (Exception e){
-            log.info("错误:{}",e.getMessage());
-        }
-        HashMap body = result.getBody();
-        log.info("body:{}",body);
-        if(body==null){
-            return null;
-        }
-        Map data = (Map)body.get("data");
-        return (Map)((List)data.get("rows")).get(0);
-    }
-
-    private Map getInfo(String username,String token,String dataowner,String url){
-        HttpHeaders requestHeaders = new HttpHeaders();
-        requestHeaders.set("Authorization",token);
-
-        HttpEntity<MultiValueMap> requestEntity = new HttpEntity<MultiValueMap>(requestHeaders);
-        ResponseEntity<HashMap> result=null;
-
-        //HttpEntity
-        RestTemplate restTemplate = new RestTemplate();
-        try {
-            result = restTemplate.postForEntity(url+"?entityItem="+username+"&dataowner="+dataowner+"&pageNo=1&pageSize=100",
-                    requestEntity, HashMap.class);
-        }catch (Exception e){
-            log.info("错误:{}",e.getMessage());
-        }
-        HashMap body = result.getBody();
-        log.info("body:{}",body);
-        if(body==null){
-            return null;
-        }
-        Map data = (Map)body.get("data");
-        return data;
-    }
-
-
-
-
-    class UserCheckAuthenticationException extends AuthenticationException {
-
-        public UserCheckAuthenticationException(String msg, Throwable t) {
-            super(msg, t);
-        }
-
-        public UserCheckAuthenticationException(String msg) {
-            super(msg);
-        }
-    }
-
-
 }

+ 1 - 1
sxgk-projet/tofly-auth/src/main/java/com/tofly/auth/oauth/ToflyAuthenticationProvider.java

@@ -246,7 +246,7 @@ public class ToflyAuthenticationProvider implements AuthenticationProvider {
         cache.put(username,null);
         String message=pwdt<5?"密码错误。当前密码错误次数是:"+pwdt+",密码错误5次账户将会被锁定":
                 "账户已经被锁定,请联系管理人员,或者等待1小时后自动解锁";
-        throw new MyAuthenticationException(message);
+        throw new MyAuthenticationException("账号或者密码错误");
          //验证失败返回 null
         //return null;
 

+ 0 - 1
sxgk-projet/tofly-getway/src/main/java/com/tofly/toflygetway/filter/LoginParamFilter.java

@@ -96,7 +96,6 @@ public class LoginParamFilter extends AbstractGatewayFilterFactory {
             } else {
                 if (StringUtil.containsAnyIgnoreCase(request.getURI().getPath(), SecurityConstants.OAUTH_LOGIN_URL)) {
 
-
                     checkCode(request);
                 }
             }

+ 2 - 2
sxgk-projet/tofly-test1/pom.xml

@@ -3,9 +3,9 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>sxgkproject</artifactId>
         <groupId>com.tofly</groupId>
-      <version>1.0-SNAPSHOT</version>
+        <artifactId>tofly-webParent</artifactId>
+        <version>1.0.0</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>tofly-test1</artifactId>