From fea8e0742ee241a94c5bbd4f452d6ad82cf4dd9c Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期五, 06 二月 2026 10:58:26 +0800
Subject: [PATCH] 功能开发

---
 server/services/src/main/java/com/doumee/service/business/impl/CasesServiceImpl.java     |    5 -
 server/web/src/main/java/com/doumee/api/web/LoginController.java                         |   53 +++++++++++++----
 server/services/src/main/java/com/doumee/core/iPass/IPass.java                           |   11 +--
 server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java |    2 
 server/services/src/main/java/com/doumee/core/constants/Constants.java                   |    7 ++
 server/services/src/main/resources/application-pro.yml                                   |   19 ++++--
 server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java    |   22 ++++--
 server/web/src/main/resources/application.yml                                            |    2 
 server/admin/src/main/resources/application.yml                                          |    2 
 server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java  |   12 +++-
 10 files changed, 91 insertions(+), 44 deletions(-)

diff --git a/server/admin/src/main/resources/application.yml b/server/admin/src/main/resources/application.yml
index 94a46dc..bdaf926 100644
--- a/server/admin/src/main/resources/application.yml
+++ b/server/admin/src/main/resources/application.yml
@@ -12,7 +12,7 @@
 
 spring:
   profiles:
-    active: dev
+    active: pro
   # JSON杩斿洖閰嶇疆
   jackson:
     # 榛樿鏃跺尯
diff --git a/server/services/src/main/java/com/doumee/core/constants/Constants.java b/server/services/src/main/java/com/doumee/core/constants/Constants.java
index 4e2953d..e7e0a3a 100644
--- a/server/services/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -21,6 +21,13 @@
     public static final String RESOURCE_PATH ="RESOURCE_PATH" ;
     public static final String ROLE_CONFIG ="ROLE_CONFIG" ;
 
+    public static final String UK_JUMP_URL ="UK_JUMP_URL" ;
+    public static final String IPASS_TOKEN_URL ="IPASS_TOKEN_URL" ;
+    public static final String IPASS_LOGIN_ACCOUNT ="IPASS_LOGIN_ACCOUNT" ;
+    public static final String IPASS_LOGIN_PSD ="IPASS_LOGIN_PSD" ;
+    public static final String IPASS_ZHANQU_URL ="IPASS_ZHANQU_URL" ;
+
+
     public static final String QYWX_CORPID = "QYWX_CORPID";
     public static final String QYWX_SECRET = "QYWX_SECRET";
     public static final String QYWX_TOKEN = "QYWX_TOKEN";
diff --git a/server/services/src/main/java/com/doumee/core/iPass/IPass.java b/server/services/src/main/java/com/doumee/core/iPass/IPass.java
index c971735..b23fd5b 100644
--- a/server/services/src/main/java/com/doumee/core/iPass/IPass.java
+++ b/server/services/src/main/java/com/doumee/core/iPass/IPass.java
@@ -27,7 +27,7 @@
     private static String tokenUrl = "https://ipaasuat.zhibang.com:4430/open-api/rest/core/auth/login";
     private static String zhanquUrl = "https://ipaasuat.zhibang.com:4430/open-api/mdm/cust-territories-trees/query";
 
