曾富康
2026-06-26 55c79d4c0e3b07e9b7b28d3a3f424decec06d498
新增需求
5个文件已修改
77 ■■■■■ 已修改文件
ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/EmbeddedPageController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_right.html 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MessagePushTravel/src/main/java/com/sinata/push/util/applets/NettyWebSocketController.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/EmbeddedPageController.java
@@ -11,6 +11,7 @@
import com.stylefeng.guns.modular.system.service.IUserService;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -29,8 +30,12 @@
public class EmbeddedPageController {
    private static final String EMBEDDED_IFRAME_VIEW = "/system/embedded/iframe.html";
    private static final String ROUTE_SWITCH_URL = "http://192.168.110.22:8087/#/?token=";
    private static final String STATISTICAL_TABLE_URL = "http://192.168.110.22:8087/#/statistical-table?token=";
    @Value("${embedded.route-switch-url}")
    private String routeSwitchUrl;
    @Value("${embedded.statistical-table-url}")
    private String statisticalTableUrl;
    @Autowired
    private IMenuEntryConfigService menuEntryConfigService;
@@ -41,14 +46,14 @@
    @RequestMapping("/embedded/route-switch")
    public String routeSwitch(Model model) throws UnsupportedEncodingException {
        model.addAttribute("title", "路由切换页");
        model.addAttribute("iframeSrc", ROUTE_SWITCH_URL + generateCurrentUserToken());
        model.addAttribute("iframeSrc", buildTokenUrl(routeSwitchUrl));
        return EMBEDDED_IFRAME_VIEW;
    }
    @RequestMapping("/embedded/statistical-table")
    public String statisticalTable(Model model) throws UnsupportedEncodingException {
        model.addAttribute("title", "统计板");
        model.addAttribute("iframeSrc", STATISTICAL_TABLE_URL + generateCurrentUserToken());
        model.addAttribute("iframeSrc", buildTokenUrl(statisticalTableUrl));
        return EMBEDDED_IFRAME_VIEW;
    }
@@ -85,6 +90,10 @@
        return null;
    }
    private String buildTokenUrl(String baseUrl) throws UnsupportedEncodingException {
        return baseUrl + generateCurrentUserToken();
    }
    private String generateCurrentUserToken() throws UnsupportedEncodingException {
        ShiroUser user = ShiroKit.getUser();
        if (user == null || user.getId() == null) {
ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.google.code.kaptcha.Constants;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.exception.InvalidKaptchaException;
@@ -13,11 +14,13 @@
import com.stylefeng.guns.core.shiro.ShiroUser;
import com.stylefeng.guns.core.shiro.factory.IShiro;
import com.stylefeng.guns.core.util.ApiMenuFilter;
import com.stylefeng.guns.core.util.JwtTokenUtil;
import com.stylefeng.guns.core.util.KaptchaUtil;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.dao.TCompanyMapper;
import com.stylefeng.guns.modular.system.dao.UserMapper;
import com.stylefeng.guns.modular.system.model.Menu;
import com.stylefeng.guns.modular.system.model.SysUserCompanyScope;
import com.stylefeng.guns.modular.system.model.TCompany;
import com.stylefeng.guns.modular.system.model.User;
@@ -32,6 +35,7 @@
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@@ -41,6 +45,7 @@
import javax.annotation.Resource;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.*;
import static com.stylefeng.guns.core.support.HttpKit.getIp;
@@ -54,6 +59,10 @@
@Slf4j
@Controller
public class LoginController extends BaseController {
    @Value("${embedded.route-switch-url}")
    private String routeSwitchUrl;
    // 快车相关菜单(isSpe=2时过滤)
    private static final List<String> SPE_MENUS = Arrays.asList(
@@ -110,7 +119,7 @@
     * 跳转到主页
     */
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String index(Model model) throws UnsupportedEncodingException {
    public String index(Model model, String routeRedirect) throws UnsupportedEncodingException {
        ShiroUser shiroUser = ShiroKit.getUser();
        if (Objects.isNull(shiroUser)) {
            ShiroKit.getSubject().logout();
@@ -154,9 +163,37 @@
        model.addAttribute("avatar", avatar);
        model.addAttribute("userName", user.getName());
        model.addAttribute("type", 0);
        addDefaultPageModel(model, routeRedirect);
        return "/index.html";
    }
    private void addDefaultPageModel(Model model, String routeRedirect) {
        String defaultPageUrl = getValidRouteRedirect(routeRedirect);
        String defaultPageTitle = "首页";
        if (!"/blackboard".equals(defaultPageUrl)) {
            Menu menu = menuService.selectOne(
                    new EntityWrapper<Menu>().eq("url", defaultPageUrl).eq("status", 1).eq("ismenu", 1));
            if (menu != null && ToolUtil.isNotEmpty(menu.getName())) {
                defaultPageTitle = menu.getName();
            }
        }
        model.addAttribute("defaultPageUrl", defaultPageUrl);
        model.addAttribute("defaultPageTitle", defaultPageTitle);
    }
    private String getValidRouteRedirect(String routeRedirect) {
        if (ToolUtil.isEmpty(routeRedirect)) {
            return "/blackboard";
        }
        String url = routeRedirect.trim();
        String lowerUrl = url.toLowerCase();
        if (!url.startsWith("/") || url.startsWith("//")
                || lowerUrl.contains("http:") || lowerUrl.contains("https:") || lowerUrl.contains("javascript:")) {
            return "/blackboard";
        }
        return url;
    }
    /**
@@ -252,7 +289,20 @@
        
        ShiroKit.getSession().setAttribute("sessionFlag", true);
        
        return REDIRECT + "/";
        return redirectToRouteSwitchPage(shiroUser);
    }
    private String redirectToRouteSwitchPage(ShiroUser shiroUser) {
        if (shiroUser == null || shiroUser.getId() == null) {
            return REDIRECT + "/";
        }
        try {
            String token = JwtTokenUtil.generateToken(shiroUser.getId().toString());
            return REDIRECT + routeSwitchUrl + URLEncoder.encode(token, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            log.error("生成路由切换页token失败", e);
            return REDIRECT + "/";
        }
    }
    @ResponseBody
ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_right.html
@@ -46,7 +46,7 @@
        </button>
        <nav class="page-tabs J_menuTabs">
            <div class="page-tabs-content">
                <a href="javascript:;" class="active J_menuTab" data-id="${ctxPath}/blackboard">首页</a>
                <a href="javascript:;" class="active J_menuTab" data-id="${ctxPath}${defaultPageUrl}">${defaultPageTitle}</a>
            </div>
        </nav>
        <!--<nav class="page-tabs J_menuTabs">
@@ -73,7 +73,7 @@
        <a href="logout" class="roll-nav roll-right J_tabExit"><i class="fa fa fa-sign-out"></i> 退出</a>
    </div>
    <div class="row J_mainContent" id="content-main">
        <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="${ctxPath}/blackboard?type=${type}" frameborder="0" data-id="${ctxPath}/blackboard" seamless></iframe>
        <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="${ctxPath}${defaultPageUrl}" frameborder="0" data-id="${ctxPath}${defaultPageUrl}" seamless></iframe>
    </div>
    <div class="footer">
        <div class="pull-right">&copy; 2019-2021 <a href="#" onclick="return false" target="_blank">约客多出行</a>
MessagePushTravel/src/main/java/com/sinata/push/util/applets/NettyWebSocketController.java
@@ -159,6 +159,7 @@
        HttpRequest post = HttpUtil.createPost(qytConfig.getChuxingUrl() + "/user/base/passenger/location/push");
        post.contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        post.form(params);
        System.out.println("user-server推送乘客:{}" + params);
        HttpResponse execute = post.execute();
        if (200 != execute.getStatus()) {
            System.err.println("调用user-server推送乘客定位出错");
UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -171,6 +171,7 @@
        if (jsonObject1.getIntValue("code") != 200) {
            return ResultUtil.error(jsonObject1.getString("msg"));
        }
        System.err.println("乘客定位上报成功!");
        return ResultUtil.success();
    }