ContentServiceImpl.java 11.8 KB
package com.cnlive.shenhe.serviceImpl;

import com.alibaba.fastjson.JSONObject;
import com.cnlive.shenhe.entity.ShyComments;
import com.cnlive.shenhe.entity.ShyContent;
import com.cnlive.shenhe.entity.ShyLive;
import com.cnlive.shenhe.entity.ShySites;
import com.cnlive.shenhe.entity.ShyUsers;
import com.cnlive.shenhe.entity.ShyVideos;
import com.cnlive.shenhe.mapper.ShyCommentsMapper;
import com.cnlive.shenhe.mapper.ShyContentMapper;
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.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.stereotype.Service;
import tk.mybatis.mapper.entity.Example;

import java.sql.Timestamp;
import java.text.ParseException;
import java.util.Date;
import java.util.List;

/**
 * @Auther: liwei
 * @Date: 2019/5/20 17:30
 * @Description:
 */
@Service
public class ContentServiceImpl {

    private static Logger logger = LoggerFactory.getLogger(ContentServiceImpl.class);
    @Autowired
    ShyCommentsMapper shyCommentsMapper;
    @Autowired
    ShyContentMapper shyContentMapper;
    @Autowired
    ShySitesMapper shySitesMapper;
    @Autowired
    ShyUsersMapper shyUsersMapper;
    @Autowired
    AuditPass Pass;
    @Autowired
    SitesServiceImpl sitesService;

    public List<ShySites> getBusiness(ShySites shySites) {
        List<ShySites> sitesList = shySitesMapper.select(shySites);
        return sitesList;
    }

    //**************************************
    public List<ShyContent> findshyContent(ShyContent shyContent) {
      
        return shyContentMapper.selectByRowBounds(shyContent, new RowBounds(0, 100));
    }

    //***************************
    public boolean updateshyContent(ShyContent shyContent) {
        int result = shyContentMapper.updateByPrimaryKey(shyContent);
        if (result == 0) {
            return false;
        }
        return true;
    }

    //***************************
    public boolean impotContent(ShyContent shyContent) {
        int result = shyContentMapper.insertSelective(shyContent);
        if (result == 0) {
            return false;
        }
        return true;
    }

    public int updateComment(Integer id, Integer state, String msg) {
        ShyComments shyComments = shyCommentsMapper.selectByPrimaryKey(id);
        shyComments.setState(state);
        shyComments.setMsg(msg);
        return shyCommentsMapper.updateByPrimaryKeySelective(shyComments);
    }

    public PageInfo<ShyContent> getPage( String title,String contentId,  Date start_date, Date end_date,  Integer receive_status, String updater, Integer page, Integer pageSize, String orderByClause, Integer spid, String userId) {
        Example example = new Example(ShyContent.class);
        Example.Criteria criteria = example.createCriteria();
        if (CommonUtils.isNotEmpty(orderByClause)) {
            example.setOrderByClause(orderByClause);
        } else {
            example.setOrderByClause("create_date desc");
        }
        if (CommonUtils.isNotNull(start_date) ) {
            criteria.andGreaterThanOrEqualTo("create_date", start_date);
        }
        if ( CommonUtils.isNotNull(end_date)) {
      	  criteria.andLessThanOrEqualTo("create_date", end_date);
        }
        if (CommonUtils.isNotEmpty(title)) {
            criteria.andLike("title", "%" + title + "%");
        }
        if (CommonUtils.isNotEmpty(updater)) {
            criteria.andEqualTo("updater", updater);
        }
        if (CommonUtils.isNotNull(spid)) {
            criteria.andEqualTo("sp_id", spid);
        }
        if (CommonUtils.isNotEmpty(contentId)) {
        	criteria.andEqualTo("content_id", contentId);
        }
        if (CommonUtils.isNotNull(receive_status)) {
            criteria.andEqualTo("receive_status", receive_status);
            if (receive_status!=CommonConst.RECEIVE_BEFORE) {
                criteria.andEqualTo("auditor_id", userId);
            }
        }

        PageHelper.startPage(page, pageSize, true);
        List<ShyContent> contentList = shyContentMapper.selectByExample(example);
        PageInfo<ShyContent> pageInfo = new PageInfo<>(contentList);
        return pageInfo;
    }
    