-    public String getIPassToken() throws IOException {
+    public String getIPassToken(String userName,String password,String tokenUrl) throws IOException {
         OkHttpClient client = new OkHttpClient().newBuilder()
                 .build();
         MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
@@ -55,7 +55,7 @@
 
 
 
-    public List<ZhanQuVO> getIPassZhanquList() throws IOException {
+    public List<ZhanQuVO> getIPassZhanquList(String userName,String password,String tokenUrl,String zhanquUrl) throws IOException {
         OkHttpClient client = new OkHttpClient().newBuilder()
                 .build();
         MediaType mediaType = MediaType.parse("application/json");
@@ -68,7 +68,7 @@
         Request request = new Request.Builder()
                 .url(zhanquUrl)
                 .method("POST", body)
-                .addHeader("identitytoken", getIPassToken())
+                .addHeader("identitytoken", getIPassToken(userName,password,tokenUrl))
                 .addHeader("User-Agent", "Apifox/1.0.0 (https://apifox.com)")
                 .addHeader("Content-Type", "application/json")
                 .build();
@@ -86,11 +86,6 @@
     }
 
 
-
-    public static void main(String[] args) throws IOException {
-        IPass iPass = new IPass();
-        iPass.getIPassZhanquList();
-    }
 
 
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/CasesServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/CasesServiceImpl.java
index 76551cc..27dd2aa 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/CasesServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/CasesServiceImpl.java
@@ -200,8 +200,6 @@
         queryWrapper.orderByDesc(Cases::getId);
         PageData<Cases> result =PageData.from(casesMapper.selectJoinPage(page, Cases.class,queryWrapper));
         if(result!=null && result.getRecords()!=null){
-            String path  = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()
-                    +systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.CASES_FILES).getCode();
             for(Cases cate : result.getRecords()){
                 initMultifileList(cate);
             }
@@ -216,7 +214,8 @@
         find.setObjId(cate.getId());
         find.setObjType(Constants.ONE);
         find.setIsdeleted(Constants.ZERO);
-        List<Multifile> fileList=  multifileMapper.selectList(new QueryWrapper<>(find));
+        List<Multifile> fileList=  multifileMapper.selectList(new QueryWrapper<>(find).lambda()
+                .orderByAsc(Multifile::getId));
         if(fileList!=null){
             for(Multifile f : fileList){
                 if(StringUtils.isNotBlank(f.getFileurl())){
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
index 6f231e7..bc617e2 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
@@ -215,6 +215,8 @@
     public List<Category> findList(Category category) {
         category.setDeleted(Constants.ZERO);
         QueryWrapper<Category> wrapper = new QueryWrapper<>(category);
+        wrapper.lambda().orderByAsc(Category::getSortnum);
+        wrapper.lambda().orderByAsc(Category::getId);
         return categoryMapper.selectList(wrapper);
     }
   
@@ -338,7 +340,11 @@
     public void syncZhanQu() throws IOException {
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         IPass iPass = new IPass();
-        List<ZhanQuVO> l =  iPass.getIPassZhanquList();
+        List<ZhanQuVO> l =  iPass.getIPassZhanquList(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.IPASS_LOGIN_ACCOUNT).getCode(),
+                systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.IPASS_LOGIN_PSD).getCode(),
+                systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.IPASS_TOKEN_URL).getCode(),
+                systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.IPASS_ZHANQU_URL).getCode()
+        );
         List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda()
                 .eq(Category::getType,Constants.ZERO)
                 .eq(Category::getDeleted,Constants.ZERO)
@@ -367,11 +373,11 @@
     public Category vaildData(ZhanQuVO zhanQuVO , List<Category> categoryList, LoginUserInfo userInfo) {
         Category returnData = new Category();
         for (Category category:categoryList) {
+            returnData.setUpdateUser(userInfo.getId());
+            returnData.setUpdateTime(new Date());
             if(category.getDetail().equals(zhanQuVO.getNodeCode())){
                 returnData = category   ;
                 returnData.setName(zhanQuVO.getNodeName());
-                returnData.setUpdateUser(userInfo.getId());
-                returnData.setUpdateTime(new Date());
                 return returnData;
             }
         }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index f74f6c1..5e1af2d 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -225,7 +225,7 @@
                 .eq(Objects.nonNull(model.getImportId()),Member::getImportId, model.getImportId())
                 .eq(Objects.nonNull(model.getStatus()),Member::getStatus, model.getStatus())
                 .eq(model.getContainDeleted()!=1,Member::getDeleted, Constants.ZERO)
-                .in(Objects.nonNull(model.getLevelId()),"t1.id", model.getLevelId())
+                .in(Objects.nonNull(model.getLevelId()),"t2.id", model.getLevelId())
                 .eq(Objects.nonNull(model.getCode()),Member::getCode, model.getCode())
                 .orderByDesc(Objects.nonNull(model.getOrderByType())&&Constants.equalsInteger(model.getOrderByType(), Constants.ZERO),Member::getFee)
                 .orderByAsc(Objects.nonNull(model.getOrderByType())&&Constants.equalsInteger(model.getOrderByType(), Constants.ONE),Member::getFee)
@@ -243,7 +243,7 @@
                  ) {
                 sql = sql + (StringUtils.isNotBlank(sql)?" or ":"") + " find_in_set( '["+s+"]' , t.FIELD_IDS ) ";
             }
-            queryWrapper.apply(sql);
+            queryWrapper.apply("("+sql+")");
         }
 
 
@@ -253,18 +253,22 @@
             ) {
                 sql = sql + (StringUtils.isNotBlank(sql)?" or ":"") + " find_in_set( '["+s+"]' , t.BUSTYPE_IDS ) ";
             }
-            queryWrapper.apply(sql);
+            queryWrapper.apply("("+sql+")");
         }
 
         if (StringUtils.isNotBlank(model.getQueryZQCode())) {
-            Category zhanqu = categoryMapper.selectOne(new QueryWrapper<Category>().lambda()
+            List<Category> zhanquList = categoryMapper.selectList(new QueryWrapper<Category>().lambda()
                     .eq(Category::getDeleted,Constants.ZERO)
                     .eq(Category::getStatus,Constants.ZERO)
-                    .eq(Category::getDetail,model.getQueryZQCode())
+                    .apply(" find_in_set(detail,'"+model.getQueryZQCode()+"') ")
                     .last(" limit 1")
             );
-            if(Objects.nonNull(zhanqu)){
-                queryWrapper.apply(" find_in_set( '["+zhanqu.getId()+"]', t.ZHANQU_IDS ) ");
+            if(CollectionUtils.isNotEmpty(zhanquList)){
+                String sql = "";
+                for (Category s:zhanquList) {
+                    sql = sql + (StringUtils.isNotBlank(sql)?" or ":"") + " find_in_set( '["+s.getId()+"]' , t.ZHANQU_IDS ) ";
+                }
+                queryWrapper.apply("("+sql+")");
             }
         }
         IPage<Member> memberIPage  = memberMapper.selectJoinPage(page, Member.class, queryWrapper);
@@ -285,7 +289,9 @@
                if(member.getJobYear()!=null){
                     member.setWorkYears(DateUtil.getCurrentYear( ) - member.getJobYear()+1);
                 }
+               member.setServeNum(Constants.formatIntegerNum(member.getServeNum()));
             }
+
         }
         return PageData.from(memberIPage);
     }
