免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      記錄來訪者信息界面功能 含陌生、好友

      POJO

      import lombok.AllArgsConstructor;

      import lombok.Data;

      import lombok.NoArgsConstructor;

      import org.bson.types.ObjectId;

      import org.springframework.data.mongodb.core.mapping.Document;

      @Data

      @NoArgsConstructor

      @AllArgsConstructor

      @Document(collection = “visitors”)

      public class Visitors implements java.io.Serializable{

      private static final long serialVersionUID = 2811682148052386573L;

      private ObjectId id;

      private Long userId; //我的id

      private Long visitorUserId; //來訪用戶id

      private String from; //來源,如首頁、圈子等

      private Long date; //來訪時間

      private Double score; //得分

      }

      ====================================================

      API

      import com.tanhua.dubbo.server.pojo.Visitors;

      import java.util.List;

      public interface VisitorsApi {

      /**

      * 保存訪客數(shù)據(jù)

      *

      * @param userId 我的id

      * @param visitorUserId 訪客id

      * @param from 來源

      * @return

      */

      String saveVisitor(Long userId, Long visitorUserId, String from);

      /**

      * 查詢我的訪客數(shù)據(jù),存在2種情況:

      * 1. 我沒有看過我的訪客數(shù)據(jù),返回前5個訪客信息

      * 2. 之前看過我的訪客,從上一次查看的時間點(diǎn)往后查詢5個訪客數(shù)據(jù)

      *

      * @param userId

      * @return

      */

      List queryMyVisitor(Long userId);

      }

      ==============================================================

      API IMPL

      import cn.hutool.core.convert.Convert;

      import cn.hutool.core.date.DateUtil;

      import cn.hutool.core.util.ObjectUtil;

      import com.alibaba.dubbo.config.annotation.Service;

      import com.tanhua.dubbo.server.pojo.RecommendUser;

      import com.tanhua.dubbo.server.pojo.Visitors;

      import org.bson.types.ObjectId;

      import org.springframework.beans.factory.annotation.Autowired;

      import org.springframework.data.domain.PageRequest;

      import org.springframework.data.domain.Sort;

      import org.springframework.data.mongodb.core.MongoTemplate;

      import org.springframework.data.mongodb.core.query.Criteria;

      import org.springframework.data.mongodb.core.query.Query;

      import org.springframework.data.redis.core.RedisTemplate;

      import java.util.List;

      @Service(version = “1.0.0”)

      public class VisitorsApiImpl implements VisitorsApi {

      @Autowired

      private MongoTemplate mongoTemplate;

      private static final String VISITOR_REDIS_KEY = “VISITOR_USER”;

      @Autowired

      private RedisTemplate redisTemplate;

      @Override

      public String saveVisitor(Long userId, Long visitorUserId, String from) {

      //校驗(yàn)

      if (!ObjectUtil.isAllNotEmpty(userId, visitorUserId, from)) {

      return null;

      }

      //查詢訪客用戶在今天是否已經(jīng)記錄過,如果已經(jīng)記錄過,不再記錄

      String today = DateUtil.today();

      Long minDate = DateUtil.parseDateTime(today + ” 00:00:00″).getTime();

      Long maxDate = DateUtil.parseDateTime(today + ” 23:59:59″).getTime();

      Query query = Query.query(Criteria.where(“userId”).is(userId)

      .and(“visitorUserId”).is(visitorUserId)

      .andOperator(Criteria.where(“date”).gte(minDate),

      Criteria.where(“date”).lte(maxDate)

      )

      );

      long count = this.mongoTemplate.count(query, Visitors.class);

      if (count > 0) {

      //今天已經(jīng)記錄過的

      return null;

      }

      Visitors visitors = new Visitors();

      visitors.setFrom(from);

      visitors.setVisitorUserId(visitorUserId);

      visitors.setUserId(userId);

      visitors.setDate(System.currentTimeMillis());

      visitors.setId(ObjectId.get());

      //存儲數(shù)據(jù)

      this.mongoTemplate.save(visitors);

      return visitors.getId().toHexString();

      }

      @Override

      public List queryMyVisitor(Long userId) {

      // 查詢前5個訪客數(shù)據(jù),按照訪問時間倒序排序

      // 如果用戶已經(jīng)查詢過列表,記錄查詢時間,后續(xù)查詢需要按照這個時間往后查詢

      // 上一次查詢列表的時間

      Long date = Convert.toLong(this.redisTemplate.opsForHash().get(VISITOR_REDIS_KEY, String.valueOf(userId)));

      PageRequest pageRequest = PageRequest.of(0, 5, Sort.by(Sort.Order.desc(“date”)));

      Query query = Query.query(Criteria.where(“userId”).is(userId))

      .with(pageRequest);

      if (ObjectUtil.isNotEmpty(date)) {

      query.addCriteria(Criteria.where(“date”).gte(date));

      }

      List visitorsList = this.mongoTemplate.find(query, Visitors.class);

      //查詢每個來訪用戶的得分

      for (Visitors visitors : visitorsList) {

      Query queryScore = Query.query(Criteria.where(“toUserId”)

      .is(userId).and(“userId”).is(visitors.getVisitorUserId())

      );

      RecommendUser recommendUser = this.mongoTemplate.findOne(queryScore, RecommendUser.class);

      if(ObjectUtil.isNotEmpty(recommendUser)){

      visitors.setScore(recommendUser.getScore());

      }else {

      //默認(rèn)得分

      visitors.setScore(90d);

      }

      }

      return visitorsList;

      }

      }

      ==============================================================

      APP VO API

      import lombok.AllArgsConstructor;

      import lombok.Data;

      import lombok.NoArgsConstructor;

      @Data

      @NoArgsConstructor

      @AllArgsConstructor

      public class VisitorsVo {

      private Long id;

      private String avatar;

      private String nickname;

      private String gender;

      private Integer age;

      private String[] tags;

      private Integer fateValue;

      }

      ============================================================

      controller

      /**

      * 誰看過我

      *

      * @return

      */

      @GetMapping(“visitors”)

      public ResponseEntity queryVisitorsList(){

      try {

      List list = this.quanZiService.queryVisitorsList();

      return ResponseEntity.ok(list);

      } catch (Exception e) {

      e.printStackTrace();

      }

      return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();

      }

      ==============================================================

      service 核心

      public List queryVisitorsList() {

      User user = UserThreadLocal.get();

      List visitorsList = this.visitorsApi.queryMyVisitor(user.getId());

      if (CollUtil.isEmpty(visitorsList)) {

      return Collections.emptyList();

      }

      List userIds = CollUtil.getFieldValues(visitorsList, “visitorUserId”);

      List userInfoList = this.userInfoService.queryUserInfoByUserIdList(userIds);

      List visitorsVoList = new ArrayList();

      for (Visitors visitor : visitorsList) {

      for (UserInfo userInfo : userInfoList) {

      if (ObjectUtil.equals(visitor.getVisitorUserId(), userInfo.getUserId())) {

      VisitorsVo visitorsVo = new VisitorsVo();

      visitorsVo.setAge(userInfo.getAge());

      visitorsVo.setAvatar(userInfo.getLogo());

      visitorsVo.setGender(userInfo.getSex().name().toLowerCase());

      visitorsVo.setId(userInfo.getUserId());

      visitorsVo.setNickname(userInfo.getNickName());

      visitorsVo.setTags(StringUtils.split(userInfo.getTags(), ‘,’));

      visitorsVo.setFateValue(visitor.getScore().intValue());

      visitorsVoList.add(visitorsVo);

      break;

      }

      }

      }

      return visitorsVoList;

      }

      =============================================================

      service 記錄來訪者 數(shù)據(jù)

      public TodayBest queryUserInfo(Long userId) {

      UserInfo userInfo = this.userInfoService.queryUserInfoByUserId(userId);

      if(ObjectUtil.isEmpty(userInfo)){

      return null;

      }

      TodayBest todayBest = new TodayBest();

      todayBest.setId(userId);

      todayBest.setAge(userInfo.getAge());

      todayBest.setGender(userInfo.getSex().name().toLowerCase());

      todayBest.setNickname(userInfo.getNickName());

      todayBest.setTags(Convert.toStrArray(StrUtil.split(userInfo.getTags(),’,’)));

      todayBest.setAvatar(userInfo.getLogo());

      //緣分

      User user = UserThreadLocal.get();

      todayBest.setFateValue(this.recommendUserService.queryScore(userId, user.getId()).longValue());

      //記錄來訪用戶

      this.visitorsApi.saveVisitor(userId, user.getId(), “個人主頁”);

      return todayBest;

      }

      =========================================================

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年6月19日 06:35
      下一篇 2022年6月19日 06:35

      相關(guān)推薦

      • ios手游模擬器(手游模擬器ios)

        本文主要講的是ios手游模擬器,以及和手游模擬器ios相關(guān)的知識,如果覺得本文對您有所幫助,不要忘了將本文分享給朋友。 哪個iOS模擬器能多開手游賬號?可以推薦個好用的模擬器給我嗎…

        2022年11月27日
      • 短視頻策劃內(nèi)容的3個要點(diǎn)(短視頻策劃內(nèi)容怎么做)

        短視頻在制作時,內(nèi)容框架非常重要。如果直奔主題,然后結(jié)束,聚卓告訴你,這樣的短視頻已經(jīng)過時了?,F(xiàn)在的短視頻需要框架的,但不是任何框架,它需要一種易于理解和消化的框架。而且,現(xiàn)在大多…

        2022年11月27日
      • 推薦48個微商引流推廣的方法(微商引流推廣的方法有哪些)

        微商引流技能01——同行互推 資源共享,大家才會共贏。加入你是做穴位貼的,你的朋友是做化妝品的,這是兩個沒有交集的行業(yè),你們可以友情互推,這樣每個月的資源就都擴(kuò)大了一倍,而且這些資…

        2022年11月27日
      • 美團(tuán)第三季度實(shí)現(xiàn)營收626億元,即時配送訂單量增至50億筆

        新京報訊(記者秦勝南)11月25日,美團(tuán)發(fā)布業(yè)績公告顯示,第三季度營收為626億元,較去年同比增長28.2%,凈利潤為12.2億元。第三季度,美團(tuán)即時配送訂單數(shù)增長至50億筆。截至…

        2022年11月27日
      • 喬任梁遺體圖片(喬任梁死亡現(xiàn)場照遺體)

        今天小編給各位分享喬任梁遺體圖片的知識,其中也會對喬任梁死亡現(xiàn)場照遺體進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! 2016年深夜,喬任梁頭戴塑料袋慘死家…

        2022年11月26日
      • 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)論文(計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)論文七千字)

        今天小編給各位分享計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)論文的知識,其中也會對計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)論文七千字進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! 計(jì)算機(jī)網(wǎng)絡(luò)方面的論文3000字…

        2022年11月26日
      • 明日之后怎么加好友(明日之后怎么加好友跨區(qū))

        簡要回答 明日之后中玩家可以跟其他玩家進(jìn)行互動,可以彼此添加好友。如果想要添加好友,此時該怎么進(jìn)行操作呢明日之后加好友的方式有下面這幾種。 01 你可以打開游戲界面,點(diǎn)擊聊天框,然…

        2022年11月25日
      • 個人怎么做抖音帶貨(個人做抖音帶貨能賺錢嗎)

        抖音如今是大家很熟悉的短視頻平臺,不過現(xiàn)在的抖音卻不只是短視頻那么簡單,它的功能非常豐富,其中一個就是可以帶貨,相信很多小伙伴都有在抖音上買過東西,抖音如今的變現(xiàn)能力也是不容小覷的…

        2022年11月25日
      • 全民K歌升級新版本7.0之后,有哪些隱藏功能?

        作者:高百烈來源:知乎 這個功能,舊版并沒有,要升級到全新的全民K歌7.0版本才能發(fā)現(xiàn)。 作為朋友圈當(dāng)代K歌之王,我費(fèi)了不少功夫才搶到內(nèi)測版本。有一說一,全民K歌的路子真的很野,新…

        2022年11月25日
      • 5+3疫情防控從哪天開始算(遼寧疫情防控最新政策)

        最近有關(guān)國內(nèi)各地的疫情大家也都有在持續(xù)關(guān)注,目前國內(nèi)各地疫情隔離時間也根據(jù)二十條防控措施有了新的調(diào)整。那么,5+3疫情防控從哪天開始算?對于密接的5+3隔離時間計(jì)算大家還是比較關(guān)心…

        2022年11月25日

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時間:周一至周五,10:30-18:30,節(jié)假日休息