    /**
     * 根据条件导出数据excel
     * @return
     */
    public List<ShyContent> findByCondition(String title,String contentId,  Date start_date, 
    		Date end_date,Integer receive_status,  Integer page, 
    		Integer pageSize, String orderByClause, Integer spid) {
    	
    	  Example example = new Example(ShyContent.class);
          Example.Criteria criteria = example.createCriteria();
          if (CommonUtils.isNotEmpty(orderByClause)) {
              example.setOrderByClause(orderByClause);
          } else {
              example.setOrderByClause("create_date desc");
          }
          if (CommonUtils.isNotNull(start_date) ) {
              criteria.andGreaterThanOrEqualTo("create_date", start_date);
          }
          if ( CommonUtils.isNotNull(end_date)) {
        	  criteria.andLessThanOrEqualTo("create_date", end_date);
          }
          if (CommonUtils.isNotEmpty(title)) {
              criteria.andLike("title", "%" + title + "%");
          }
          if (CommonUtils.isNotNull(spid)) {
              criteria.andEqualTo("sp_id", spid);
          }
          if (CommonUtils.isNotEmpty(contentId)) {
          	criteria.andEqualTo("content_id", contentId);
          }
          if (CommonUtils.isNotNull(receive_status)) {
              criteria.andEqualTo("receive_status", receive_status);
          }
        List<ShyContent> shyContentList = shyContentMapper.selectByExample(example);
        return shyContentList;
    }
    

    //******************************
    public ShyContent getDetailsContent(Integer id) {
    	ShyContent content = shyContentMapper.selectByPrimaryKey(id);
        if (content.getReceive_status() == CommonConst.RECEIVE_AUDIT) {
        	String updater = CommonUtils.isEmpty(content.getUpdater()) || "null".equals(content.getUpdater())? "白名单":content.getUpdater();
            String auditor_id = content.getAuditor_id();
            if (CommonUtils.isNotEmpty(auditor_id)) {
                ShyUsers user = new ShyUsers();
                user.setUser_id(auditor_id);
                user = shyUsersMapper.selectOne(user);
                String email = CommonUtils.isEmpty(user.getEmail())|| "null".equals(user.getEmail()) ? "" : user.getEmail();
                String userName = CommonUtils.isEmpty(user.getUsername()) ? email : user.getUsername();
                updater = userName ;
            }
            content.setUpdater(updater);
        }
        ShySites shySite=sitesService.findspidDescByspid(content.getSp_id());
    	if(CommonUtils.isNotNull(shySite)){
    		 content.setSp_desc(shySite.getName());
    	}
        return content;
    }

