亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

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

                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é)假日休息