当前位置: 首页 > news >正文

在深圳注册公司流程及费用贵阳网站关键字优化

在深圳注册公司流程及费用,贵阳网站关键字优化,邯郸市教育考试院网站,制作链接的app的软件项目编号#xff1a; S 023 #xff0c;文末获取源码。 \color{red}{项目编号#xff1a;S023#xff0c;文末获取源码。} 项目编号#xff1a;S023#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四… 项目编号 S 023 文末获取源码。 \color{red}{项目编号S023文末获取源码。} 项目编号S023文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统基于协同推荐算法包括用户网页和管理后台包含景点类型模块、旅游景点模块、行程推荐模块、美食推荐模块、景点排名模块还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块海南旅游推荐系统基于角色的访问控制给景点管理员、游客使用可将权限精确到按钮级别您可以自定义角色并分配权限系统适合设计精确的权限约束需求。 1.2 项目录屏 源码下载 二、功能模块 2.1 用户端 景点推荐根据用户个性化偏好给用户推荐感兴趣的景点 【景点信息包含景点名称、景点类型、评分、收藏量、门票价格、门票预订提供购买链接用户可以通过点击链接到其他平台购买门票、开放时间、景区地址所在市区、详细地址、景点介绍】景点筛选用户可通过设置自己想要的景点类型、景点门票价格范围、景区地址海口市、三亚市、儋州市、三沙市等来筛选满足自身需求的景点 筛选【注若用户只设置了一个筛选条件则只需满足一个筛选条件就推荐给用户若设置两个以上则需都满足才给用户推荐】旅游攻略用户可以通过搜索景点名称来获取景点周边美食以及行程路线的相关信息 1交通指南起点、终点、交通方式、行程路线 2周边美食美食图片、名称、类型、简介、人均消费景点数据景点数据可视化 1好评度排名管理员可以看到好评度高的前十个景点【排名、景点名称、好评度】 2景点收藏量管理员可以看到收藏量排名前十的景点【排名、景点名称、收藏量】个人中心: 1个人信息账号、姓名、联系方式、身份证号用户可以更新个人信息、退出登录 2景点收藏用户可以查看、取消收藏过的景点 2.2 管理员端 个人中心管理员个人信息景点信息管理 1查询可通过搜索景点名称、地址、景点类型来获取需要的景点数据搜索到需要的景点数据后可进行查看、修改、删除景点信息操作 2添加可以添加新的景点信息用户信息管理 1查询可通过搜索用户账号来查询需要的用户查询到需要的用户后可对用户信息进行查看、修改、删除操作 2添加可添加新用户信息行程信息管理 1查询可通搜索景点地址来获取景点行程路线信息查询到需要的行程信息后可对其进行查看、修改、删除操作 2添加可添加信息美食信息管理 1查询可通搜索景点地址来获取景点周边美食信息查询到需要的信息后可对其进行查看、修改、删除操作 2添加可添加新的美食信息景点数据景点数据可视化同用户端的景点数据可视化 1好评度排名管理员可以看到好评度高的前十个景点【排名、景点名称、好评度】 2景点收藏量管理员可以看到收藏量排名前十的景点【排名、景点名称、收藏量】 三、系统展示 四、核心代码 4.1 随机景点推荐 RequestMapping(value /getRecommendList2OnWeb, method RequestMethod.GET) ApiOperation(value 查询推荐的景点) public ResultListScenicSpot getRecommendList2(){ListScenicSpot spotList iScenicSpotService.list();int[] arr new int[spotList.size()];for(int i 1; i spotList.size(); i ) {arr[i - 1] i;}int[] ints selectM(arr, 10);ListScenicSpot ans new ArrayList();for (int i : ints) {ans.add(spotList.get(i));}return new ResultUtilListScenicSpot().setData(ans); }public static int[] selectM(int[] arr,int m){int lenarr.length;if(marr.length) {throw new RuntimeException(xxxxx);}int[] resnew int[m];for(int i0;im;i){int randomIndexlen-1-new Random().nextInt(len-i);res[i]arr[randomIndex];int tmparr[randomIndex];arr[randomIndex]arr[i];arr[i]tmp;}return res; }4.2 景点评价 RequestMapping(value /addEvaluate, method RequestMethod.GET) ApiOperation(value 新增评价) public ResultEvaluate addEvaluate(RequestParam String id, RequestParam BigDecimal level, RequestParam String message){ScenicSpot ss iScenicSpotService.getById(id);if(ss null) {return ResultUtil.error(景点不存在);}User currUser securityUtil.getCurrUser();QueryWrapperEvaluate qw new QueryWrapper();qw.eq(spot_id,ss.getId());qw.eq(user_id,currUser.getId());qw.last(limit 1);Evaluate evaluate iEvaluateService.getOne(qw);if(evaluate null) {evaluate new Evaluate();evaluate.setSpotId(ss.getId());evaluate.setSpotName(ss.getTitle());evaluate.setUserId(currUser.getId());evaluate.setUserName(currUser.getNickname());}evaluate.setLevel(level);evaluate.setMessage(message);evaluate.setTime(DateUtil.now());iEvaluateService.saveOrUpdate(evaluate);return ResultUtil.success(); }4.3 协同推荐算法 Scheduled(cron 0 0/1 * * * ?) ApiOperation(value 景点数据更新) public void job(){ListScenicSpot spotList iScenicSpotService.list();for (ScenicSpot vo : spotList) {Long evaluateSum 0L;QueryWrapperEvaluate evalQw new QueryWrapper();evalQw.eq(spot_id,vo.getId());ListEvaluate evaluateList iEvaluateService.list(evalQw);for (Evaluate evaluate : evaluateList) {evaluateSum evaluate.getLevel().longValue();}// 收藏 10分QueryWrapperCollection coQw new QueryWrapper();coQw.eq(spot_id,vo.getId());evaluateSum iCollectionService.count(coQw);// 浏览 1分String viewStr redisTemplate.get(SPOT_VIEW: vo.getId());if(!ZwzNullUtils.isNull(viewStr)) {try {long viewNumber Long.parseLong(viewStr);evaluateSum viewNumber;} catch (Exception e) {}}vo.setValue(evaluateSum);}Collections.sort(spotList, new ComparatorScenicSpot() {Overridepublic int compare(ScenicSpot o1, ScenicSpot o2) {return (int)(o2.getValue() - o1.getValue());}});if(spotList.size() 10) {spotList spotList.subList(0,10);}for (ScenicSpot vo1 : spotList) {// 评分BigDecimal evaluateSum BigDecimal.ZERO;QueryWrapperEvaluate evalQw new QueryWrapper();evalQw.eq(spot_id,vo1.getId());ListEvaluate evaluateList iEvaluateService.list(evalQw);for (Evaluate evaluate : evaluateList) {evaluateSum evaluateSum.add(evaluate.getLevel());}if(evaluateList.size() 0) {vo1.setStar(evaluateSum.divide(BigDecimal.valueOf(evaluateList.size()),2, RoundingMode.DOWN));} else {vo1.setStar(BigDecimal.valueOf(-1));}// 收藏QueryWrapperCollection coQw new QueryWrapper();coQw.eq(spot_id,vo1.getId());vo1.setCollection(iCollectionService.count(coQw));}redisTemplate.set(SPOT_JOB_DATA, JSON.toJSONString(spotList));System.out.println(缓存完毕); }4.4 网站登录 RequestMapping(value /loginOnWeb, method RequestMethod.GET) ApiOperation(value 网站前台登陆) public ResultString loginOnWeb(RequestParam String userName, RequestParam String password){QueryWrapperUser qw new QueryWrapper();qw.eq(username,userName);ListUser userList iUserService.list(qw);if(userList.size() 1) {return ResultUtil.error(用户不存在);}User user userList.get(0);if(!new BCryptPasswordEncoder().matches(password, user.getPassword())){return ResultUtil.error(密码不正确);}String accessToken securityUtil.getToken(user.getUsername(), true);UsernamePasswordAuthenticationToken authentication new UsernamePasswordAuthenticationToken(new SecurityUserDetails(user), null, null);SecurityContextHolder.getContext().setAuthentication(authentication);return new ResultUtilString().setData(accessToken); }4.5 查询景点美食 RequestMapping(value /getByPage, method RequestMethod.GET) ApiOperation(value 查询美食) public ResultIPageDeliciousFood getByPage(ModelAttribute DeliciousFood deliciousFood ,ModelAttribute PageVo page){QueryWrapperDeliciousFood qw new QueryWrapper();if(!ZwzNullUtils.isNull(deliciousFood.getTitle())) {qw.like(title,deliciousFood.getTitle());}if(!ZwzNullUtils.isNull(deliciousFood.getContent())) {qw.like(content,deliciousFood.getContent());}if(!ZwzNullUtils.isNull(deliciousFood.getSpotId())) {qw.eq(spot_id,deliciousFood.getSpotId());}IPageDeliciousFood data iDeliciousFoodService.page(PageUtil.initMpPage(page),qw);return new ResultUtilIPageDeliciousFood().setData(data); }五、免责说明 本项目仅供个人学习使用商用授权请联系博主否则后果自负。博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权拥有最终解释权。如有问题欢迎在仓库 Issue 留言看到后会第一时间回复相关意见会酌情考虑但没有一定被采纳的承诺或保证。 下载本系统代码或使用本系统的用户必须同意以下内容否则请勿下载 出于自愿而使用/开发本软件了解使用本软件的风险且同意自己承担使用本软件的风险。利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关博主对此不承担任何责任。在任何情况下对于因使用或无法使用本软件而导致的任何难以合理预估的损失包括但不仅限于商业利润损失、业务中断与业务信息丢失博主概不承担任何责任。必须了解使用本软件的风险博主不承诺提供一对一的技术支持、使用担保也不承担任何因本软件而产生的难以预料的问题的相关责任。
http://www.sczhlp.com/news/198287/

