rk
4 天以前 fea8e0742ee241a94c5bbd4f452d6ad82cf4dd9c
功能开发
已修改10个文件
125 ■■■■■ 文件已修改
server/admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/core/constants/Constants.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/core/iPass/IPass.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/CasesServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/resources/application-pro.yml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/LoginController.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/admin/src/main/resources/application.yml
@@ -12,7 +12,7 @@
spring:
  profiles:
    active: dev
    active: pro
  # JSON返回配置
  jackson:
    # 默认时区
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";
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();
    }
}
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())){
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;
            }
        }
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()):"");
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());
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:
    #    志邦家选可以用的redis,这个redisU客也在用
    host: 10.200.100.39
    port: 20032
    password: Zbom_2020@123
    timeout: 5000      # 连接池中的最小空闲连接
  jackson:
    time-zone: GMT+8
@@ -58,3 +58,8 @@
  env: production
  # 模式,testing测试模式
  mode: production
dingtalk:
  clientId: dingy7xdyzffnegiaszo
  clientSecret: KfjrSYV7YOTRU3VkBBZyPVuop7pd4_Hl5_sPFl8G_uIQuKQ_QbOQBmUHoLjiFn3e
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(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("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())){
server/web/src/main/resources/application.yml
@@ -8,7 +8,7 @@
spring:
  profiles:
    active: dev
    active: pro
  # JSON返回配置
  jackson:
    # 默认时区