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;
/**
*
* .
*
* 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> getAllAcctNoSecret(TdCAcctNoSecretRequest request) {
List list = acctNoSecretDao.getAllAcctNoSecret(request);
return new BizResult>(list);
}
@Transactional
@Override
public BizResult 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 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(flg >0 ?true:false);
}
@Transactional
@Override
public BizResult deleteAcctNoSecretBindAcctType(TdCAcctNoSecretRequest request) {
TdCAcctNoSecret tdCAcctNoSecret = new TdCAcctNoSecret();
BeanUtils.copyProperties(request, tdCAcctNoSecret);
Integer flg = acctNoSecretDao.deleteAcctNoSecretBindAcctType(tdCAcctNoSecret);
if(flg>0){
List list = acctNoSecretDao.getAcctNoSecret(request);
if(CollectionUtils.isNotEmpty(list)){
for(int i= 0;i(flg >0 ?true:false);
}
@Override
public BizResult sortAcctNoSecret(TdCAcctNoSecretListRequest request) {
logger.info("开始设置支付类型的优先级排序--"+request);
List list = new ArrayList();
if(request != null){
List 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(flg >0 ?true:false);
}
@Override
public BizResult> getAcctNoSecret(TdCAcctNoSecretRequest request) {
List acctNoSecretList = new ArrayList<>();
List 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>(acctNoSecretList);
}
@Override
public BizResult 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 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 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);
}
}