UsersfreeServiceImpl.java 6.5 KB
package com.cnlive.shenhe.service.serviceImpl;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.cnlive.shenhe.dto.UsersFreeDTO;
import com.cnlive.shenhe.entity.ShyUsers;
import com.cnlive.shenhe.entity.ShyUsersfree;
import com.cnlive.shenhe.mapper.ShyUsersfreeMapper;
import com.cnlive.shenhe.service.UsersfreeService;
import com.cnlive.shenhe.utils.AuditPass;
import com.cnlive.shenhe.utils.CommonUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
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.util.List;

/**
 * @Auther: 李伟
 * @Date: 2019/05/13 14:23
 * @Description:
 */
@Service
public class UsersfreeServiceImpl implements UsersfreeService {
    private static Logger logger = LoggerFactory.getLogger(UsersfreeServiceImpl.class);
    @Autowired
    ShyUsersfreeMapper shyUsersfreeMapper;
    @Autowired
    AuditPass pass;

    /**
     * 根据主键id查询用户白名单
     *
     * @param id
     * @return
     */
    @Override
    public ShyUsersfree get(Integer id) {
        return shyUsersfreeMapper.selectByPrimaryKey(id);
    }

    /**
     * 根据用户白名单对象查询
     *
     * @param shyUsersfree
     * @return
     */
    @Override
    public ShyUsersfree select(ShyUsersfree shyUsersfree) {
        return shyUsersfreeMapper.selectOne(shyUsersfree);
    }

    /**
     * 修改白名单状态
     *
     * @param id
     * @param isEnable
     * @return
     */
    @Override
    public Integer updateState(Integer id, Boolean isEnable) {
        ShyUsersfree shyUsersfree = get(id);
        shyUsersfree.setIs_enable(isEnable);
        return shyUsersfreeMapper.updateByPrimaryKeySelective(shyUsersfree);
    }

    /**
     * 分页、条件查询列表
     *
     * @param usersFreeDTO
     * @return
     */
    @Override
    public PageInfo<ShyUsersfree> getPage(UsersFreeDTO usersFreeDTO) {
        logger.info("接受参数列表为,UsersFreeDTO:{}", JSON.toJSONString(usersFreeDTO));
        Example example = new Example(ShyUsers.class);
        Example.Criteria criteria = example.createCriteria();
        if (CommonUtils.isNotEmpty(usersFreeDTO.getOrderByClause())) {
            example.setOrderByClause(usersFreeDTO.getOrderByClause());
        } else {
            example.setOrderByClause("created_at desc");
        }
        if (CommonUtils.isNotEmpty(usersFreeDTO.getUserId())) {
            criteria.andEqualTo("user_id", usersFreeDTO.getUserId());
        }
        if (CommonUtils.isNotEmpty(usersFreeDTO.getMobile())) {
            criteria.andLike("mobile", "%" + usersFreeDTO.getMobile() + "%");
        }
        PageHelper.startPage(usersFreeDTO.getPage(), usersFreeDTO.getPageSize(), true);
        List<ShyUsersfree> shyUsersList = shyUsersfreeMapper.selectByExample(example);
        PageInfo<ShyUsersfree> pageInfo = new PageInfo<ShyUsersfree>(shyUsersList);
        return pageInfo;
    }

    /**
     * 通过spid、栏目、用户id来查看是否是免审
     *
     * @param spId
     * @param category
     * @param userId
     * @return
     */
    @Override
    public ShyUsersfree selectUser(Integer spId, String category, String userId) {
        ShyUsersfree shyUserfree = new ShyUsersfree();
        shyUserfree.setSp_id(spId);
        shyUserfree.setUser_id(userId);
        shyUserfree.setIs_enable(true);
        shyUserfree.setIs_delete(false);
        ShyUsersfree shyUserfree1 = shyUsersfreeMapper.selectOne(shyUserfree);
        if (shyUserfree1 != null && shyUserfree1.getCategory().contains(category)) {
            return shyUserfree1;
        }
        return null;
    }

    /**
     * 回调
     *
     * @param userId
     * @param userMobile
     * @param write
     * @param spId
     * @param updater
     * @return
     */
    @Override
    public boolean update(String userId, String userMobile, String write, Integer spId, String updater) {
        JSONObject result;
        try {
            result = pass.queryUser(userId, userMobile);
        } catch (Exception e) {
            logger.error("用户白名单获取失败,userId:{},userMobile:{}", userId, userMobile);
            return false;
        }
        if (result == null) {
            logger.error("用户白名单返回无结果,userId:{},userMobile:{}", userId, userMobile);
            return false;
        } else {
            Integer code = result.getInteger("errorCode");
            if (code != 0) {
                logger.error("用户白名单返回code值为,errorCode:{},errorMessage:{},userId:{},userMobile:{}", code, result.getString("errorMessage"), userId, userMobile);
                return false;
            }
            JSONObject jsonData = result.getJSONObject("data");
            String mobile = jsonData.getString("mobile");
            String user_id = jsonData.getString("uid");
            String userName = jsonData.getString("nickName");
            String email = jsonData.getString("email");

            ShyUsersfree shyUserfree = new ShyUsersfree();
            shyUserfree.setUser_id(user_id);
            ShyUsersfree shyUserfree1 = shyUsersfreeMapper.selectOne(shyUserfree);

            if (shyUserfree1 != null) {
                shyUserfree1.setMobile(mobile);
                shyUserfree1.setCategory(write);
                shyUserfree1.setUser_name(userName);
                shyUserfree1.setEmail(email);
                shyUserfree1.setSp_id(spId);
                shyUserfree1.setUpdated_at(CommonUtils.getCurrentTime());
                shyUserfree1.setUpdater(updater);
                shyUserfree1.setIs_delete(false);
                shyUserfree1.setIs_enable(true);
                int re = shyUsersfreeMapper.updateByPrimaryKeySelective(shyUserfree1);
                return re == 1;
            } else {
                shyUserfree.setMobile(mobile);
                shyUserfree.setCategory(write);
                shyUserfree.setUser_name(userName);
                shyUserfree.setEmail(email);
                shyUserfree.setSp_id(spId);
                shyUserfree.setCreated_at(CommonUtils.getCurrentTime());
                shyUserfree.setUpdated_at(CommonUtils.getCurrentTime());
                shyUserfree.setUpdater(updater);
                shyUserfree.setIs_delete(false);
                shyUserfree.setIs_enable(true);
                int re = shyUsersfreeMapper.insertSelective(shyUserfree);
                return re == 1;
            }
        }
    }
}