当前位置:网站首页>Secouer le son et se battre ~ prêter attention au blogueur
Secouer le son et se battre ~ prêter attention au blogueur
2022-06-28 04:11:00 【Gblfy】


Catalogue des articles
Un.、Concentrez - vous sur mon analyse des besoins
1. Suivez mon organigramme

2. Suivez mon aperçu du processus
- 1. Page vidéo courte Cliquez pour suivre
- 2. L'avant transporte l'utilisateur ID Et l'éditeur de vidéos courtes IDArrière - plan de la demande
- 3. Utilisateur de vérification des paramètres ID Et l'éditeur de vidéos courtes IDEst vide
- 3.1. Vide, Retour directement à l'invite avant
- 3.2.Pas vide, Le processus se poursuit
- 4.Transporter les utilisateursIDInterrogation de la base de données
- 5. Apportez l'éditeur de vidéos courtes IDInterrogation de la base de données
- 6.DoubleIDJugement
- 6.1. Vide, Retour directement à l'invite avant
- 6.2.Pas vide, Le processus se poursuit
- 7. Pour déterminer si l'autre personne se soucie de moi
- 7.1. Ne pas me suivre , Bits d'état d'amitié 0
- 7.2. J'ai fait attention à moi , Bits d'état d'amitié 1
- 7.2.1. Mettre à jour l'état de la relation de blogueur avec mes fans est 1
- 7.2.2. Enregistrer la chute de stock
- 8. Préserver ma relation de Fan avec le blogueur
- 9. Mon attention totale +1
- 10. Nombre total de fans de blogueurs
- 11. Mes liens avec les blogueurs =1
- 12.Retour à la réponse
3. Conception de la structure du tableau
CREATE TABLE `fans` (
`id` varchar(24) NOT NULL,
`vloger_id` varchar(24) NOT NULL COMMENT ' Auteur utilisateur id',
`fan_id` varchar(24) NOT NULL COMMENT 'Utilisateurs de fansid',
`is_fan_friend_of_mine` int(1) NOT NULL COMMENT ' Les fans sont vlogerAmis de, Si tu deviens ami , Ce champ doit être défini à 1, Si quelqu'un l'enlève , Les deux côtés doivent être réglés à 0',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `writer_id` (`vloger_id`,`fan_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Liste des fans\n\n';
2.、Concentrez - vous sur mon analyse de code source
Après avoir regardé la page vidéo courte , Changement de synchronisation de l'état de l'attention du Centre personnel
2.1. Front End
// Concentre - toi sur moi.
followMe() {
var me = this;
var myUserInfo = getApp().getUserInfoSession();
if (myUserInfo == null) {
uni.showToast({
duration: 3000,
title: "Veuillez vous connecter~",
icon: "none"
});
uni.navigateTo({
url: "../loginRegist/loginRegist",
animationType: "slide-in-bottom",
success() {
me.loginWords = "Veuillez vous connecter"
}
});
return;
}
var vlogerId = me.userPageId;
var userId = getApp().getUserInfoSession().id;
var serverUrl = app.globalData.serverUrl;
uni.request({
method: "POST",
header: {
headerUserId: userId,
headerUserToken: app.getUserSessionToken()
},
url: serverUrl + "/fans/follow?myId=" + userId + "&vlogerId=" + vlogerId,
success(result) {
if (result.data.status == 200) {
me.isFollow = true;
uni.setStorageSync("justFollowVlogerId", vlogerId);
// Nombre de fans rafraîchissant la page courante
var pendingInfo = me.pageUserInfo;
me.pageUserInfo.myFansCounts = pendingInfo.myFansCounts + 1;
} else {
uni.showToast({
title: result.data.msg,
icon: "none",
duration: 3000
});
}
}
});
},
2.2. Arrière - plan
controller
/**
* Attention
*
* @param myId Mes utilisateursID
* @param vlogerId Video Publisher ID
* @return
*/
@PostMapping("follow")
public GraceJSONResult follow(@RequestParam String myId,
@RequestParam String vlogerId) {
// Juge deuxidNe peut pas être vide
if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogerId)) {
return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR);
}
// Juger l'utilisateur actuel, Je ne peux pas me concentrer sur moi - même
if (myId.equalsIgnoreCase(vlogerId)) {
return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_RESPONSE_NO_INFO);
}
// Juge deuxidL'utilisateur correspondant existe - t - il?
Users vloger = userService.getUser(vlogerId);
Users myInfo = userService.getUser(myId);
// fixme: Deux utilisateursid Après avoir interrogé la base de données , C'est bien de se séparer ? Il vaut mieux combiner les jugements ?
if (myInfo == null || vloger == null) {
return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_RESPONSE_NO_INFO);
}
// Enregistrer les fans est lié à la base de données
fansService.doFollow(myId, vlogerId);
// Les fans des blogueurs +1,Mon attention+1
// Mon attention totale
redis.increment(REDIS_MY_FOLLOWS_COUNTS + ":" + myId, 1);
// Nombre total de fans de blogueurs
redis.increment(REDIS_MY_FANS_COUNTS + ":" + vlogerId, 1);
// Mes liens avec les blogueurs ,Dépendanceredis, Ne pas stocker la base de données ,ÉviterdbGoulot d'étranglement des performances
redis.set(REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + myId + ":" + vlogerId, "1");
return GraceJSONResult.ok();
}
/**
* Attention
*
* @param myId MonID
* @param vlogerId Video bloggerID
*/
@Transactional
@Override
public void doFollow(String myId, String vlogerId) {
String fid = sid.nextShort();
Fans fans = new Fans();
fans.setId(fid);
fans.setFanId(myId);
fans.setVlogerId(vlogerId);
// Pour déterminer si l'autre personne se soucie de moi , Si vous vous concentrez sur moi , Alors les deux parties doivent être amies
//TODO Attention aux paramètres ici Pour déterminer si l'autre personne se soucie de moi , Si vous vous concentrez sur moi , Alors les deux parties doivent être amies
Fans vloger = queryFansRelationship(vlogerId, myId);
if (vloger != null) {
fans.setIsFanFriendOfMine(YesOrNo.YES.type);
// Les fans sont vlogerAmis de, Si tu deviens ami , Ce champ doit être défini à 1, Si quelqu'un l'enlève , Les deux côtés doivent être réglés à 0
vloger.setIsFanFriendOfMine(YesOrNo.YES.type);
fansMapper.updateByPrimaryKeySelective(vloger);
} else {
// Les fans sont vlogerAmis de, Si tu deviens ami , Ce champ doit être défini à 1, Si quelqu'un l'enlève , Les deux côtés doivent être réglés à 0
fans.setIsFanFriendOfMine(YesOrNo.NO.type);
}
fansMapper.insert(fans);
// Message système:Attention
msgService.createMsg(myId, vlogerId, MessageEnum.FOLLOW_YOU.type, null);
}
/**
* Pour déterminer si l'autre personne se soucie de moi , Si vous vous concentrez sur moi , Alors les deux parties doivent être amies
*
* @param fanId Les fansID
* @param vlogerId Publication de vidéos courtesID
* @return
*/
public Fans queryFansRelationship(String fanId, String vlogerId) {
Example example = new Example(Fans.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("vlogerId", vlogerId);
criteria.andEqualTo("fanId", fanId);
List list = fansMapper.selectByExample(example);
Fans fan = null;
if (list != null && list.size() > 0 && !list.isEmpty()) {
fan = (Fans) list.get(0);
}
return fan;
}
Trois、Numéro de compte1Concentrez - vous sur le combat réel
3.1. Enregistrement des données avant l'attention
Trouvez deux comptes qui ne sont pas surveillés pour le test
Numéro de compte:Numéro de queue~5217
Un surnom.: La source du Palais
Total de l'attention :2
Nombre de fans:1

Numéro de compte:Numéro de queue~0009
Un surnom.:Petite beauté.
Total de l'attention :0
Nombre de fans:1

2 Relations de compte ~ Les deux n'ont pas prêté attention
3.2. Numéro de compte1Attention au numéro de compte2
- Utiliser“ Le numéro de queue est 5217”Connexion au compte

Voir la page d'accueil par le numéro de fin 0009 Le compte Little Beauty de 
Cliquez sur suivre
3.3. Numéro de compte1Changements dans les données après l'attention
Numéro de queue~5217Attention Numéro de queue~0009Après le compte de,Changements dans les données
Numéro de queue~5217Changements dans les données
Total de l'attention :Par2Est devenu3
Nombre de fans:1
Numéro de queue~0009Changements dans les données
Total de l'attention :Ça n'a pas changé. Toujours 0
Nombre de fans:Par1Est devenu2
Variation des données du tableau:
Tableau des utilisateurs
Numéro de queue~0009 userid=21100598TZ9XG6RP
Numéro de queue~5217 userid=220620BZ2DH0KP94
Liste des fans
Ajouter une nouvelle donnée,Video blogger(21100598TZ9XG6RP) J'étais parmi les fans (220620BZ2DH0KP94)
2206279H48HX0T54 21100598TZ9XG6RP 220620BZ2DH0KP94 0

Quatre、. Numéro de compte2Concentrez - vous sur le combat réel
4.1. Numéro de compte2Attention au numéro de compte1
Utilisez le numéro de queue ~0009Connexion au compte
Aller à la page d'accueil~ Dans la liste des vidéos , Voir si l'état de l'attention est -Aucune attention
Cliquez sur suivre
L'état de l'attention est -Attention

4.2. Changements dans les données après l'attention
Numéro de queue~0009Attention Numéro de queue~5217Après le compte de,Changements dans les données
Numéro de queue~5217Changements dans les données
Total de l'attention :3
Nombre de fans:Par1Est devenu2
Numéro de queue~0009Changements dans les données
Total de l'attention :Par Est devenu1
Nombre de fans:Toujours2
Variation des données du tableau:
Tableau des utilisateurs
Numéro de queue~0009 userid=21100598TZ9XG6RP
Numéro de queue~5217 userid=220620BZ2DH0KP94
Liste des fans
Ajouter une nouvelle donnée,
- moi.(220620BZ2DH0KP94) Les fans de 0009(21100598TZ9XG6RP)
Video blogger(21100598TZ9XG6RP) J'étais parmi les fans (220620BZ2DH0KP94)
Et notre relation s'est transformée en amitié ,Tous les états sont0
2206279P5FYBZYNC 220620BZ2DH0KP94 21100598TZ9XG6RP 1
2206279H48HX0T54 21100598TZ9XG6RP 220620BZ2DH0KP94 1

4.3. redisStructure des données de stockage

边栏推荐
- 11_ Deliberate practice and elaboration
- Talking about cloud primitiveness, we have to talk about containers
- ELK 搭建日志分析系统 + Zipkin服务链路追踪整合
- English grammar_ Adjective / adverb Level 3 - Comparative
- 开关电源—Buck电路原理及其仿真
- 第一个.net core MVC项目
- 利用ELK 搭建日志分析系统(二)—— 部署安装
- 歐洲家具EN 597-1 跟EN 597-2兩個阻燃標准一樣嗎?
- How to apply for ASTM E108 flame retardant test for photovoltaic panels?
- Detailed explanation of KVM common commands
猜你喜欢

Detailed explanation of iptables firewall rules and firewalld firewall rules

机器学习入门笔记

Particle theory of light (photoelectric effect / Compton effect)

第一章 Bash 入门

Problems with cat and dog queues

In the era of video explosion, who is supporting the high-speed operation of video ecological network?

English语法_形容词/副词3级-比较级_常用短语

光伏板怎么申请ASTM E108阻燃测试?

How to write a software test report? Here comes the third party performance report template

Iso8191 test is mentioned in as 3744.1. Are the two tests the same?
随机推荐
MSc 307 (88) (2010 FTPC code) Part 2 smoke and toxicity test
gcd最大公约数
2022年6月对自己近况的一次总结
第一章 Bash 入门
Principle and Simulation of switching power supply buck circuit
MSC 307(88) (2010 FTPC Code)第2部分烟气和毒性测试
leetcode:494. All methods of adding and subtracting operators to the array to get the specified value
In the era of video explosion, who is supporting the high-speed operation of video ecological network?
Pinda general permission system (day 5~day 6)
光伏板怎么申请ASTM E108阻燃测试?
等保2.0密码要求是什么?法律依据有哪些?
La norme européenne en 597 - 1 pour les meubles est - elle la même que les deux normes en 597 - 2 pour les ignifuges?
揭开SSL的神秘面纱,了解如何用SSL保护数据
多项目开发入门,基础设计 类库项目使用
English grammar_ Adjective / adverb Level 3 - Comparative_ Useful Expressions
02 MongoDB数据类型、重要概念以及shell常用指令
开关电源—Buck电路原理及其仿真
Are the two flame retardant standards of European furniture en 597-1 and en 597-2 the same?
ERP升级的另一种选择,MES系统
Introduction notes to machine learning