TdCBusinessAcctDaoImpl.java 5.58 KB
package com.zteits.business.dao.impl;

import org.apache.commons.collections4.CollectionUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zteits.business.dao.TdCBusinessAcctDao;
import com.zteits.business.domain.TdCBusinessAcct;
import com.zteits.business.domain.TdCBusinessAcctExample;
import com.zteits.business.mapper.TdCBusinessAcctMapper;
import com.zteits.business.mapper.smapper.TdCBusinessAcctSMapper;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.dto.business.dto.BusinessAccountDetailCountDTO;
import com.zteits.clouds.api.dto.business.dto.BusinessAccountInOutDetailForPageDTO;
import com.zteits.clouds.api.dto.business.param.BusinessAccountInOutDetailRequest;
import com.zteits.clouds.api.dto.business.param.TdCBusinessAcctRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Component
public class TdCBusinessAcctDaoImpl implements TdCBusinessAcctDao {
    @Autowired
    private TdCBusinessAcctMapper tdCBusinessAcctMapper;
    @Autowired
    private TdCBusinessAcctSMapper tdCBusinessAcctSMapper;

    @Override
    public int saveTdCBusinessAcct(TdCBusinessAcct tdCBusinessAcct) {
        if (tdCBusinessAcct.getCreateDate() == null) {
            tdCBusinessAcct.setCreateDate(new Date());
        }
        return tdCBusinessAcctMapper.insertSelective(tdCBusinessAcct);
    }

    @Override
    public int updateByExampleSelective(TdCBusinessAcct record, TdCBusinessAcctExample example) {
        return tdCBusinessAcctMapper.updateByExampleSelective(record, example);
    }

    @Override
    public int updateByPrimaryKeySelective(TdCBusinessAcct record) {
        return tdCBusinessAcctMapper.updateByPrimaryKeySelective(record);
    }

    @Override
    public List<TdCBusinessAcct> selectByExample(TdCBusinessAcctExample example) {
        return tdCBusinessAcctMapper.selectByExample(example);
    }

    @Override
    public TdCBusinessAcct queryByPrimaryKey(Long id) {
        return tdCBusinessAcctMapper.selectByPrimaryKey(id);
    }

    @Override
    public List<TdCBusinessAcct> queryTdCBusinessAcct(TdCBusinessAcctRequest request) {
        TdCBusinessAcctExample example = new TdCBusinessAcctExample();
        TdCBusinessAcctExample.Criteria sql = example.createCriteria();

        if (!StringUtils.isEmpty(request.getBusinessName())) {
            sql.andBusinessNameLike("%" + request.getBusinessName() + "%");
        }
        if (!StringUtils.isEmpty(request.getUserPhone())) {
            sql.andUserPhoneLike("%" + request.getUserPhone() + "%");
        }
        if (!StringUtils.isEmpty(request.getDataState())) {
            sql.andDataStateEqualTo(request.getDataState());
        }
        if (!StringUtils.isEmpty(request.getBusinessId())) {
            sql.andBusinessIdEqualTo(request.getBusinessId());
        }
        if (!StringUtils.isEmpty(request.getAcctId())) {
            sql.andAcctIdEqualTo(request.getAcctId());
        }
        List<TdCBusinessAcct> list = tdCBusinessAcctMapper.selectByExample(example);
        if (CollectionUtils.isNotEmpty(list)) {
            return list;
        }
        return null;
    }

    @Override
    public int batchDeleteTdCBusinessAcctByPrimaryKey(List<Long> ids, String opId, String opName) {
        TdCBusinessAcct record = new TdCBusinessAcct();
        record.setModifyEmpid(opId);
        record.setModifyDate(new Date());
        record.setDataState(DataStatusEnum.DATA_STATUS_NO_VALID.value());
        TdCBusinessAcctExample example = new TdCBusinessAcctExample();
        example.createCriteria().andIdIn(ids);
        return tdCBusinessAcctMapper.updateByExampleSelective(record, example);
    }

    @Override
    public PageInfo<TdCBusinessAcct> queryTdCBusinessAcctForPage(TdCBusinessAcctRequest request) {
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        TdCBusinessAcctExample example = new TdCBusinessAcctExample();
        TdCBusinessAcctExample.Criteria sql = example.createCriteria();

        if (!StringUtils.isEmpty(request.getBusinessName())) {
            sql.andBusinessNameLike("%" + request.getBusinessName() + "%");
        }
        if (!StringUtils.isEmpty(request.getUserPhone())) {
            sql.andUserPhoneLike("%" + request.getUserPhone() + "%");
        }
        if (!StringUtils.isEmpty(request.getDataState())) {
            sql.andDataStateEqualTo(request.getDataState());
        }
        List<TdCBusinessAcct> list = tdCBusinessAcctMapper.selectByExample(example);
        if (CollectionUtils.isNotEmpty(list)) {
            return new PageInfo<TdCBusinessAcct>(list);
        }
        return new PageInfo<TdCBusinessAcct>(new ArrayList<TdCBusinessAcct>());
    }

    /**
     * 分页查询商户账户余额充值与支出明细
     */
    @Override
    public PageInfo<BusinessAccountInOutDetailForPageDTO> queryAccountInOutDetailsForPage(BusinessAccountInOutDetailRequest requestQ) {
        PageHelper.startPage(requestQ.getBaseRequest().getPageNum(), requestQ.getBaseRequest().getPageSize());
        List<BusinessAccountInOutDetailForPageDTO> resultList = tdCBusinessAcctSMapper.queryAccountInOutDetailsForPage(requestQ);

        return new PageInfo<>(resultList);
    }

    /**
     * 余额明细总览
     */
    @Override
    public List<BusinessAccountDetailCountDTO> detailSummary(BusinessAccountInOutDetailRequest requestQ) {
        return tdCBusinessAcctSMapper.detailSummary(requestQ);
    }
}