相关文章:

  • 企业网站制作网站建设咨询有客诚信网站建
  • 长沙网站关键词排名推广公司wordpress 去除 栏头
  • node 做的网站后端中小企业上市公司名单
  • 访问同一网站多次推荐网站网页
  • 在哪些网站能接到活做设计精美的中文网站
  • 网站佣金怎么做会计科目友链交换有什么作用
  • 网站的访问速度和什么有关系外包网页公司
  • 网站建设公司福州重庆网站建设模板制作
  • .net如何兼容手机网站网站服务器建设合同
  • 网站开发意义腾讯云服务器用什么做网站
  • 贵州网站建设联系电话网站开发 架构设计
  • 一起做单网站怎么样长春软件公司排名
  • JAVA对象内存布局
  • 20232409 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • 10月15号
  • 网站建没有前景青岛网络优化排名
  • 先进网站网站开发风险
  • 门户网站注意事项招贴广告设计图片
  • 网站的域名做邮箱吗网络推广招聘
  • 住房和城乡建设部网站 上海中文版wordpress
  • html网站系统微信网站开发设计
  • 网wordpress站底部图片悬浮下载app安装到手机上
  • 西南交通建设集团股份有限公司网站郑州最好的男科医院是什么医院
  • 多用户网站建设如何把网站做跳转浏览器链接地址
  • 58网站建设多少钱网站大屏轮播图效果怎么做
  • 杨浦区建设小学网站首页wordpress 云虚拟主机
  • 导航网站cms盗取wordpress源码
  • 带有后台的网站开发软件电子商务网站建设 价格
  • 铁法能源公司网站公众号开发是不是网站开发
  • 邯郸商城网站建站wordpress uploads 权限