NotspeakServiceImpl.java 12.1 KB
package com.cnlive.shenhe.serviceImpl;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.cnlive.shenhe.bean.ResponseBean;
import com.cnlive.shenhe.dto.NotSpeakDTO;
import com.cnlive.shenhe.entity.ShyComments;
import com.cnlive.shenhe.entity.ShyNotspeak;
import com.cnlive.shenhe.mapper.ShyCommentsMapper;
import com.cnlive.shenhe.mapper.ShyNotspeakMapper;
import com.cnlive.shenhe.mapper.ShySitesMapper;
import com.cnlive.shenhe.mapper.ShyUsersMapper;
import com.cnlive.shenhe.utils.AuditPass;
import com.cnlive.shenhe.utils.CommonConst;
import com.cnlive.shenhe.utils.CommonUtils;
import com.cnlive.shenhe.utils.TransitServiceUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.session.RowBounds;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;

import java.util.List;

/**
 * @Auther: liwei
 * @Date: 2019/1/2 11:30
 * @Description:
 */
@Service
public class NotspeakServiceImpl {

    private static Logger logger = LoggerFactory.getLogger(NotspeakServiceImpl.class);
    @Autowired
    ShyCommentsMapper shyCommentsMapper;
    @Autowired
    ShyNotspeakMapper shyNotspeakMapper;
    @Autowired
    ShySitesMapper shySitesMapper;
    @Autowired
    ShyUsersMapper shyUsersMapper;
    @Autowired
    TransitServiceUtils transitServiceUtils;
    @Autowired
    SitesServiceImpl sitesService;
    @Autowired
    VideosServiceImpl videosService;
    @Autowired
    VideofilterServiceImpl videofilterServiceImpl;
    @Autowired
    AuditPass Pass;
    
    @Value("${spring.localhost.url}")
    String localhost_url;
    
    @Value("${speak_comment}")
    String speak_comment;

    public ShyNotspeak getShySpeak(ShyNotspeak shyNotspeak) {
        List<ShyNotspeak> shyNotspeakList = shyNotspeakMapper.select(shyNotspeak);
        if(CommonUtils.isNotNull(shyNotspeakList)&&shyNotspeakList.size()>0){
        	return shyNotspeakList.get(0);
        }
        return new ShyNotspeak();
    }

    //**************************************
    public List<ShyNotspeak> findshyNotspeak(ShyNotspeak shyNotspeak) {
      
        return shyNotspeakMapper.selectByRowBounds(shyNotspeak, new RowBounds(0, 100));
    }

    //***************************
    public boolean updateshyNotspeak(ShyNotspeak shyNotspeak) {
        int result = shyNotspeakMapper.updateByPrimaryKey(shyNotspeak);
        if (result == 0) {
            return false;
        }
        return true;
    }

    //***************************
    public boolean impotshyNotspeak(ShyNotspeak shyNotspeak) {
        int result = shyNotspeakMapper.insertSelective(shyNotspeak);
        if (result == 0) {
            return false;
        }
        return true;
    }
    
    public ResponseBean notSpeakByComment(Integer commentId,Integer time, String userId) {
    	ResponseBean success;
    		ShyComments comment = shyCommentsMapper.selectByPrimaryKey(commentId);
    		JSONObject json = new JSONObject();
    		json.put("sid", comment.getComment_user_id().toString());
    		json.put("type", CommonConst.SPEAK_NOT);
    		json.put("minute", time);
    		JSONObject result = new JSONObject();
    		try {
    			result = Pass.commentSpeak(json, speak_comment);
    		} catch (Exception e) {
    			logger.error("评论禁言失败,comments_id:{}", comment.getId());
    			success=new ResponseBean(500,"评论禁言调用互动云服务器失败!");
    			return success;
    		}
    		if (result == null) {
    			logger.error("评论禁言错误,且无返回信息。comments_id:{}", comment.getId());
    			success=new ResponseBean(500,"评论禁言调用互动云返回结果为空!");
    			return success;
    		} else {
    			Integer errorCode = result.getInteger("errorCode");
    			String errorMessage = result.getString("errorMessage");
    			if (errorCode != 0) {
    				logger.error("评论禁言错误,comments_id:{},errorCode:{},errorMessage:{}", comment.getId(), errorCode, errorMessage);
    				success=new ResponseBean(500,"评论禁言调用互动云返回结果errorCode不为0!");
        			return success;
    			}
    			comment.setState(CommonConst.AUDIT_REFUSE);
    			comment.setMsg("评论禁言操作");
    			comment.setAuditor_id(userId);
    			comment.setReceive(1);//已领取
    			comment.setReceive_user_id(userId);
    			int i = shyCommentsMapper.updateByPrimaryKeySelective(comment);
    			if (i != 1) {
    				success=new ResponseBean(500,"评论禁言修改当前评论数据失败!");
        			return success;
    			}
    			boolean res =writeNotSpeakByComment(commentId,time,userId);
    			if(res==false){
    				success=new ResponseBean(500,"评论禁言修改禁言表失败!");
        			return success;
    			}
    		}
    	return new ResponseBean();
    }
    
