TdCCustBusinessServiceImpl.java 9.86 KB
package com.zteits.business.biz.impl;
import org.apache.commons.lang3.StringUtils;
import com.clouds.common.utils.ListCopyUtil;
import com.clouds.common.utils.SequenceUtil;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import com.zteits.business.dao.TdCBusinessAcctDao;
import com.zteits.business.dao.TdCCustBusinessPicDao;
import com.zteits.business.domain.TdCBusinessAcct;
import com.zteits.business.domain.TdCBusinessOrderParkRecord;
import com.zteits.business.domain.TdCCustBusiness;

import com.zteits.business.domain.TdCCustBusinessPic;
import com.zteits.clouds.api.apibase.constants.BasicEnum;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.apibase.constants.ErrorType;
import com.zteits.clouds.api.apibase.constants.SequenceTypeEnum;
import com.zteits.clouds.api.apibase.exception.BizException;
import com.zteits.clouds.api.dto.business.dto.TdCBusinessOrderParkRecordDTO;
import com.zteits.clouds.api.dto.business.dto.TdCCustBusinessPicDTO;
import com.zteits.clouds.api.dto.business.param.*;
import com.zteits.clouds.api.service.business.TdCCustBusinessService;
import com.zteits.business.dao.TdCCustBusinessDao;
import com.zteits.clouds.api.dto.business.dto.TdCCustBusinessDTO;
import org.apache.commons.collections4.CollectionUtils;
import com.zteits.clouds.api.apibase.bean.BizResult;
import com.zteits.clouds.api.apibase.bean.PageBean;
import com.zteits.clouds.api.dto.clouds.param.BatchDeleteByPrimaryKeyRequest;
import com.zteits.sys.pagepaper.PageBeanUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

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

@Component
public class TdCCustBusinessServiceImpl implements TdCCustBusinessService {

    private static final Logger logger = LoggerFactory.getLogger(TdCCustBusinessServiceImpl.class);

    @Autowired
    private TdCCustBusinessDao tdCCustBusinessDao;
    @Autowired
    private TdCCustBusinessPicDao tdCCustBusinessPicDao;
    @Autowired
    private TdCBusinessAcctDao tdCBusinessAcctDao;


    @Override
    public BizResult<List<TdCCustBusinessDTO>> queryTdCCustBusiness(TdCCustBusinessRequest request) {
        List<TdCCustBusinessDTO> tdCCustBusinessDTOS = new ArrayList<>();
        List<TdCCustBusiness> tdCCustBusinesss = tdCCustBusinessDao.queryTdCCustBusiness(request);
        if(CollectionUtils.isEmpty(tdCCustBusinesss)){
            return new BizResult<>(tdCCustBusinessDTOS);
        }
        for (TdCCustBusiness source:tdCCustBusinesss){
            TdCCustBusinessDTO dto = new TdCCustBusinessDTO();
            BeanUtils.copyProperties(source,dto);
            tdCCustBusinessDTOS.add(dto);
        }
        return new BizResult<>(tdCCustBusinessDTOS);
    }

    @Override
    public BizResult<PageBean<TdCCustBusinessDTO>> queryTdCCustBusinessForPage(TdCCustBusinessRequest request) {
        logger.info("进入查询商户信息");
        PageBean<TdCCustBusinessDTO> pageBean = new PageBean<>();
        PageInfo<TdCCustBusiness> pageInfo = tdCCustBusinessDao.queryTdCCustBusinessForPage(request);
        if (pageInfo != null && pageInfo.getList() != null && pageInfo.getList().size() > 0) {
            PageBeanUtil.copyProperties(pageInfo, pageBean, TdCCustBusinessDTO.class);
        }
        return new BizResult<>(pageBean);
    }

    @Override
    public BizResult<PageBean<TdCBusinessOrderParkRecordDTO>> queryBusinessParkOrderForPage(TdCBusinessOrderParkRecordRequest request){
        logger.info("进入查询减免停车记录信息");
        PageBean<TdCBusinessOrderParkRecordDTO> pageBean = new PageBean<>();
        PageInfo<TdCBusinessOrderParkRecord> pageInfo = tdCCustBusinessDao.queryBusinessParkOrderForPage(request);

        if (pageInfo != null && pageInfo.getList() != null && pageInfo.getList().size() > 0) {
            PageBeanUtil.copyProperties(pageInfo, pageBean, TdCBusinessOrderParkRecordDTO.class);
        }
        return new BizResult<>(pageBean);
    }

    @Override
    public BizResult<Boolean> batchDeleteTdCCustBusinessByPrimaryKey(BatchDeleteByPrimaryKeyRequest request) {
        int delenum = tdCCustBusinessDao.batchDeleteTdCCustBusinessByPrimaryKey(request.getIds(),request.getOpId(),request.getsOpName());
        if(delenum>0){
            for(Long id :request.getIds()){
                TdCCustBusiness tdCCustBusiness = tdCCustBusinessDao.queryByPrimaryKey(id);

                TdCBusinessAcctRequest tdCBusinessAcctRequest = new TdCBusinessAcctRequest();
                tdCBusinessAcctRequest.setSysCode(BasicEnum.SYS_CODE.getValue());
                tdCBusinessAcctRequest.setBusinessId(tdCCustBusiness.getBusinessId());
                List<TdCBusinessAcct> list = tdCBusinessAcctDao.queryTdCBusinessAcct(tdCBusinessAcctRequest);
                for(TdCBusinessAcct acct:list){
                    acct.setDataState(DataStatusEnum.DATA_STATUS_FROZEN.value());
                    acct.setModifyDate(new Date());
                    acct.setModifyEmpid(request.getOpId());
                    tdCBusinessAcctDao.updateByPrimaryKeySelective(acct);
                }
            }


        }


        return new BizResult<>(delenum>0);
    }

