AcctNoSecretServiceImpl.java 6.88 KB
package com.zteits.pay.biz;

import org.apache.commons.collections4.CollectionUtils;
import com.alibaba.fastjson.JSONObject;
import com.xiaoleilu.hutool.util.CollectionUtil;
import com.zteits.clouds.api.apibase.bean.BizResult;
import com.zteits.clouds.api.apibase.constants.AccountTypeNoSecretEnum;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.apibase.constants.ErrorType;
import com.zteits.clouds.api.apibase.exception.BizException;
import com.zteits.clouds.api.dto.pay.TdCAcctNoSecretDTO;
import com.zteits.clouds.api.dto.pay.param.IsOpenAutoPayRequest;
import com.zteits.clouds.api.dto.pay.param.TdCAcctNoSecretListRequest;
import com.zteits.clouds.api.dto.pay.param.TdCAcctNoSecretRequest;
import com.zteits.clouds.api.service.pay.AcctNoSecretService;
import com.zteits.pay.dao.AcctNoSecretDao;
import com.zteits.pay.dao.TdCCarDao;
import com.zteits.pay.domain.TdCAcctNoSecret;
import com.zteits.pay.domain.TdCCar;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * 
 * .<br/>
 * 
 * Copyright: Copyright (c) 2017  zteits
 * 
 * @ClassName: AcctNoSecretServiceImplO
 * @Description: 
 * @version: v1.0.0
 * @author: xiejianpeng
 * @date: 2017年12月5日 上午11:45:31
 * Modification History:
 * Date             Author          Version            Description
 *---------------------------------------------------------*
 * 2017年12月5日      xiejianpeng           v1.0.0               创建
 */
@Service("com.zteits.pay.biz.AcctNoSecretServiceImpl")
public class AcctNoSecretServiceImpl implements AcctNoSecretService{

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

	@Autowired
	private AcctNoSecretDao acctNoSecretDao;
	@Autowired
	private TdCCarDao tdCCarDao;

	@Override
	public BizResult<List<TdCAcctNoSecretDTO>> getAllAcctNoSecret(TdCAcctNoSecretRequest request) {
		List<TdCAcctNoSecretDTO> list = acctNoSecretDao.getAllAcctNoSecret(request);
		return new BizResult<List<TdCAcctNoSecretDTO>>(list);
	}

