Creación de una aplicación de video corto similar a Douyin desde cero: desarrollo del módulo comercial de mensajes de back-end (2): final de la versión básica

El proyecto se actualiza continuamente:

Columna de aplicación de video corto de vibrato de imitación

Tabla de contenido

Almacenamiento de mensajes del sistema

Lista de mensajes del sistema de consulta de página MongoDB

eliminar mensajes del sistema


Almacenamiento de mensajes del sistema

Aún queda un último like y comentario

Si te gusta tu comentario aquí, la portada de tu video será enviada de vuelta.

 Encuentre la ruta similar de CommentController

Se deben inyectar dos servicios: 

 Aquí copiamos el código que escribimos antes y hacemos algunas modificaciones:

 

 Aquí necesitamos obtener un vlogId, que no está disponible aquí, por lo que necesitamos escribir una interfaz para obtenerlo:

 

 lograr: 

Entonces podemos llamarlo a través de commentService:

 //系统消息:点赞评论
        Comment comment =commentService.getComment(commentId);
        Vlog vlog = vlogService.getVlog(comment.getVlogId());
        Map msgContent = new HashMap();
        msgContent.put("vlogId",vlog.getId());
        msgContent.put("vlogCover",vlog.getCover());
        msgContent.put("commentId",commentId);

        msgService.createMsg(userId,
                comment.getCommentUserId(),
                MessageEnum.LIKE_COMMENT.type,
                msgContent);

Después de escribir, hacemos una prueba, nos gusta los comentarios y las respuestas.

 Luego vaya a nuestro MongoDB para ver

 

 

Lista de mensajes del sistema de consulta de página MongoDB

Después de completar la operación de envío de mensajes del sistema, necesitamos tener una operación de consulta en la interfaz de mensajes, y la consulta está paginada

Primero escribamos nuestra capa de servicio:

 Aquí implementamos Repositorio, consulta de condición personalizada

Luego en la implementación del Servicio:

 De hecho, todavía es necesario hacer un juicio aquí, para juzgar si le presté atención antes, si no, habrá una señal de que los fanáticos regresan.

Solo necesitamos expandir el campo isFriend en MO,

 @Override
    public List<MessageMO> queryList(String toUserId, Integer page, Integer pageSize) {

        Pageable pageable = (Pageable) PageRequest.of(page,
                                                        pageSize,
                                                        Sort.Direction.DESC,
                                                        "CreateTime");
        List<MessageMO> list = messageRepository.findAllByToUserIdOrderByCreateTimeDesc(toUserId,pageable);

        for(MessageMO msg: list){
            //如果类型是关注消息,则需要查询我之前是否关注过他,用于在前端标记“互粉”
            if(msg.getMsgType() != null &&msg.getMsgType() == MessageEnum.FOLLOW_YOU.type){
              Map map =   msg.getMsgContent();
              if(map == null){
                  map = new HashMap();
              }
            String relationship = redis.get(REDIS_FANS_AND_VLOGGER_RELATIONSHIP+":"+msg.getToUserId()+":"+msg.getFromUserId());
            if(StringUtils.isNotBlank(relationship)&&relationship.equalsIgnoreCase("1")){
              map.put("isFriend",true);
            }else {
                map.put("isFriend",false);
            }
            msg.setMsgContent(map);
            }
        }
        return list;
    }

 Aquí también podemos comprobar el front-end

 Aquí podemos construir nuestra interfaz de back-end

 Construimos un MsgController en el backend:

@Slf4j
@Api(tags = "MsgController 消息功能模块接口")
@RequestMapping("Msg")
@RestController
public class MsgController {

    @Autowired
    private MsgService msgService;

    @GetMapping("list")
    public GraceJSONResult list(@RequestParam String userId,
                                @RequestParam Integer page,
                                @RequestParam Integer pageSize){

        //mongoDB 从0分页,区别于数据库
        if(page == null){
            page = COMMON_START_PAGE_ZERO;
        }
        if(pageSize == null){
            pageSize=COMMON_PAGE_SIZE;
        }
        List<MessageMO> list = msgService.queryList(userId, page, pageSize);
        return GraceJSONResult.ok(list);
        
    }


}

Comience la prueba:

 

eliminar mensajes del sistema

Primero podemos pensar dónde puede comenzar la eliminación

Primero, podemos presionar prolongadamente o deslizar hacia la derecha en nuestra página de mensajes para eliminar

El segundo tipo está vinculado al comportamiento de nuestro usuario. Si dejo de seguirte, elimina este mensaje de atención.

Ambos tipos de mensajes se pueden activar para eliminar, puede probarlo usted mismo.

Podemos usar una pulsación larga para eliminar aquí, pruebe el método usted mismo.

 

Hasta el momento, la producción de la versión básica de la aplicación de video corto tipo Douyin ha llegado a su fin. Desde el primer artículo de esta columna hasta el presente, tomó alrededor de un mes construir el proyecto desde cero, para escribir nuestro código. , y complete la prueba Luego, más tarde actualizaré la versión avanzada y espero subirla al servidor.

En el pasado, si tiene preguntas sobre el código, puede enviarme un mensaje privado si no lo entiende. Los amigos que quieran el código fuente también pueden chatear conmigo en privado~

Supongo que te gusta

Origin blog.csdn.net/m0_64005381/article/details/127771532
Recomendado
Clasificación