Explorar o código

修改费用报销导入 工时导入

yurk %!s(int64=2) %!d(string=hai) anos
pai
achega
fac711e07c

+ 88 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/AuthRedirectController.java

@@ -65,13 +65,99 @@ public class AuthRedirectController {
 
 
     @RequestMapping("/corpWXAuth")
-    public ModelAndView auth(String code, String state) throws Exception{
+    public ModelAndView auth(String code, String state) {
         Map<String,Object> reqParam = new HashMap<String,Object>(16);
         String userAgent = request.getHeader("User-Agent");
         //获取设备类型
         String deviceType = UserAgentUtils.getDeviceType(userAgent);
-        WxCorpInfo corpInfo = wxCorpInfoMapper.selectById(corpId);
         boolean isMobile = "MOBILE".equals(deviceType);
+        String url = WeiXinCorpController.GET_CORP_USERINFO_URL.replace("SUITE_ACCESS_TOKEN", getSuiteAccessToken()).replace("CODE", code);
+        String forObject = this.restTemplate.getForObject(url, String.class);
+        JSONObject obj = JSONObject.parseObject(forObject);
+        String wxUserId = obj.getString("UserId");
+        String openUserId = obj.getString("open_userid");
+        String corpId = obj.getString("CorpId");
+
+        System.out.println("wxUserId="+wxUserId+", openUserId="+openUserId);
+        List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("corpwx_userid", openUserId));
+        Integer companyId = 0;
+        if (userList.size() > 0) {
+            //该用户已存在
+            User curUser = userList.get(0);
+            companyId = curUser.getCompanyId();
+            if (curUser.getIsActive() == 1) {
+                reqParam.put("userId", curUser.getId());
+            } else {
+                //提示账号已停用
+                //reqParam.put("errorMsg", "您的账号已停用,无法登录");
+                reqParam.put("errorMsg", MessageUtils.message("user.inactive"));
+            }
+        } else {
+            //使用UserId比对,之前有的老用户存的是UserId
+            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectById(corpId);
+            if (wxCorpInfo == null) {
+                reqParam.put("errorMsg", MessageUtils.message("user.accountNoExist"));
+            } else {
+                User curUser = userMapper.selectOne(new QueryWrapper<User>().eq("company_id", wxCorpInfo.getCompanyId()).eq("corpwx_userid", wxUserId));
+                if (curUser == null) {
+//                    reqParam.put("errorMsg", MessageUtils.message("user.accountNoExist"));
+                    //用户不存在,去生成该用户
+                    if (wxCorpInfo.getSaasSyncContact() == 1) {
+                        curUser = wxCorpInfoService.generateUserInfo(wxCorpInfo.getCompanyId(), openUserId);
+                    }
+                }
+                if (curUser != null) {
+                    if (curUser.getIsActive() == 1) {
+                        companyId = curUser.getCompanyId();
+                        reqParam.put("userId", curUser.getId());
+                    } else {
+                        //提示账号已停用
+                        //reqParam.put("errorMsg", "您的账号已停用,无法登录");
+                        reqParam.put("errorMsg", MessageUtils.message("user.inactive"));
+                    }
+                } else {
+                    System.err.println("==生成企业微信User失败==");
+                    reqParam.put("errorMsg", MessageUtils.message("user.accountNoExist"));
+                }
+
+            }
+        }
+        reqParam.put("hasTriedAutoLogin", 1);
+        if (!StringUtils.isEmpty(state) && state.length() > 1) {
+            reqParam.put("path", state);
+        }
+
+        String redirecUrl = null;
+        String router = "index";
+        if (companyId > 0) {
+            HashMap compExpireInfo = getCompExpireInfo(companyId);
+            if (compExpireInfo != null) {
+                //过期了
+                router = "expire";
+                reqParam.put("expDate", compExpireInfo.get("expDate"));
+                reqParam.put("version", compExpireInfo.get("version"));
+            }
+        }
+        if (isMobile) {
+            redirecUrl = "http://mobworktime.ttkuaiban.com/#/" + router;
+        } else {
+            redirecUrl = "http://worktime.ttkuaiban.com/#/" + router;
+        }
+        ModelAndView modelAndView = new ModelAndView(
+                new RedirectView(redirecUrl), reqParam);
+
+        return modelAndView;
+    }
+
+
+    @RequestMapping("/corpInsideWXAuth")
+    public ModelAndView authInside(String code, String state) throws Exception{
+        Map<String,Object> reqParam = new HashMap<String,Object>(16);
+        String userAgent = request.getHeader("User-Agent");
+        //获取设备类型
+        String deviceType = UserAgentUtils.getDeviceType(userAgent);
+        boolean isMobile = "MOBILE".equals(deviceType);
+        WxCorpInfo corpInfo = wxCorpInfoMapper.selectById(corpId);
         String url = WeiXinCorpController.GET_CORP_INSIDE_USERINFO_URL.replace("ACCESS_TOKEN",getCorpConcactAccessToken(corpInfo)).replace("CODE", code);
         String forObject = this.restTemplate.getForObject(url, String.class);
         JSONObject obj = JSONObject.parseObject(forObject);

+ 8 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/application-bkserver.yml

@@ -102,4 +102,11 @@ management:
       enabled: false
 
 configEnv:
-  isDev: true
+  isDev: true
+
+privateDeployURL:
+  pcUrl: http://dev.huoshishanxin.com/#/
+  mobUrl: http://dev.huoshishanxin.com/#/
+
+#平台作为服务商的参数
+corpId: ww0b9aafe69e506b8b

+ 1 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml

@@ -137,7 +137,7 @@ excludeUrls: /wxcorp/*,/wxcorp/*/*,/dingding/*,/error,/testClient,/corpWXAuth,/w
 suitId: ww4e237fd6abb635af
 suitSecret: 1ApL6LIB4Z0v7wBrKTUNmJrerRWV3gEQWBlYOm8Kijw
 #平台作为服务商的参数
-corpId: ww0b9aafe69e506b8b
+corpId: wwf11426cf618e1703
 token: Mhi7ehNX61UN4MB7PHnC
 encodingAesKey: PHVMkME1XMrImmGJZ4OZJxSysI7hFEhtDDUQrlHAfIS
 providerSecret: wlwGIUXskWKsNtCfKUsAfJ6ueba55rZnqZvcC-rUM6nQ-LnRDyYgISQ2BO-UlL_A
@@ -147,9 +147,6 @@ configEnv:
   # 是否是私有化部署,企业内部应用
   isPrivateDeploy: false
 
-privateDeployURL:
-  pcUrl: http://dev.huoshishanxin.com/#/
-  mobUrl: http://dev.huoshishanxin.com/#/