计算机毕业设计-基于协同过滤算法的旅游管理系统-基于SSM的旅游定制系统(源码+讲解+文档)

发布于:2022-12-12 ⋅ 阅读:(551) ⋅ 点赞:(0)

计算机毕业设计-基于协同过滤算法的旅游管理系统-基于SSM的旅游定制系统(源码+讲解+文档)

1 开发环境及工具下载

  • 开发语言:Java
  • 后台:SSM(Spring+SpringMVC+Mybatis)
  • 数据库:MySQL
  • 工具:Idea、Eclipse、MyEclipse (选其一)
  • 其他:jdk1.8、maven、Tomcat

eclipse 下载
mysql 5.7 下载
jdk 1.8 下载
tomcat 8.0 下载
maven 3.5 下载
idea 下载

2 功能介绍

2.1 管理员用例图

管理员角色主要包含的功能有商品信息、登录、登出、房间信息、主题信息、订单信息、用户管理、定制信息等功能,管理员用例图如下图所示。
在这里插入图片描述

普通用户进入到协同过滤旅游系统拥有的功能有旅游产品、服务制定、咨询、个人中心、订购的功能权限,具体内容如下图所示。
在这里插入图片描述

2.3 系统功能结构图

在这里插入图片描述

3 部分运行界面

3.1 用户部分运行界面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 管理员部分运行界面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 更多推荐

ssm在线点餐系统(沙箱支付)
基于SpingBoot的高校就业生就业服务平台
基于springboot的社区志愿者管理系统

5 首页获取推荐功能代码

/**
 * <p>
 *  后端主页控制器
 * </p>
 *

 */
@Controller
public class IndexController {

    @Autowired
    private IProductService productService;
    @Autowired
    private IThemeService themeService;
    @Autowired
    private IUserActionService userActionService;


    @RequestMapping("/register")
    public String register(){
        return "index/register";
    }

    @RequestMapping("/customized")
    public String customized(){
        return "index/customized";
    }

    @RequestMapping("/navigation")
    public String navigation(){
        return "index/navigation";
    }

    @RequestMapping("/productlistView")
    public String plView(Model model){
        List<Theme> themes=themeService.selectList(null);
        model.addAttribute("themes",themes);
        return "index/product_list";
    }

    @RequestMapping("/indexView")
    public String indexView(HttpSession session,Model model) throws Exception {
        List<Product> productList=productService.getIndexproduct(6);
        List<Product> hotPList=productService.hotProduct(6);
        User loginUser = (User)session.getAttribute(Const.CURRENT_USER);
        List<Product> recommendProductList = new ArrayList<>();
        //获取推荐的商品
        if (loginUser!=null) {
            RecommendUtil recommendUtil = new RecommendUtil();
            List<Long> recommendList = recommendUtil.getRecommend(loginUser.getId());
            for (int i=0;i<recommendList.size();i++){
                Product product = productService.selectById(recommendList.get(i));
                recommendProductList.add(product);
            }
            Integer flag = 6-recommendList.size();
            if (flag>0){
                //推荐数量不够,使用用户冷启动
                EntityWrapper<UserAction> userActionEntityWrapper = new EntityWrapper<>();
                //先查询用户感兴趣的商品,并降序排列
                userActionEntityWrapper.eq("userid",loginUser.getId());
                userActionEntityWrapper.orderBy("score",false);
                List<UserAction> userActionList = userActionService.selectList(userActionEntityWrapper);
                //遍历用户感兴趣的商品
                for (int i =0;i<userActionList.size();i++){
                    //获取感兴趣的商品id
                    String pid=userActionList.get(i).getProductid();
                    Boolean isExist=false;
                    //遍历推荐的商品
                    for (int j  =0;j<recommendProductList.size();j++){
                        //当推荐的商品已存在感兴趣的商品,则不存入
                        if (pid.equals(recommendProductList.get(j).getPid())){
                            isExist=true;
                        }
                    }
                    if (!isExist){
                        Product product = productService.selectById(pid);
                        recommendProductList.add(product);
                    }
                    if (recommendProductList.size()==6){
                        break;
                    }
                }

            }
        }
        model.addAttribute("recommendProductList",recommendProductList);
        model.addAttribute("hotPList",hotPList);
        model.addAttribute("productList",productList);
        return "index/index";
    }

    @RequestMapping("/userinfoView")
    public String userinfoView(){
        return "index/user_info";
    }

    @RequestMapping("/myorder")
    public String myorder(){
        return "index/my_order";
    }
    @RequestMapping("/plistView")
    public String plistView(){

        return "index/plist";
    }

    @RequestMapping("/adminLoginView")
    public String adloginView(){
        return "backend/admin_login";
    }
}

注意:该项目只展示部分功能,如需了解,评论区咨询即可。
希望和大家多多交流!!
源码项目、定制开发、代码讲解、答辩辅导

本文含有隐藏内容,请 开通VIP 后查看