From acf90ad8e6bea592124541324467360cef565ff5 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 06 二月 2026 14:14:55 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbom_dianjiang

---
 server/web/src/main/java/com/doumee/api/web/LoginController.java |  132 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 103 insertions(+), 29 deletions(-)

diff --git a/server/web/src/main/java/com/doumee/api/web/LoginController.java b/server/web/src/main/java/com/doumee/api/web/LoginController.java
index 80b7ca5..24b1204 100644
--- a/server/web/src/main/java/com/doumee/api/web/LoginController.java
+++ b/server/web/src/main/java/com/doumee/api/web/LoginController.java
@@ -1,6 +1,8 @@
 package com.doumee.api.web;
 
+import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.dingtalk.api.response.OapiV2UserGetuserinfoResponse;
 import com.doumee.api.BaseController;
@@ -11,13 +13,18 @@
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.annotation.trace.Trace;
 import com.doumee.core.constants.Constants;
+import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.dingTalk.DingTalk;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.AESUtils;
 import com.doumee.core.utils.HttpsUtil;
+import com.doumee.core.utils.ZbomAESUtils;
 import com.doumee.dao.business.dto.LoginRequestNewParam;
+import com.doumee.dao.business.dto.RoleRequestParam;
 import com.doumee.dao.business.model.Category;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.system.dto.DingLoginDTO;
@@ -25,7 +32,6 @@
 import com.doumee.dao.vo.WebLoginUserVO;
 import com.doumee.service.business.CategoryService;
 import com.doumee.service.business.MemberService;
