交友项目【首页推荐,今日佳人,佳人信息】

这篇具有很好参考价值的文章主要介绍了交友项目【首页推荐,今日佳人,佳人信息】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1:首页推荐

1.1:接口地址

1.2:流程分析

1.3:代码实现

2:今日佳人

1.1:接口地址

1.2:流程分析

1.3:代码实现

3:佳人信息

1.1:接口地址

1.2:流程分析

1.3:代码实现


1:首页推荐

交友项目【首页推荐,今日佳人,佳人信息】

1.1:接口地址

地址: http://192.168.136.160:3000/project/19/interface/api/118

交友项目【首页推荐,今日佳人,佳人信息】

1.2:流程分析

交友项目【首页推荐,今日佳人,佳人信息】

1.3:代码实现

与前端交互的app-server模块

交友项目【首页推荐,今日佳人,佳人信息】

controller层实现

    @GetMapping("/recommendation")
    public ResponseEntity findAllrecommendation(RecommendPageVo recommendPageVo){
        ResultList allrecommendation = recommendService.findAllrecommendation(recommendPageVo, UserHolder.getUserId());
        return ResponseEntity.ok(allrecommendation);
    }

service层实现

    @DubboReference
    private RecommendUserApi recommendUserApi;
    @DubboReference
    private UserInfoApi userInfoApi;


public ResultList findAllrecommendation(RecommendPageVo recommendPageVo, Long userId) {

        ResultList allrecommendation = recommendUserApi.findAllrecommendation(recommendPageVo, userId);
        List<RecommendUser> items = (List<RecommendUser>)allrecommendation.getItems();
        //根据ids查询详情
        List<Long> ids = CollUtil.getFieldValues(items, "userId", Long.class);
        //构建条件
        UserInfo userInfo = new UserInfo();
        userInfo.setGender(recommendPageVo.getGender());
        userInfo.setAge(Integer.valueOf(recommendPageVo.getAge()));
        System.out.println(userInfo);
        Map<Long, UserInfo> map = userInfoApi.findByids(ids, userInfo);

        List<UserInfoVo> userInfoList = new ArrayList<>();

        for (RecommendUser item : items) {
            UserInfo userInfo1 = map.get(item.getUserId());
            UserInfoVo userInfoVo = new UserInfoVo();
            if (userInfo1 !=null){
                userInfoVo.setId(userInfo1.getId());
                userInfoVo.setAge(userInfo1.getAge());
                userInfoVo.setAvatar(userInfo1.getAvatar());
                userInfoVo.setGender(userInfo1.getGender());
                userInfoVo.setFateValue(item.getScore().intValue());
                userInfoVo.setNickname(userInfo1.getNickname());
                String[] split = userInfo1.getTags().split(",");
                userInfoVo.setTags(split);
                userInfoList.add(userInfoVo);
            }
        }
        allrecommendation.setItems(userInfoList);
        return allrecommendation;
    }

统一封装接口的模块

/**
 * @Author 爱吃豆的土豆、
 * @Date 2023/4/7 16:09
 */
public interface RecommendUserApi {
    ResultList findAllrecommendation(RecommendPageVo recommendPageVo, Long userId);

    UserInfoVo findtodayBest(Long userId);

    UserInfoVo findUserInfo(Long id, Long userId);
}

mongo提供者模块(提供相关接口的实现)

    @Override
    public ResultList findAllrecommendation(RecommendPageVo recommendPageVo, Long userId) {
        Criteria criteria = Criteria.where("toUserId").is(userId);
        //查询总数
        Query query = new Query(criteria);
        long count = mongoTemplate.count(query, RecommendUser.class);

        //查询当前页的数据列表
        Query querylimit = new Query(criteria).limit(recommendPageVo.getPagesize()).skip((recommendPageVo.getPage() - 1)*recommendPageVo.getPagesize()).with(Sort.by(Sort.Order.desc("score")));

        List<RecommendUser> recommendUserList = mongoTemplate.find(querylimit, RecommendUser.class);

        ResultList resultList = new ResultList<>();

        resultList.setItems(recommendUserList);
        //设置列表
        //设置当前页码
        resultList.setPage(recommendPageVo.getPage());
        //设置总记录数
        resultList.setCounts((int) count);
        //设置页大小
        resultList.setPagesize(recommendPageVo.getPagesize());
        //设置总页数
        resultList.setPages((int) (count/recommendPageVo.getPagesize()));

        return resultList;
    }

