From 035edfa382d349ba66240fbfef68c14c7cfc95d1 Mon Sep 17 00:00:00 2001 From: admin <1101184511@qq.com> Date: 星期五, 08 八月 2025 01:20:21 +0800 Subject: [PATCH] 功能完善 --- src/main/java/com/taoke/autopay/service/impl/ClientInfoServiceImpl.java | 72 +++++++++++++++++++++++++++-------- 1 files changed, 55 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/taoke/autopay/service/impl/ClientInfoServiceImpl.java b/src/main/java/com/taoke/autopay/service/impl/ClientInfoServiceImpl.java index 37dbad7..3c841fc 100644 --- a/src/main/java/com/taoke/autopay/service/impl/ClientInfoServiceImpl.java +++ b/src/main/java/com/taoke/autopay/service/impl/ClientInfoServiceImpl.java @@ -1,9 +1,11 @@ package com.taoke.autopay.service.impl; import com.taoke.autopay.dao.ClientInfoMapper; +import com.taoke.autopay.entity.ClientAdditionalInfo; import com.taoke.autopay.entity.ClientInfo; import com.taoke.autopay.entity.SystemConfigKeyEnum; import com.taoke.autopay.exception.LoginException; +import com.taoke.autopay.service.ClientAdditionalInfoService; import com.taoke.autopay.service.ClientInfoService; import com.taoke.autopay.service.SystemConfigService; import com.taoke.autopay.utils.StringUtil; @@ -11,10 +13,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; /** * @author hxh @@ -29,6 +28,9 @@ @Resource private SystemConfigService systemConfigService; + + @Resource + private ClientAdditionalInfoService clientAdditionalInfoService; @Override public ClientInfo login(String account, String pwd) throws LoginException { @@ -59,9 +61,7 @@ @Override public void setActiveTime(Long id, Date date) { - ClientInfo info = new ClientInfo(); - info.setId(id); - info.setActiveTime(date); + ClientInfo info = ClientInfo.builder().id(id).activeTime(date).build(); clientInfoMapper.updateByPrimaryKeySelective(info); } @@ -97,27 +97,33 @@ // 鏌ヨ鏈�澶х殑璐﹀彿 ClientInfoMapper.DaoQuery query = new ClientInfoMapper.DaoQuery(); query.sortList = Arrays.asList(new String[]{"id desc"}); + query.clientType = info.getClientType(); query.count = 1; List<ClientInfo> list = list(query); long maxId = 0; - if (list.size() > 0) { - maxId = list.get(0).getId(); + if (!list.isEmpty()) { + maxId =Long.parseLong(StringUtil.getNumberFromString(list.get(0).getAccount()).split(",")[0]) + 1; } - info.setAccount("c" + maxId); + if(info.getClientType()==ClientInfo.CLIENT_TYPE_AGENT_PAYMENT) { + info.setAccount(ClientInfo.ClientType.AGENT_PAYMENT.getAccountPrefix() + maxId); + }else if(info.getClientType()==ClientInfo.CLIENT_TYPE_ORDER){ + info.setAccount(ClientInfo.ClientType.ORDER.getAccountPrefix() + maxId); + } } clientInfoMapper.insertSelective(info); - ClientInfo update = new ClientInfo(); - update.setId(info.getId()); - update.setName("瀹㈡埛绔�" + (info.getId() - 1)); - + ClientInfo update = ClientInfo.builder() + .id(info.getId()) + .name("瀹㈡埛绔�" + (info.getId() - 1)) + .build(); clientInfoMapper.updateByPrimaryKeySelective(update); } @Override public void setPwd(Long id, String pwd) { - ClientInfo update = new ClientInfo(); - update.setId(id); - update.setPwd(pwd); + ClientInfo update = ClientInfo.builder() + .id( id) + .pwd(pwd) + .build(); clientInfoMapper.updateByPrimaryKeySelective(update); } @@ -135,4 +141,36 @@ } return idList; } + + @Override + public List<ClientInfo> getAvailableClientsForOrder() { + ClientInfoMapper.DaoQuery query = new ClientInfoMapper.DaoQuery(); + query.clientType = ClientInfo.CLIENT_TYPE_ORDER; + query.count = Integer.MAX_VALUE; + query.minActiveTime = new Date(System.currentTimeMillis()-1000*60*30);// 30鍒嗛挓鍐呮椿璺冪殑璁惧 + List<ClientInfo> clientInfoList = list(query); + if(clientInfoList.isEmpty()){ + return clientInfoList; + } + // 鑾峰彇鐢佃瘽鍙风爜锛屾敮浠樺疂璐﹀彿锛屾敮浠樺疂瀵嗙爜 + List<Long> clientIds=new ArrayList<>(); + clientInfoList.forEach(clientInfo -> { + clientIds.add(clientInfo.getId()); + }); + Map<Long, ClientAdditionalInfo> map = clientAdditionalInfoService.getClientAdditionalInfoMap(clientIds); + for(int i=0;i<clientInfoList.size();i++){ + ClientAdditionalInfo info = map.get(clientInfoList.get(i).getId()); + if(info==null){ + clientInfoList.remove(i); + i--; + continue; + } + if(StringUtil.isNullOrEmpty(info.getMobile())||StringUtil.isNullOrEmpty(info.getAlipayAccount())||StringUtil.isNullOrEmpty(info.getAlipayPassword())){ + clientInfoList.remove(i); + i--; + continue; + } + } + return clientInfoList; + } } -- Gitblit v1.8.0