    public ResponseBean querySpeakState(Integer commentId, String userId) {
    	ShyComments comment = shyCommentsMapper.selectByPrimaryKey(commentId);
    	ShyNotspeak shyNotspeak=new ShyNotspeak();
    	shyNotspeak.setUser_id(comment.getComment_user_id());
    	shyNotspeak.setState(CommonConst.SPEAK_NOT);
    	List<ShyNotspeak> shyNotspeakList = findshyNotspeak(shyNotspeak);
    	if(shyNotspeakList.size()>0){
    		shyNotspeak =shyNotspeakList.get(0);
    		return new ResponseBean(500,"当前用户已被禁言,禁言剩余时长:"+(shyNotspeak.getEnd_time().getTime()-System.currentTimeMillis())/(1000*60)+"分钟,解禁时间:"+CommonUtils.formatDate(shyNotspeak.getEnd_time(), "yyyy-MM-dd HH:mm:ss"));
    	}
    	return new ResponseBean();
    }
    public ResponseBean speak(Integer notSpeakId, Integer type,Integer time, String userId) {
    	ResponseBean success;
    	ShyNotspeak shyNotspeak=selectByPrimaryKey(notSpeakId);
    	JSONObject json = new JSONObject();
    	json.put("sid", shyNotspeak.getUser_id().toString());
    	json.put("type", type);
    	json.put("minute", time);
    	JSONObject result = new JSONObject();
    	try {
    		result = Pass.commentSpeak(json, speak_comment);
    	} catch (Exception e) {
    		logger.error("评论禁言失败,shyNotspeak_id:{}", shyNotspeak.getId());
    		success=new ResponseBean(500,"评论禁言调用互动云服务器失败!");
    		return success;
    	}
    	if (result == null) {
    		logger.error("评论禁言错误,且无返回信息。shyNotspeak_id:{}", shyNotspeak.getId());
    		success=new ResponseBean(500,"评论禁言调用互动云返回结果为空!");
    		return success;
    	} else {
    		Integer errorCode = result.getInteger("errorCode");
    		String errorMessage = result.getString("errorMessage");
    		if (errorCode != 0) {
    			logger.error("评论禁言错误,shyNotspeak_id:{},errorCode:{},errorMessage:{}", shyNotspeak.getId(), errorCode, errorMessage);
    			success=new ResponseBean(500,"评论禁言调用互动云返回结果errorCode不为0!");
    			return success;
    		}
    		String msg=CommonUtils.getCurrentDate("yyyy-MM-dd HH:mm:ss")+"解除禁言";
    		shyNotspeak.setState(type);
    		if(type.equals(CommonConst.SPEAK_NOT)){
    			shyNotspeak.setStart_time(CommonUtils.getCurrentTime());
    			shyNotspeak.setTime(time);
    			shyNotspeak.setEnd_time(CommonUtils.getAddTime(time));
    			shyNotspeak.setCount(shyNotspeak.getCount()+1);
    			msg=CommonUtils.getCurrentDate("yyyy-MM-dd HH:mm:ss")+"开始禁言,禁言时长为"+time+"分钟,禁言管理里面禁言的";
    		}
    		if(CommonUtils.isNotEmpty(userId)){
    			shyNotspeak.setAuditor(userId);
    			shyNotspeak.setUpdater("");
    		}else{
    			shyNotspeak.setAuditor(null);
    			shyNotspeak.setUpdater("自动解除");
    		}
    		shyNotspeak.setUpdated_at(CommonUtils.getCurrentTime());
    		shyNotspeak.setMsg(shyNotspeak.getMsg()+"\n"+msg);
    		boolean res =updateshyNotspeak(shyNotspeak);
			if(res==false){
				success=new ResponseBean(500,"评论禁言修改禁言表失败!");
    			return success;
			}
    		
    	}
    	return new ResponseBean();
    }

    
    public boolean writeNotSpeakByComment(Integer commentId,Integer time, String userId){
    	boolean result=false;
    	ShyComments comment = shyCommentsMapper.selectByPrimaryKey(commentId);
    	ShyNotspeak shyNotspeak=new ShyNotspeak();
    	shyNotspeak.setUser_id(comment.getComment_user_id());
    	String msg=CommonUtils.getCurrentDate("yyyy-MM-dd HH:mm:ss")+"开始禁言,禁言时长为"+time+"分钟,禁言的评论为:'"+comment.getComment_content()+"'";
    	
    	List<ShyNotspeak> shyNotspeakList = shyNotspeakMapper.select(shyNotspeak);
    	if(CommonUtils.isNotNull(shyNotspeakList)&&shyNotspeakList.size()>0){
    		ShyNotspeak notspeak=shyNotspeakList.get(0);
    		notspeak.setUser_name(comment.getComment_user_name());
    		notspeak.setUser_avatar(comment.getComment_user_avatar());
    		notspeak.setSp_id(comment.getSpid());
    		notspeak.setState(CommonConst.SPEAK_NOT);
    		notspeak.setStart_time(CommonUtils.getCurrentTime());
    		notspeak.setTime(time);
    		notspeak.setEnd_time(CommonUtils.getAddTime(time));
    		notspeak.setUpdated_at(CommonUtils.getCurrentTime());
    		notspeak.setMsg(notspeak.getMsg()+"\n"+msg);
    		notspeak.setCount(notspeak.getCount()+1);
    		notspeak.setUpdater("");
    		notspeak.setAuditor(userId);
    		result=updateshyNotspeak(notspeak);
    	}else{
    		shyNotspeak.setUser_name(comment.getComment_user_name());
    		shyNotspeak.setUser_id(comment.getComment_user_id());
    		shyNotspeak.setUser_avatar(comment.getComment_user_avatar());
    		shyNotspeak.setSp_id(comment.getSpid());
    		shyNotspeak.setState(CommonConst.SPEAK_NOT);
    		shyNotspeak.setStart_time(CommonUtils.getCurrentTime());
    		shyNotspeak.setTime(time);
    		shyNotspeak.setEnd_time(CommonUtils.getAddTime(time));
    		shyNotspeak.setCreated_at(CommonUtils.getCurrentTime());
    		shyNotspeak.setUpdated_at(CommonUtils.getCurrentTime());
    		shyNotspeak.setMsg(msg);
    		shyNotspeak.setCount(1);
    		shyNotspeak.setUpdater("");
    		shyNotspeak.setAuditor(userId);
    		result=impotshyNotspeak(shyNotspeak);
    		
    	}
    	return result;
    }