-import com.sun.deploy.net.HttpUtils;
 import com.taobao.api.ApiException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -81,50 +87,114 @@
     @GetMapping("/ukLogin")
     public void ukLogin(String tick, Object obj, HttpServletRequest request, HttpServletResponse response) throws Exception  {
         LoginRequestNewParam requestParam = new LoginRequestNewParam();
-        // UK_ERROR_URL = "http://u.zhibang.com/sso/web/token/error";
         String errorUrl =systemDictDataBiz.queryByCode(Constants.ZBOM_PARAM,Constants.ZBOM_UK_ERROR_URL).getCode();
-       /* try {
+        String token = "";
+        try {
             log.error("璇锋眰鍙傛暟TICK鏈�鍘熷===========锛�" + tick);
             JSONObject urlParams = new JSONObject();
             log.info("璇锋眰鍙傛暟锛�" + JSON.toJSONString(urlParams));
-            //TICKET_LOGIN_TEST = "http://testsso.zhibang.com:8080/esc-idm/api/v1/getUserInfo";
-            //TICKET_LOGIN = "https://sso.zbom.com/esc-idm/api/v1/getUserInfo";
             String url  = systemDictDataBiz.queryByCode(Constants.ZBOM_PARAM,Constants.ZBOM_TICKET_LOGIN_URL).getCode() + "?tick=" +  URLEncoder.encode(tick,Constants.UTF);
-            String post =  HttpsUtil.get(url,true);
+            String post =  HttpUtil.get(url);
             log.info("杩斿洖鍙傛暟锛�" + post);
             JSONObject json = JSONObject.parseObject(post);
-            if (StringUtils.equals(json.getString("code"), "0")) {
-                JSONObject userInfo = json.getJSONObject("data");
-                requestParam = JSONObject.toJavaObject(userInfo, LoginRequestNewParam.class);
+            if (StringUtils.equals(json.getString("code"), "1")) {
+                String dataE = json.getString("data");
+                //鍙嶈В鏋恡oken
+                String data =  ZbomAESUtils.decrypt( "zbom20180922!@#$",dataE);
+                JSONObject userInfo = JSONObject.parseObject(data);
+                log.error("U瀹㈢櫥褰曡繑鍥炲弬鏁帮細" + userInfo.toString());
+                WebLoginUserVO loginUserVO = new WebLoginUserVO();
+                if(StringUtils.isBlank(userInfo.getString("buserPhone"))){
+                    log.error("妗堜緥搴撶郴缁熷崟鐐圭櫥褰曞け璐� 閿欒鍘熷洜鑾峰彇tick澶辫触锛氭湭杩斿洖鐢ㄦ埛鍞竴淇℃伅");
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"妗堜緥搴撶郴缁熷崟鐐圭櫥褰曞け璐� 閿欒鍘熷洜鑾峰彇tick澶辫触锛氭湭杩斿洖鐢ㄦ埛鍞竴淇℃伅");
+                }
+                loginUserVO.setId(userInfo.getString("buserPhone"));
+                if(StringUtils.isBlank(userInfo.getString("distrcode"))){
+                    loginUserVO.setShowFee(Constants.ZERO);
+                }else{
+                    if(userInfo.getString("distrcode").isEmpty()){
+                        loginUserVO.setShowFee(Constants.ONE);
+                    }else{
+                        if(StringUtils.isBlank(userInfo.getString("ukRoles"))){
+                            loginUserVO.setShowFee(Constants.ZERO);
+                        }else{
+                            JSONArray jsonArray = userInfo.getJSONArray("ukRoles");
+                            this.setLoginShowFee(loginUserVO,jsonArray);
+                        }
+                    }
+                }
+                if(StringUtils.isNotBlank(userInfo.getString("userMarkets"))){
+                    if(!userInfo.getString("userMarkets").isEmpty()){
+                        JSONArray jsonArray = userInfo.getJSONArray("userMarkets");
+                        this.setLoginZhanqu(loginUserVO,jsonArray);
+                    }
+                }
+                log.error("web鐢ㄦ埛淇℃伅"+JSONObject.toJSONString(loginUserVO));
+                token = jwtTokenUtil.generateToken(loginUserVO);
             } else {
                 log.error("妗堜緥搴撶郴缁熷崟鐐圭櫥褰曞け璐� 閿欒鍘熷洜鑾峰彇tick澶辫触" + json.getString("message"));
-                response.sendRedirect(errorUrl + "?title=" + enCode("鐧婚檰閿欒") + "&msg="+ enCode(json.getString("message")));
+                response.sendRedirect(errorUrl + this.getPadStr(errorUrl) + "title=" + enCode("鐧婚檰閿欒") + "&msg="+ enCode(json.getString("message")));
                 return;
             }
         } catch (Exception e) {
             log.error("ticket鎺ュ彛璇锋眰閿欒锛�" + e.getMessage());
-            response.sendRedirect(errorUrl + "?title=" + enCode("鐧婚檰閿欒") + "&msg=" + enCode("绯荤粺绻佸繖锛岃绋嶅悗閲嶈瘯~"));
+            response.sendRedirect(errorUrl + this.getPadStr(errorUrl) +"title=" + enCode("鐧婚檰閿欒") + "&msg=" + enCode("绯荤粺绻佸繖锛岃绋嶅悗閲嶈瘯~"));
             return;
-        }*/
-        requestParam.setRediUrl("http://localhost:10087/#/login");
-        WebLoginUserVO loginUserVO = new WebLoginUserVO();
-        loginUserVO.setId("123");
-        loginUserVO.setRoleType("admin");
-        loginUserVO.setZhanqu("1");
-        String token = jwtTokenUtil.generateToken(loginUserVO);
-        response.sendRedirect(requestParam.getRediUrl()+"?token="+token);
+        }
+        requestParam.setRediUrl(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.UK_JUMP_URL).getCode());
+        log.error("璺宠浆鍦板潃璺宠浆淇℃伅锛�" + requestParam.getRediUrl()+this.getPadStr(requestParam.getRediUrl())+"token="+token);
+        response.sendRedirect(requestParam.getRediUrl()+this.getPadStr(requestParam.getRediUrl())+"token="+token);
+    }
+
+    public String getPadStr(String url) {
+        return url.indexOf("?")>=Constants.ZERO?"&":"?";
+    }
+
+    public void setLoginShowFee(WebLoginUserVO loginUserVO,JSONArray jsonArray){
+        String roleConfig = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.ROLE_CONFIG).getCode();
+        loginUserVO.setShowFee(Constants.ZERO);
+        if(StringUtils.isBlank(roleConfig)){
+            return;
+        }
+        if(jsonArray.isEmpty()){
+            return;
+        }
+        String [] configRole = roleConfig.split(",");
+        for (int i = 0; i < jsonArray.size(); i++) {
+            JSONObject  j = jsonArray.getJSONObject(i);
+            for (String s:configRole) {
+                if(s.equals(j.getString("frontroleid"))){
+                    loginUserVO.setShowFee(Constants.ONE);
+                    return;
+                }
+            }
+        }
+    }
+
+
+    public void setLoginZhanqu(WebLoginUserVO loginUserVO,JSONArray jsonArray){
+        String zhanquCode = "";
+        for (int i = 0; i < jsonArray.size(); i++) {
+            JSONObject j  = jsonArray.getJSONObject(i);
+            zhanquCode = zhanquCode + (StringUtils.isNotBlank(zhanquCode)?",":"") + j.getString("segment1");
+        }
+        loginUserVO.setZhanqu(zhanquCode);
     }
 
     @ApiOperation("閽夐拤鐧诲綍")
     @PostMapping("/ddLogin")