@@ -373,7 +379,7 @@
                         .eq(Multifile::getObjId,cases.getId())
                         .eq(Multifile::getObjType,Constants.ONE)
                         .eq(Multifile::getIsdeleted,Constants.ZERO)
-                        .orderByDesc(Multifile::getId)
+                        .orderByAsc(Multifile::getId)
                 );
                 multifileList.forEach(multifile -> {
                     multifile.setUrl(StringUtils.isNotBlank(multifile.getFileurl())?(resourcePath  + casePath + multifile.getFileurl()):"");
diff --git a/server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index cc7a8af..6837899 100644
--- a/server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -75,7 +75,7 @@
         loginLog.setClientInfo(Utils.User_Client.getBrowser(request));
         loginLog.setOsInfo(Utils.User_Client.getOS(request));
         loginLog.setServerIp(Utils.Server.getIP());
-        if(StringUtils.equals(projectEnv,"development")){
+        if(!StringUtils.equals(projectEnv,"development")){
             // 鏍¢獙楠岃瘉鐮�
             try {
                 captchaService.check(dto.getUuid(), dto.getCode());
diff --git a/server/services/src/main/resources/application-pro.yml b/server/services/src/main/resources/application-pro.yml
index a8a65fe..bae1c20 100644
--- a/server/services/src/main/resources/application-pro.yml
+++ b/server/services/src/main/resources/application-pro.yml
@@ -1,16 +1,16 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://192.168.0.211:3306/zbom_dianjiang?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://10.200.200.16:3306/zbom_dianjiang?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: root
-    password: Doumee@168
+    password: Zbom2020@rds
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
   redis:
-    #    database: 0
-    host: 127.0.0.1
-    port: 6379
-    password:
+    #    蹇楅偊瀹堕�夊彲浠ョ敤鐨剅edis锛岃繖涓猺edisU瀹篃鍦ㄧ敤
+    host: 10.200.100.39
+    port: 20032
+    password: Zbom_2020@123
     timeout: 5000      # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
   jackson:
     time-zone: GMT+8
@@ -57,4 +57,9 @@
   # 鐜锛岀敓浜х幆澧僷roduction锛屽紑鍙戠幆澧僤evelopment
   env: production
   # 妯″紡锛宼esting娴嬭瘯妯″紡
-  mode: production
\ No newline at end of file
+  mode: production
+
+
+dingtalk:
+  clientId: dingy7xdyzffnegiaszo
+  clientSecret: KfjrSYV7YOTRU3VkBBZyPVuop7pd4_Hl5_sPFl8G_uIQuKQ_QbOQBmUHoLjiFn3e
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 0c0d402..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
@@ -87,7 +87,6 @@
     @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();
         String token = "";
         try {
@@ -105,30 +104,51 @@
                 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(userInfo.getString("distrcode").isEmpty()){
-                    loginUserVO.setShowFee(Constants.ONE);
+                if(StringUtils.isBlank(userInfo.getString("distrcode"))){
+                    loginUserVO.setShowFee(Constants.ZERO);
                 }else{
-                    JSONArray jsonArray = userInfo.getJSONArray("ukRoles");
-                    this.setLoginShowFee(loginUserVO,jsonArray);
+                    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("https://test.doumee.cn/h5/");
-        log.error("璺宠浆鍦板潃璺宠浆淇℃伅锛�" + requestParam.getRediUrl()+"?token="+token);
-        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();
@@ -151,6 +171,16 @@
         }
     }
 
+
+    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(@RequestBody DingLoginDTO dingLoginDTO)  throws ApiException {
@@ -159,12 +189,12 @@
         System.out.println("閽夐拤鎺堟潈鐧诲綍鍏ュ弬锛�"+JSONObject.toJSONString(dingLoginDTO));
         OapiV2UserGetuserinfoResponse.UserGetByCodeResponse response = dingTalk.getDDUserByCode(dingLoginDTO);
         log.error("閽夐拤鎺堟潈鐧诲綍杩斿弬锛�"+JSONObject.toJSONString(response));
-        System.out.println("閽夐拤鎺堟潈鐧诲綍杩斿弬锛�"+JSONObject.toJSONString(response));
         if(Objects.nonNull(response)){
             loginUserVO.setId(response.getUserid());
             loginUserVO.setShowFee(Constants.ONE);
         }
         loginUserVO.setToken(jwtTokenUtil.generateToken(loginUserVO));
+        log.error("閽夐拤鎺堟潈鐧诲綍鑾峰彇token淇℃伅杩斿弬锛�"+JSONObject.toJSONString(loginUserVO));
         return ApiResponse.success(loginUserVO);
     }
 
@@ -192,7 +222,6 @@
         log.error("鍒嗛〉鏌ヨ鐢ㄦ埛淇℃伅"+JSONObject.toJSONString(loginUserVO));
         pageWrap.getModel().setQueryZQCode(loginUserVO.getZhanqu());
         PageData<Member> pageData = memberService.findPage(pageWrap);
-
         if(CollectionUtils.isNotEmpty(pageData.getRecords())){
             log.error("鍒嗛〉鏁版嵁淇℃伅"+JSONObject.toJSONString(pageData.getRecords()));
             if(Constants.equalsInteger(Constants.ZERO,loginUserVO.getShowFee())){
diff --git a/server/web/src/main/resources/application.yml b/server/web/src/main/resources/application.yml
index 57a9549..ae4bbbe 100644
--- a/server/web/src/main/resources/application.yml
+++ b/server/web/src/main/resources/application.yml
@@ -8,7 +8,7 @@
 
 spring:
   profiles:
-    active: dev
+    active: pro
   # JSON杩斿洖閰嶇疆
   jackson:
     # 榛樿鏃跺尯

--
Gitblit v1.9.3