    public PageInfo<ShyNotspeak> getPage(NotSpeakDTO notSpeakDTO) {
    	logger.info("接受参数对象为,NotSpeakDTO:{}", JSON.toJSONString(notSpeakDTO));
        Example example = new Example(ShyNotspeak.class);
        Example.Criteria criteria = example.createCriteria();
        if (CommonUtils.isNotEmpty(notSpeakDTO.getOrderByClause())) {
            example.setOrderByClause(notSpeakDTO.getOrderByClause());
        } else {
            example.setOrderByClause("state desc , updated_at desc");
        }
        if (CommonUtils.isNotEmpty(notSpeakDTO.getUser_name())) {
            criteria.andLike("user_name", "%" + notSpeakDTO.getUser_name() + "%");
        }
        if (CommonUtils.isNotNull(notSpeakDTO.getUser_id())) {
            criteria.andEqualTo("user_id", notSpeakDTO.getUser_id());
        }
        if (CommonUtils.isNotNull(notSpeakDTO.getState())) {
            criteria.andEqualTo("state", notSpeakDTO.getState());
        }

        PageHelper.startPage(notSpeakDTO.getPage(), notSpeakDTO.getPageSize(), true);
        List<ShyNotspeak> shyNotspeakList = shyNotspeakMapper.selectByExample(example);
        PageInfo<ShyNotspeak> pageInfo = new PageInfo<>(shyNotspeakList);
        return pageInfo;
    }
    
   
    //**************************************
    public ShyNotspeak selectByPrimaryKey(Integer id) {
    	ShyNotspeak shyNotspeak = shyNotspeakMapper.selectByPrimaryKey(id);
        return shyNotspeak;
    }
    
    public int updateByPrimaryKeySelective(ShyNotspeak shyNotspeak) {
        return shyNotspeakMapper.updateByPrimaryKeySelective(shyNotspeak);
    }

	public List<ShyNotspeak> getNotSpeakByTime() {
		 Example example = new Example(ShyNotspeak.class);
	        Example.Criteria criteria = example.createCriteria();
	            criteria.andEqualTo("state", CommonConst.SPEAK_NOT);
	            criteria.andLessThan("end_time", CommonUtils.getCurrentTime());

	        List<ShyNotspeak> shyNotspeakList = shyNotspeakMapper.selectByExample(example);
	        return shyNotspeakList;
	}
    

}