-    public ApiResponse<WebLoginUserVO> ddLogin(@Validated @RequestBody DingLoginDTO dingLoginDTO)  throws ApiException {
+    public ApiResponse<WebLoginUserVO> ddLogin(@RequestBody DingLoginDTO dingLoginDTO)  throws ApiException {
         WebLoginUserVO loginUserVO = new WebLoginUserVO();
+        log.error("閽夐拤鎺堟潈鐧诲綍鍏ュ弬锛�"+JSONObject.toJSONString(dingLoginDTO));
+        System.out.println("閽夐拤鎺堟潈鐧诲綍鍏ュ弬锛�"+JSONObject.toJSONString(dingLoginDTO));
         OapiV2UserGetuserinfoResponse.UserGetByCodeResponse response = dingTalk.getDDUserByCode(dingLoginDTO);
+        log.error("閽夐拤鎺堟潈鐧诲綍杩斿弬锛�"+JSONObject.toJSONString(response));
         if(Objects.nonNull(response)){
             loginUserVO.setId(response.getUserid());
-            loginUserVO.setRoleType(Constants.DD_USER_TYPE);
+            loginUserVO.setShowFee(Constants.ONE);
         }
         loginUserVO.setToken(jwtTokenUtil.generateToken(loginUserVO));
+        log.error("閽夐拤鎺堟潈鐧诲綍鑾峰彇token淇℃伅杩斿弬锛�"+JSONObject.toJSONString(loginUserVO));
         return ApiResponse.success(loginUserVO);
     }
 
@@ -149,21 +219,21 @@
     })
     public ApiResponse<PageData<Member>> memberPage(@RequestBody PageWrap<Member> pageWrap) {
         WebLoginUserVO loginUserVO = this.getMemberResponse();
-        pageWrap.getModel().setQueryUserRole(loginUserVO.getRoleType());
+        log.error("鍒嗛〉鏌ヨ鐢ㄦ埛淇℃伅"+JSONObject.toJSONString(loginUserVO));
         pageWrap.getModel().setQueryZQCode(loginUserVO.getZhanqu());
         PageData<Member> pageData = memberService.findPage(pageWrap);
         if(CollectionUtils.isNotEmpty(pageData.getRecords())){
-            String roleConfig = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.ROLE_CONFIG).getCode();
-            if(StringUtils.isBlank(roleConfig)||StringUtils.isBlank(pageWrap.getModel().getQueryUserRole())
-                    || ! (roleConfig.contains(pageWrap.getModel().getQueryUserRole()) || pageWrap.getModel().getQueryUserRole().equals(Constants.DD_USER_TYPE) )){
+            log.error("鍒嗛〉鏁版嵁淇℃伅"+JSONObject.toJSONString(pageData.getRecords()));
+            if(Constants.equalsInteger(Constants.ZERO,loginUserVO.getShowFee())){
+                log.error("鍒嗛〉鏁版嵁淇℃伅娓呯┖閲戦");
                 pageData.getRecords().forEach(i->{
                     i.setFee(null);
                 });
             }
+            log.error("鍒嗛〉鏁版嵁淇℃伅娓呯┖鍚庢暟鎹�"+JSONObject.toJSONString(pageData.getRecords()));
         }
         return ApiResponse.success(pageData);
     }
-
 
 
     @LoginRequired
@@ -174,7 +244,11 @@
     })
     public ApiResponse<Member> memberPage(@RequestParam Integer id) {
         WebLoginUserVO loginUserVO = this.getMemberResponse();
-        return ApiResponse.success(memberService.findDetailById(id,loginUserVO.getRoleType()));
+        Member member = memberService.findDetailById(id);
+        if(Objects.nonNull(member)&&Constants.equalsInteger(Constants.ZERO,loginUserVO.getShowFee())){
+            member.setFee(null);
+        }
+        return ApiResponse.success(member);
     }
 
 
@@ -184,8 +258,8 @@
     @ApiImplicitParams({
             @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
     })
-    public ApiResponse<List<Category>> categoryList(@RequestParam Integer type) {
-        return ApiResponse.success(categoryService.getCategoryList(type));
+    public ApiResponse<List<Category>> categoryList(@RequestParam Integer type,Integer rank) {
+        return ApiResponse.success(categoryService.getCategoryList(type,rank));
     }
 
 

--
Gitblit v1.9.3