2:今日佳人

交友项目【首页推荐,今日佳人,佳人信息】

1.1:接口地址

地址: http://192.168.136.160:3000/project/19/interface/api/103

1.2:流程分析

缘分值是根据平台算法推算出的缘分值得分,将用户的缘分值存放到mongodb数据库中,这里通过当前登录用户的id,在系统中找到该用户的所有推荐用户,将推荐用户的缘分值进行降序找到最高缘分值用户,进行展示今日佳人。

1.3:代码实现

 与前端交互的app-server模块

交友项目【首页推荐,今日佳人,佳人信息】

controller层实现

    @GetMapping("/todayBest")
    public ResponseEntity findtodayBest(){
        UserInfoVo userInfoVo = recommendService.findtodayBest(UserHolder.getUserId());
        return ResponseEntity.ok(userInfoVo);
    }

service层实现

    public UserInfoVo findtodayBest(Long userId) {
        UserInfoVo userInfoVo = recommendUserApi.findtodayBest(userId);
        return userInfoVo;
    }

统一封装接口的模块

    UserInfoVo findtodayBest(Long userId);

提供者模块(提供相关接口的实现)

    @Override
    public UserInfoVo findtodayBest(Long userId) {
        Query query = new Query();
        //创建等值判断
        Criteria criteria = Criteria.where("toUserId").is(userId);
        Sort by = Sort.by(Sort.Order.desc("score"));
        query.addCriteria(criteria);
        query.with(by);

        RecommendUser one = mongoTemplate.findOne(query, RecommendUser.class);

        //查询数据
        UserInfo userInfo = userInfoMapper.selectById(one.getUserId());
        UserInfoVo userInfoVo = new UserInfoVo();
        userInfoVo.setId(userInfo.getId());
        userInfoVo.setTags(userInfo.getTags().split(","));
        userInfoVo.setAge(userInfo.getAge());
        userInfoVo.setNickname(userInfo.getNickname());
        userInfoVo.setGender(userInfo.getGender());
        userInfoVo.setAvatar(userInfo.getAvatar());
        userInfoVo.setFateValue(one.getScore().intValue());

        return userInfoVo;
    }

3:佳人信息

交友项目【首页推荐,今日佳人,佳人信息】

1.1:接口地址

地址: http://192.168.136.160:3000/project/19/interface/api/103

交友项目【首页推荐,今日佳人,佳人信息】

1.2:流程分析

通过接收到前端传入的用户id,在MySQL数据库中查询找到对应的用户信息封装返回。

1.3:代码实现

 与前端交互的app-server模块

交友项目【首页推荐,今日佳人,佳人信息】

controller层实现

    @GetMapping("/{id}/personalInfo")
    public ResponseEntity personalInfo(@PathVariable("id") Long id){
        UserInfoVo userInfoVo = recommendService.findUserInfo(id,UserHolder.getUserId());
        return ResponseEntity.ok(userInfoVo);
    }

service层实现

    public UserInfoVo findUserInfo(Long id, Long userId) {
        if (id == userId){
            UserInfo user = userInfoApi.findUser(userId);
            UserInfoVo userInfoVo = UserInfoVo.init(user, 100);
            return userInfoVo;
        }
        return recommendUserApi.findUserInfo(id,userId);
    }

UserInfoVo.init()静态方法:在对象内部处理信息的封装

    public static UserInfoVo init(UserInfo userInfo,Integer fateValue) {
        UserInfoVo userInfoVo = new UserInfoVo();
        BeanUtils.copyProperties(userInfo,userInfoVo);

        String[] split = userInfo.getTags().split(",");
        userInfoVo.tags = split;
        userInfoVo.setFateValue(fateValue);
        return userInfoVo;
    }

统一封装接口的模块

    public UserInfo findUser(Long id);

提供者模块(提供相关接口的实现)文章来源地址https://www.toymoban.com/news/detail-419853.html

    @Override
    public UserInfo findUser(Long id) {
        UserInfo userInfo = this.userInfoMapper.selectById(id);
        return userInfo;
    }

