com.daphne.es.personal.message.service.MessageService.java Source code

Java tutorial

Introduction

Here is the source code for com.daphne.es.personal.message.service.MessageService.java

Source

/**
 * 
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 */
package com.daphne.es.personal.message.service;

import com.daphne.es.common.service.BaseService;
import com.daphne.es.personal.message.entity.Message;
import com.daphne.es.personal.message.entity.MessageState;
import com.daphne.es.personal.message.repository.MessageRepository;

import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;

/**
 * <p>User: 
 * <p>Date: 13-5-22 ?2:40
 * <p>Version: 1.0
 */
@Service
public class MessageService extends BaseService<Message, Long> {

    private MessageRepository getMessageRepository() {
        return (MessageRepository) baseRepository;
    }

    /**
     * ?? ???
     *
     * @param senderId
     * @param oldState
     * @param newState
     */
    public Integer changeSenderState(Long senderId, MessageState oldState, MessageState newState) {
        Date changeDate = new Date();
        return getMessageRepository().changeSenderState(senderId, oldState, newState, changeDate);
    }

    /**
     * ? ???
     *
     * @param receiverId
     * @param oldState
     * @param newState
     */
    public Integer changeReceiverState(Long receiverId, MessageState oldState, MessageState newState) {
        Date changeDate = new Date();
        return getMessageRepository().changeReceiverState(receiverId, oldState, newState, changeDate);
    }

    /**
     * ??? ?
     *
     * @param deletedState
     */
    public Integer clearDeletedMessage(MessageState deletedState) {
        return getMessageRepository().clearDeletedMessage(deletedState);
    }

    /**
     * ?
     *
     * @param oldStates
     * @param newState
     * @param expireDays ?- ????
     */
    public Integer changeState(ArrayList<MessageState> oldStates, MessageState newState, int expireDays) {
        Date changeDate = new Date();
        Integer count = getMessageRepository().changeSenderState(oldStates, newState, changeDate,
                DateUtils.addDays(changeDate, -expireDays));
        count += getMessageRepository().changeReceiverState(oldStates, newState, changeDate,
                DateUtils.addDays(changeDate, -expireDays));
        return count;
    }

    /**
     * ?
     *
     * @param userId
     * @return
     */
    public Long countUnread(Long userId) {
        return getMessageRepository().countUnread(userId, MessageState.in_box);
    }

    public void markRead(final Long userId, final Long[] ids) {
        if (ArrayUtils.isEmpty(ids)) {
            return;
        }
        getMessageRepository().markRead(userId, Arrays.asList(ids));
    }
}