    @Override
    public BizResult<Boolean> saveTdCCustBusiness(TdCCustBusinessSaveRequest request) {
        /**1.判断商户是否存在,商户名称不能重复*/
        TdCCustBusinessRequest requestQ  = new TdCCustBusinessRequest();
        requestQ.setBusinessName(request.getBusinessName());
        requestQ.setOrgId(request.getOrgId());
        List<TdCCustBusiness>  businessList = tdCCustBusinessDao.queryTdCCustBusiness(requestQ);
        if(CollectionUtils.isNotEmpty(businessList)){
            throw new BizException(ErrorType.RECORD_IS_EXIST, "商户记录已存在");
        }

        /**2.保存商户信息*/
        TdCCustBusiness tdCCustBusiness = new TdCCustBusiness();
        BeanUtils.copyProperties(request,tdCCustBusiness);
        /**生成企业ID*/
        String businessId = SequenceUtil.getNextId(SequenceTypeEnum.BUSINESS_ID);
        tdCCustBusiness.setBusinessId(businessId);
        int saveNum = tdCCustBusinessDao.saveTdCCustBusiness(tdCCustBusiness);

            /**3.保存图片关联信息*/
            if(CollectionUtils.isNotEmpty(request.getPicPathList())) {
                for(TdCCustBusinessPicRequest picPathR: request.getPicPathList()) {
                    TdCCustBusinessPic tdCCustBusinessPic = new TdCCustBusinessPic();
                    tdCCustBusinessPic.setBusinessId(businessId);
                    tdCCustBusinessPic.setPicType(picPathR.getPicType());
                    tdCCustBusinessPic.setPicPath(picPathR.getPicPath());
                    tdCCustBusinessPic.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());
                    tdCCustBusinessPic.setCreateEmpid(tdCCustBusiness.getCreateEmpid());
                    tdCCustBusinessPic.setCreateDate(new Date());
                    tdCCustBusinessPicDao.saveTdCCustBusinessPic(tdCCustBusinessPic);
                }
            }


        TdCBusinessAcct tdCBusinessAcct = new TdCBusinessAcct();
        String acctId = SequenceUtil.getNextId(SequenceTypeEnum.ACCOUNT_ID_C_SQE);
        tdCBusinessAcct.setAcctId(acctId);
        tdCBusinessAcct.setBusinessId(businessId);
        tdCBusinessAcct.setBusinessName(tdCCustBusiness.getBusinessName());
        tdCBusinessAcct.setUserPhone(tdCCustBusiness.getUserPhone());
        tdCBusinessAcct.setAcctType(1);
        tdCBusinessAcct.setAcctBalance(new BigDecimal(0));
        tdCBusinessAcct.setAcctOrder(0);
        tdCBusinessAcct.setCreateEmpid(request.getCreateEmpId());
        tdCBusinessAcct.setCreateDate(request.getCreateDate());
        tdCBusinessAcctDao.saveTdCBusinessAcct(tdCBusinessAcct);

        return new BizResult<>(saveNum>0);
    }

    @Override
    public BizResult<Boolean> updateByPrimaryKeySelective(TdCCustBusinessSaveRequest request) {
        TdCCustBusiness tdCCustBusiness = new TdCCustBusiness();
        BeanUtils.copyProperties(request,tdCCustBusiness);
        int upNum = tdCCustBusinessDao.updateByPrimaryKeySelective(tdCCustBusiness);

        if(CollectionUtils.isNotEmpty(request.getPicPathList())) {
            for(TdCCustBusinessPicRequest picPathR: request.getPicPathList()) {
                TdCCustBusinessPic tdCCustBusinessPic = new TdCCustBusinessPic();
                BeanUtils.copyProperties(picPathR,tdCCustBusinessPic);
                int update = tdCCustBusinessPicDao.updateByPrimaryKeySelective(tdCCustBusinessPic);
                if(update<1){
                    tdCCustBusinessPic.setBusinessId(request.getBusinessId());
                    tdCCustBusinessPic.setPicType(picPathR.getPicType());
                    tdCCustBusinessPic.setPicPath(picPathR.getPicPath());
                    tdCCustBusinessPic.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());
                    tdCCustBusinessPic.setCreateEmpid(tdCCustBusiness.getCreateEmpid());
                    tdCCustBusinessPic.setCreateDate(new Date());
                    tdCCustBusinessPicDao.saveTdCCustBusinessPic(tdCCustBusinessPic);
                }
            }
        }
        return new BizResult<>(upNum>0);
    }

    @Override
    public BizResult<List<TdCCustBusinessPicDTO>> queryTdCCustBusinessPicsByBusinessId (TdCCustBusinessRequest req){
        List<TdCCustBusinessPicDTO> dtos = Lists.newArrayList();
        if(null == req || StringUtils.isEmpty(req.getBusinessId())){
            throw new BizException(ErrorType.PARAMM_NULL,"商户ID不能为空");
        }
        List<TdCCustBusinessPic> list = tdCCustBusinessPicDao.queryTdCCustBusinessPicsByBusinessId(req);
        if(CollectionUtils.isNotEmpty(list)){
            ListCopyUtil.listCopyProperties(list,dtos,TdCCustBusinessPicDTO.class);
        }
        return new BizResult<>(dtos);
    }
}