CompanyAccountInfoDaoImpl.java 4.72 KB
package com.zteits.pay.dao.impl;

import com.clouds.common.constants.pagequery.PageSizeEnum;
import com.clouds.common.utils.page.PageUtil;
import com.github.pagehelper.PageHelper;
import com.zteits.clouds.api.dto.pay.dto.CompanyAccountDTO;
import com.zteits.clouds.api.dto.pay.dto.CompanyAccountViewDTO;
import com.zteits.clouds.api.dto.pay.param.QueryCompanyAccountRequest;
import com.zteits.clouds.api.dto.pay.param.SaveCompanyAccountRequest;
import com.zteits.clouds.api.dto.pay.param.ViewCompanyAccountRequest;
import com.zteits.pay.dao.CompanyAccountInfoDao;
import com.zteits.pay.domain.TdClCompanyAccInfo;
import com.zteits.pay.domain.TdClCompanyAccInfoExample;
import com.zteits.pay.mapper.TdClCompanyAccInfoMapper;
import com.zteits.pay.mapper.smapper.TdClCompanyAccInfoSMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

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

@Component
public class CompanyAccountInfoDaoImpl implements CompanyAccountInfoDao {

    @Autowired
    private TdClCompanyAccInfoMapper tdClCompanyAccInfoMapper;

    @Autowired
    private TdClCompanyAccInfoSMapper tdClCompanyAccInfoSMapper;


    @Override
    public List<TdClCompanyAccInfo> queryCompanyAccount(QueryCompanyAccountRequest request) {
        List<CompanyAccountDTO> list = new ArrayList<>();
        TdClCompanyAccInfoExample example = new TdClCompanyAccInfoExample();
        TdClCompanyAccInfoExample.Criteria sql = example.createCriteria();
        if (!StringUtils.isEmpty(request.getCustomerNo())) {
            sql.andCustomerNoEqualTo(request.getCustomerNo());
        }
        if (!StringUtils.isEmpty(request.getAccStatus())) {
            sql.andAccCodeEqualTo(request.getAccStatus());
        }

        if (request.getOrgId() != null) {
            sql.andOrgIdEqualTo(request.getOrgId());
        }
        example.setOrderByClause("modfiy_date desc");
        // 1.设置分页信息
        PageUtil.pageSizeValidate(PageSizeEnum.PAGE_SIZE_BASE, request);
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());


        List<TdClCompanyAccInfo> dtoList = tdClCompanyAccInfoSMapper.selectByDataDtoExample(request);


        return dtoList;
    }

    @Override
    public int insertSelective(TdClCompanyAccInfo record) {
        if (record == null) {
            return 0;
        }

        return tdClCompanyAccInfoMapper.insertSelective(record);
    }

    @Override
    public int updateSelective(TdClCompanyAccInfo record) {
        if (record == null) {
            return 0;
        }

        return tdClCompanyAccInfoMapper.updateByPrimaryKeySelective(record);
    }

    @Override
    public TdClCompanyAccInfo viewCompanyAccount(ViewCompanyAccountRequest request) {
        CompanyAccountViewDTO dto = new CompanyAccountViewDTO();
        if (request == null) {
            return new TdClCompanyAccInfo();
        }
        TdClCompanyAccInfo tdClCompanyAccInfo = tdClCompanyAccInfoSMapper.viewCompanyAccount(request);

        return tdClCompanyAccInfo;
    }

    @Override
    public int validateAccount(SaveCompanyAccountRequest request) {
        TdClCompanyAccInfoExample example = new TdClCompanyAccInfoExample();
        example.createCriteria().andCustomerNoEqualTo(request.getCustomerNo()).andAccStatusEqualTo("1");
        List<TdClCompanyAccInfo> list = tdClCompanyAccInfoMapper.selectByExample(example);
        int num = list.size();
        return num;
    }

    /**
     * 根据停车场编号以及公司编号,获取对应的账户信息
     * @Author: zengqc
     * @Date: 202-12-28
     */
    @Override
    public TdClCompanyAccInfo queryCompanyAccInfo(QueryCompanyAccountRequest request) {

        TdClCompanyAccInfo tdClCompanyAccInfo = this.tdClCompanyAccInfoSMapper.
                queryCompanyAccInfo(request.getCustomerNo(), request.getPlNo());
        return tdClCompanyAccInfo;
    }

    /**
     * 根据账户编号获取某个车在某个停车场的公司储值账户信息
     *
     * @param accCode
     * @Author: zegnqc
     */
    @Override
    public TdClCompanyAccInfo queryCompanyAccInfoAccCode(String accCode) {
        TdClCompanyAccInfoExample example = new TdClCompanyAccInfoExample();
        example.createCriteria()
                .andAccCodeEqualTo(accCode)
                .andAccStatusEqualTo("1");
        TdClCompanyAccInfo tdClCompanyAccInfo = this.tdClCompanyAccInfoMapper.selectByExample(example).get(0);

        return tdClCompanyAccInfo;
    }

    /**
     * 更新余额
     */
    @Override
    public int updateAccountBalance(String accCode, long balance) {

        return this.tdClCompanyAccInfoSMapper.updateAccountBalance(accCode, balance);

    }
}