package com.zteits.pay.biz.impl; import org.apache.commons.lang3.StringUtils; import com.clouds.common.constants.battery.BatteryCardStateEnum; import com.clouds.common.constants.battery.BatteryCardTypeEnum; import com.clouds.common.utils.SequenceUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.zteits.clouds.api.apibase.constants.AccountTypeEnum; 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.pay.dto.battery.BatteryRechargeCardLogDTO; import com.zteits.clouds.api.dto.pay.param.battery.BatteryRechargeCardByCardNoRequest; import com.zteits.clouds.api.dto.pay.param.battery.BatteryRechargeCardLogPageQueryRequest; import com.zteits.pay.dao.TdCAcctPersonDao; import com.zteits.pay.dao.TdCBatteryRechargeCardLogDao; import com.zteits.pay.dao.TdCCustPersonDao; import com.zteits.pay.domain.TdCBatteryRechargeCard; import com.zteits.clouds.api.dto.pay.param.battery.TdCBatteryRechargeCardRequest; import com.zteits.clouds.api.service.pay.TdCBatteryRechargeCardService; import com.zteits.pay.dao.TdCBatteryRechargeCardDao; import com.zteits.clouds.api.dto.pay.dto.battery.TdCBatteryRechargeCardDTO; 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.pay.domain.TdCBatteryRechargeCardExample; import com.zteits.pay.domain.TdCBatteryRechargeCardLog; import com.zteits.pay.domain.TdCBatteryRechargeCardLogExample; import com.zteits.pay.domain.TdCCustPerson; import com.zteits.pay.domain.TdCThirdAuthorizationPush; import com.zteits.pay.domain.TdCThirdAuthorizationPushExample; import com.zteits.pay.mapper.TdCBatteryRechargeCardLogMapper; import com.zteits.pay.pagepager.PageBeanUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Date; import java.util.List; @Component public class TdCBatteryRechargeCardServiceImpl implements TdCBatteryRechargeCardService { @Autowired private TdCBatteryRechargeCardDao tdCBatteryRechargeCardDao; @Autowired private TdCAcctPersonDao tdCAcctPersonDao; @Autowired private TdCCustPersonDao tdCCustPersonDao; @Autowired private TdCBatteryRechargeCardLogDao batteryRechargeCardLogDao; @Override public BizResult queryBatteryRechargeCardByCardNo(BatteryRechargeCardByCardNoRequest request) { TdCBatteryRechargeCardDTO tdCBatteryRechargeCardDTO = tdCBatteryRechargeCardDao.queryBatteryRechargeCardByCardNo(request); return new BizResult<>(tdCBatteryRechargeCardDTO); } @Override public BizResult> queryTdCBatteryRechargeCard(TdCBatteryRechargeCardRequest request) { List tdCBatteryRechargeCardDTOS = tdCBatteryRechargeCardDao.queryTdCBatteryRechargeCard(request); if (CollectionUtils.isEmpty(tdCBatteryRechargeCardDTOS)) { return new BizResult<>(tdCBatteryRechargeCardDTOS); } return new BizResult<>(tdCBatteryRechargeCardDTOS); } @Override public BizResult> queryTdCBatteryRechargeCardForPage(TdCBatteryRechargeCardRequest request) { PageBean pageBean = new PageBean<>(); PageInfo pageInfo = tdCBatteryRechargeCardDao.queryTdCBatteryRechargeCardForPage(request); if (pageInfo != null && pageInfo.getList() != null && pageInfo.getList().size() > 0) { PageBeanUtil.copyProperties(pageInfo, pageBean, TdCBatteryRechargeCardDTO.class); } return new BizResult<>(pageBean); } @Override public BizResult batchDeleteTdCBatteryRechargeCardByPrimaryKey(BatchDeleteByPrimaryKeyRequest request) { int delenum = tdCBatteryRechargeCardDao.batchDeleteTdCBatteryRechargeCardByPrimaryKey(request.getIds(), request.getOpId(), request.getsOpName()); return new BizResult<>(delenum > 0); } @Override public BizResult saveTdCBatteryRechargeCard(TdCBatteryRechargeCardRequest request) { BatteryRechargeCardByCardNoRequest cardByCardNoRequest = new BatteryRechargeCardByCardNoRequest(); cardByCardNoRequest.setCardNo(request.getCardNo()); TdCBatteryRechargeCardDTO rechargeCardDTO = tdCBatteryRechargeCardDao.queryBatteryRechargeCardByCardNo(cardByCardNoRequest); if(rechargeCardDTO != null){ throw new BizException(ErrorType.OBJECT_HAVE_EXISTS,"该卡号已存在"); } TdCBatteryRechargeCard tdCBatteryRechargeCard = new TdCBatteryRechargeCard(); BeanUtils.copyProperties(request, tdCBatteryRechargeCard); //查询手机号是否注册 TdCCustPerson tdCCustPerson = this.insertUserInfo(request.getUserPhone()); tdCBatteryRechargeCard.setCustId(tdCCustPerson.getCustId()); //保存充电卡信息 int saveNum = tdCBatteryRechargeCardDao.saveTdCBatteryRechargeCard(tdCBatteryRechargeCard); //创建账户 tdCAcctPersonDao.addFeeForCustPresentAcct(request.getOrgId(), 0L, AccountTypeEnum.ACCT_BATTERY_CHARGE_CARD.value(), request.getCardNo()); this.saveCardLog(tdCBatteryRechargeCard.getId()); return new BizResult<>(saveNum > 0); } /** * 功能描述 * * @author xiejianpeng * @date 2025/2/28 14:31 */ private TdCCustPerson insertUserInfo(String userPhone) { TdCCustPerson tdCCustPerson = tdCCustPersonDao.selectByUserPhone(userPhone); if (tdCCustPerson != null) { return tdCCustPerson; } TdCCustPerson person = new TdCCustPerson(); String custId = SequenceUtil.getNextId(SequenceTypeEnum.CUST_PERSION_SQE); person.setCustId(custId); person.setUserPhone(userPhone); person.setCustType(1); person.setSex(3); person.setDataState(DataStatusEnum.DATA_STATUS_VALID.value()); person.setPettyPayAmount(0); person.setCreateDate(new Date()); person.setModfiyDate(new Date()); int i = tdCCustPersonDao.insertSelective(person); return person; } @Override public BizResult updateByPrimaryKeySelective(TdCBatteryRechargeCardRequest request) { TdCBatteryRechargeCard tdCBatteryRechargeCard = new TdCBatteryRechargeCard(); BeanUtils.copyProperties(request, tdCBatteryRechargeCard); //修改手机号 if (StringUtils.isNotEmpty(request.getUserPhone())) { //查询手机号是否注册 TdCCustPerson tdCCustPerson = this.insertUserInfo(request.getUserPhone()); tdCBatteryRechargeCard.setCustId(tdCCustPerson.getCustId()); } int upNum = tdCBatteryRechargeCardDao.updateByPrimaryKeySelective(tdCBatteryRechargeCard); this.saveCardLog(tdCBatteryRechargeCard.getId()); return new BizResult<>(upNum > 0); } @Override public BizResult> queryBatteryRechargeCardLogForPage(BatteryRechargeCardLogPageQueryRequest request) { PageBean pageBean = new PageBean<>(); PageInfo pageInfo = batteryRechargeCardLogDao.queryTdCBatteryRechargeCardLogForPage(request); if (pageInfo != null && pageInfo.getList() != null && pageInfo.getList().size() > 0) { PageBeanUtil.copyProperties(pageInfo, pageBean, BatteryRechargeCardLogDTO.class); List batteryRechargeCardLogDTOS = new ArrayList<>(); for (TdCBatteryRechargeCardLog cardLog : pageInfo.getList()) { BatteryRechargeCardLogDTO cardLogDTO = new BatteryRechargeCardLogDTO(); cardLogDTO.setOpDate(cardLog.getModfiyDate()); cardLogDTO.setOpName(cardLog.getModfiyEmpName()); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("手机号:").append(cardLog.getUserPhone()) .append(";卡类型:").append(BatteryCardTypeEnum.getDesc(cardLog.getCardChargeType())) .append(";卡状态:").append(BatteryCardStateEnum.getDesc(cardLog.getCardState())) ; cardLogDTO.setContent(stringBuffer.toString()); batteryRechargeCardLogDTOS.add(cardLogDTO); } pageBean.setDataList(batteryRechargeCardLogDTOS); } return new BizResult<>(pageBean); } /** * 保存充值卡操作日志 * * @author xiejianpeng * @date 2025/3/2 16:05 */ private void saveCardLog(Long id) { TdCBatteryRechargeCard rechargeCard = tdCBatteryRechargeCardDao.queryByPrimaryKey(id); TdCBatteryRechargeCardLog record = new TdCBatteryRechargeCardLog(); BeanUtils.copyProperties(rechargeCard, record); batteryRechargeCardLogDao.saveTdCBatteryRechargeCardLog(record); } }