到了这里,关于交友项目【首页推荐,今日佳人,佳人信息】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android App开发实战项目之给用户推荐旅游信息图片(附源码 简单易懂)

    需要全部源码请点赞关注收藏后评论区留言~~~ 假定用户打开一个旅游App想看看哪里风景比较优美,那么App应当展示各地的风景名声图片,为了让界面不太呆板,可以考虑交错显示风景图片,接着用户向下拉动页面,想要刷新界面浏览更多的图片,此时App界面响应下拉刷新手势

    2024年02月08日
    浏览(46)
  • flutter开发实战-实现首页分类目录入口切换功能

    。 在开发中经常遇到首页的分类入口,如美团的美食团购、打车等入口,左右切换还可以分页更多展示。 在pubspec.yaml引入 由于我这里按照一页8条展示,两行四列展示格式。 当列表list传入的控件时候,一共的页数为 通过列表,一页数量计算每一页应该展示多少个按钮。 一

    2024年02月14日
    浏览(55)
  • 6月14日,今日信息差

    1、 人社部:人口红利没有消失,新的人才红利正在形成 。从素质看,人口素质稳步提升,2022年16至59岁劳动年龄人口平均受教育年限达到10.9年,我们的人口红利没有消失,新的人才红利正在形成 2、 人社部:稳妥实施好养老保险全 国统筹,进一步完善个人养老金配套政策

    2024年02月09日
    浏览(29)
  • 5月31日,今日信息差

    1、在2023中关村论坛的重大科技成果专场发布会上,一批 面向世界科技前沿、面向经济主战场、面向国家重大需求、面向人民生命健康 的重大科技成果正式发布,涵盖通用视觉大模型、30微米厚度柔性可折叠玻璃、钠离子电池、新一代人造太阳、北斗卫星通信融入大众智能手

    2024年02月07日
    浏览(28)
  • 4月24日,今日信息差

    1、一季度全国城镇新增就业297万人,稳就业政策将优化调整 2、伦敦金属交易所调整部分商品保证金标准 3、亚洲最大推力 700 吨液体火箭发动机试验台考台试车圆满成功 4、我国将在 2033 年前后实施「长征九号」重型火箭两发试验箭飞行验证 5、全球知名 IT 巨头纬创泰州工厂

    2023年04月25日
    浏览(34)
  • 4月23日,今日信息差

    1、京东健康皮肤医院正式上线 2、蚂蚁集团再捐1亿元支持内蒙古种树治沙 3、苹果MacBook组装商广达将投资1.2亿美元在越南建电脑制造厂 4、用友与百度签署战略合作协议 5、马斯克:星舰可能在一两个月后准备再次发射 6、格芯起诉IBM 恐波及日本2nm芯片计划 7、河北南部电网首

    2024年02月06日
    浏览(31)
  • 5月9日,今日信息差

    1、网信部门工作组进驻斗鱼平台,针对斗鱼平台存在的色情、低俗等严重生态问题,进驻斗鱼平台开展为期1个月的集中整改督导 2、新一代试管婴儿技术问世,甲基化水平优良的胚胎的临床检验活产率达到72%,远高于当前全球辅助生殖活产率不足30%的指标 3、周杰伦官宣数智

    2024年02月04日
    浏览(29)
  • 5月21日,今日信息差

    1、内地与澳门合作研制首颗科学卫星“澳门科学一号”成功发射,该卫星作为 国际首颗低纬度地磁场与空间环境 的科学探测卫星, 国内地球磁场探测精度最高的卫星 ,将显著提高我国空间磁测技术水平 2、塔里木油田 打穿 地下 5000米砾石层 ,一举 刷新国内333.4毫米井眼

    2024年02月05日
    浏览(30)
  • 6月1日,今日信息差

    1、菜鸟: 天猫618包裹在超300城实现半日达 。据介绍,今年以来,菜鸟率先推出优选仓配半日次,并联合申通推出智选仓配次日达,将以往的配送半日达、次日达, 提升到从支付到签收的全链路半日达、次日达 ​2、2023年六一档票房破亿。据灯塔专业版实时数据,截至2023年

    2024年02月07日
    浏览(23)
  • 5月2日,今日信息差

    1、小鹏G9下半年将在广州黄埔区开展自动驾驶载客测试 2、海南自贸港完成首单进境飞机喷涂及维修业务 3、B站举办第二届纪录片开放周,向全国用户免费开放3572部纪录片 4、马云被东京大学聘为客座教授 5、李家超:港车北上是推动大湾区区内经济融合发展的另一重要里程碑

    2024年02月02日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包