    //**********************
	public boolean updateState(String ids, String msg, Integer state, String userId) {
		boolean success = true;
		String[] contentIds = ids.split(",");
		for (String contentId : contentIds) {
			ShyContent content = shyContentMapper.selectByPrimaryKey(Integer.parseInt(contentId));
			JSONObject result = new JSONObject();
//			String type = "fabu";// 1、fabu,2、xiaxian,3、shanchu
//			if (state == 2) {
//				type = "xiaxian";
//			} else if (state == 3) {
//				type = "shanchu";
//			}
			try {
				result = Pass.contentPass(content.getContent_id(), state+"", msg, content.getCallback());
			} catch (Exception e) {
				logger.error("图文审核回调失败,图文id:{}", content.getId());
				success = false;
				break;
			}
			if (result == null) {
				logger.error("图文回调错误,且无返回信息。图文id:{}", content.getId());
				success = false;
				break;
			} else {
				Integer code = result.getInteger("errorCode");
//				msg=CommonUtils.isNotEmpty(msg)?msg+",图文回调结果:"+result.getString("errorMessage"):"图文回调结果:"+result.getString("errorMessage");
				if (code != 0) {
					logger.error("图文回调错误,图文id:{},errorCode:{},errorMessage:{}", content.getId(), code,
							result.getString("errorMessage"));
					success = false;
					break;
				}
				content.setContent_status(state);// 设置图文状态为审核后的状态
				content.setReceive_status(CommonConst.RECEIVE_AUDIT);// 领取状态为已审核
				content.setShenhe_msg(msg);// 设置审核消息
				if (CommonUtils.isNotEmpty(userId)) {
					content.setAuditor_id(userId);
					content.setShenhe_type(CommonConst.AUDIT_TYPE_USER);// 设置审核类型为人工
				}
				content.setLast_update(CommonUtils.getCurrentTime());
				int i = shyContentMapper.updateByPrimaryKeySelective(content);
				if (i != 1) {
					success = false;
				}
			}

		}
		return success;
	}

    //**********************************
    public Integer receive(String ids, Integer num, String userId, Integer spid) {
        Integer n = 0;
        if (CommonUtils.isNotEmpty(ids)) {
            String[] cids = ids.split(",");
            for (String cid : cids) {
                ShyContent shyContent = shyContentMapper.selectByPrimaryKey(Integer.parseInt(cid));
                if (CommonUtils.isNotNull(shyContent) && shyContent.getReceive_status() == CommonConst.RECEIVE_BEFORE ) {
                	shyContent.setAuditor_id(userId);
                	shyContent.setReceive_status(CommonConst.RECEIVE_AFTER);
                	shyContent.setLast_update(CommonUtils.getCurrentTime());
                    shyContentMapper.updateByPrimaryKeySelective(shyContent);
                    n++;
                }
            }
        } else if (CommonUtils.isNotNull(num) && num > 0) {
            Example example = new Example(ShyContent.class);
            example.setOrderByClause("create_date desc");
            example.and().andEqualTo("receive_status", CommonConst.RECEIVE_BEFORE);
//            example.and().andEqualTo("receive", CommonConst.RECEIVE_AFTER);
            if (CommonUtils.isNotNull(spid) && spid != 0) example.and().andEqualTo("spid", spid);
            List<ShyContent> shyContentList = shyContentMapper.selectByExampleAndRowBounds(example, new RowBounds(0, num));
            if (!shyContentList.isEmpty()) {
                for (ShyContent shyContent : shyContentList) {
                	shyContent.setAuditor_id(userId);
                	shyContent.setReceive_status(CommonConst.RECEIVE_AFTER);
                	shyContent.setLast_update(CommonUtils.getCurrentTime());
                    shyContentMapper.updateByPrimaryKeySelective(shyContent);
                    n++;
                }
            }
        }
        return n;
    }

    //***************************************
    public Integer retReceive(String ids, String userId) {
        Integer n = 0;
        String[] cids = ids.split(",");
        for (String cid : cids) {
            ShyContent shyContent = shyContentMapper.selectByPrimaryKey(Integer.parseInt(cid));
            if (shyContent.getReceive_status() == CommonConst.RECEIVE_AFTER && userId.equals(shyContent.getAuditor_id())) {
                shyContent.setReceive_status(CommonConst.RECEIVE_BEFORE);
                shyContent.setAuditor_id(null);
                shyContent.setLast_update(CommonUtils.getCurrentTime());
                int i = shyContentMapper.updateByPrimaryKeySelective(shyContent);
                if (i == 1) n++;
            }
        }
        return n;
    }
    //**************************************
    public ShyContent selectByPrimaryKey(Integer id) {
        ShyContent shyContent = shyContentMapper.selectByPrimaryKey(id);
        return shyContent;
    }
    public int updateByPrimaryKeySelective(ShyContent content) {
        return shyContentMapper.updateByPrimaryKeySelective(content);
    }

}