	@Transactional
	@Override
	public BizResult<Boolean> saveAcctNoSecretBindAcctType(TdCAcctNoSecretRequest request) {
		logger.info("开通免密支付-开始--"+request);
		TdCAcctNoSecret tdCAcctNoSecret = new TdCAcctNoSecret();
		BeanUtils.copyProperties(request, tdCAcctNoSecret);
		tdCAcctNoSecret.setAcctOrder(AccountTypeNoSecretEnum.ACC_SORT_TALL.val());//当排序为1时,优先级最高
		tdCAcctNoSecret.setCreateEmpid(tdCAcctNoSecret.getCustId());
		tdCAcctNoSecret.setCreateDate(new Date());
		tdCAcctNoSecret.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());
		//先查询之前的
		List<TdCAcctNoSecret> list = acctNoSecretDao.getAcctNoSecret(request);
		tdCAcctNoSecret.setIsOpen(1);
		Integer flg = acctNoSecretDao.saveAcctNoSecretBindAcctType(tdCAcctNoSecret);
		if(flg>0){
			//其他的优先级都加1
			if(CollectionUtils.isNotEmpty(list)){
				for(int i= 0;i<list.size();i++){
					list.get(i).setAcctOrder(i+2);
					list.get(i).setModfiyEmpid(tdCAcctNoSecret.getCustId());
					list.get(i).setModfiyDate(new Date());
				}
				acctNoSecretDao.updateAcctNoSecretBindAcctType(list);
			}
		}
		logger.info("开通免密支付-结束--"+flg);
		return new BizResult<Boolean>(flg >0 ?true:false);
	}

	@Transactional
	@Override
	public BizResult<Boolean> deleteAcctNoSecretBindAcctType(TdCAcctNoSecretRequest request) {
		TdCAcctNoSecret tdCAcctNoSecret = new TdCAcctNoSecret();
		BeanUtils.copyProperties(request, tdCAcctNoSecret);
		Integer flg = acctNoSecretDao.deleteAcctNoSecretBindAcctType(tdCAcctNoSecret);
		if(flg>0){
			List<TdCAcctNoSecret> list = acctNoSecretDao.getAcctNoSecret(request);
			if(CollectionUtils.isNotEmpty(list)){
				for(int i= 0;i<list.size();i++){
					list.get(i).setAcctOrder(i+1);
					list.get(i).setModfiyEmpid(tdCAcctNoSecret.getCustId());
					list.get(i).setModfiyDate(new Date());
				}
				//修改其他的优先级
				acctNoSecretDao.updateAcctNoSecretBindAcctType(list);
			}
		}
		return new BizResult<Boolean>(flg >0 ?true:false);
	}

	@Override
	public BizResult<Boolean> sortAcctNoSecret(TdCAcctNoSecretListRequest request) {
		logger.info("开始设置支付类型的优先级排序--"+request);
		List<TdCAcctNoSecret> list = new ArrayList<TdCAcctNoSecret>();
		if(request != null){
			List<TdCAcctNoSecretRequest> sortlist = request.getSortlist();
			if(CollectionUtils.isNotEmpty(sortlist)){
				for(TdCAcctNoSecretRequest tdCAcctNoSecretRequest:sortlist ){
					TdCAcctNoSecret tdCAcctNoSecret = new TdCAcctNoSecret();
					BeanUtils.copyProperties(tdCAcctNoSecretRequest, tdCAcctNoSecret);
					tdCAcctNoSecret.setModfiyEmpid(tdCAcctNoSecret.getCustId());
					tdCAcctNoSecret.setModfiyDate(new Date());
					list.add(tdCAcctNoSecret);
				}
			}
		}
		//修改其他的优先级
		Integer flg = acctNoSecretDao.updateAcctNoSecretBindAcctType(list);
		logger.info("结束设置支付类型的优先级排序--返回结果"+flg);
		return new BizResult<Boolean>(flg >0 ?true:false);
	}

	@Override
	public BizResult<List<TdCAcctNoSecretDTO>> getAcctNoSecret(TdCAcctNoSecretRequest request) {
		List<TdCAcctNoSecretDTO> acctNoSecretList = new ArrayList<>();
		List<TdCAcctNoSecret> list = acctNoSecretDao.getAcctNoSecret(request);
		if(CollectionUtils.isNotEmpty(list)){
			for(TdCAcctNoSecret tdCAcctNoSecret : list){
				TdCAcctNoSecretDTO tdCAcctNoSecretDTO = new TdCAcctNoSecretDTO();
				BeanUtils.copyProperties(tdCAcctNoSecret, tdCAcctNoSecretDTO);
				acctNoSecretList.add(tdCAcctNoSecretDTO);
			}
		}
		return new BizResult<List<TdCAcctNoSecretDTO>>(acctNoSecretList);
	}

	@Override
	public BizResult<Boolean> isOpenAutoPay(IsOpenAutoPayRequest request) {
		logger.debug("查询用户是否开通自动扣款:{}", JSONObject.toJSON(request));
		String custId = request.getCustId();
		if(StringUtils.isBlank(custId)){
			//根据车牌号查询custId
			if(StringUtils.isBlank(request.getCarNumber())){
				throw new BizException(ErrorType.PARAM_NOT_VALID);
			}
			TdCCar reqcar = new TdCCar();
			reqcar.setCarNumber(request.getCarNumber());
			List<TdCCar> carlist = tdCCarDao.selectCustInfo(reqcar);
			if(CollectionUtil.isEmpty(carlist)){
				return new BizResult<>(false);
			}
			custId = carlist.get(0).getCustId();
		}
		TdCAcctNoSecretRequest accreq = new TdCAcctNoSecretRequest();
		accreq.setCustId(custId);
		List<TdCAcctNoSecretDTO> list = acctNoSecretDao.getAllAcctNoSecret(accreq);
		if (CollectionUtils.isNotEmpty(list)) {
			for (TdCAcctNoSecretDTO dto : list) {
				if (dto.getAcctType() == 5 && dto.getIsOpen() == 1) {
					/**是否开通自动扣款,0-否,1-是*/
					return new BizResult<>(true);
				}
			}
		}
		return new BizResult<>(false);
	}


}