From f318c9c7c127b00f353bf45f273096d1dc4b424f Mon Sep 17 00:00:00 2001 From: admin <1101184511@qq.com> Date: 星期三, 20 八月 2025 01:10:48 +0800 Subject: [PATCH] 功能完善 --- src/main/java/com/taoke/autopay/service/impl/ClientInfoServiceImpl.java | 133 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 128 insertions(+), 5 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 c4ccd67..a6511d9 100644 --- a/src/main/java/com/taoke/autopay/service/impl/ClientInfoServiceImpl.java +++ b/src/main/java/com/taoke/autopay/service/impl/ClientInfoServiceImpl.java @@ -1,14 +1,19 @@ 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; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Date; -import java.util.List; +import java.util.*; /** * @author hxh @@ -20,6 +25,12 @@ public class ClientInfoServiceImpl implements ClientInfoService { @Resource private ClientInfoMapper clientInfoMapper; + + @Resource + private SystemConfigService systemConfigService; + + @Resource + private ClientAdditionalInfoService clientAdditionalInfoService; @Override public ClientInfo login(String account, String pwd) throws LoginException { @@ -39,15 +50,127 @@ } @Override + public void logout(Long uid) { + clientInfoMapper.clearActiveTime(uid); + } + + @Override public ClientInfo selectByPrimaryKey(Long id) { return clientInfoMapper.selectByPrimaryKey(id); } @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); } + + @Override + public List<ClientInfo> listByIds(List<Long> ids) { + return clientInfoMapper.listByIds(ids); + } + + @Override + public List<ClientInfo> list(ClientInfoMapper.DaoQuery query) { + return clientInfoMapper.list(query); + } + + @Override + public long count(ClientInfoMapper.DaoQuery query) { + return clientInfoMapper.count(query); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void add(ClientInfo info) { + if (info.getPwd() == null) { + info.setPwd("123456"); + } + if (info.getRule() == null) { + info.setRule(ClientInfo.RULE_COMMON); + } + if (info.getCreateTime() == null) { + info.setCreateTime(new Date()); + } + + if (info.getAccount() == null) { + // 鏌ヨ鏈�澶х殑璐﹀彿 + 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.isEmpty()) { + maxId =Long.parseLong(StringUtil.getNumberFromString(list.get(0).getAccount()).split(",")[0]) + 1; + } + 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 = ClientInfo.builder() + .id(info.getId()) + .name("瀹㈡埛绔�" + (info.getId() - 1)) + .build(); + clientInfoMapper.updateByPrimaryKeySelective(update); + } + + @Override + public void setPwd(Long id, String pwd) { + ClientInfo update = ClientInfo.builder() + .id( id) + .pwd(pwd) + .build(); + clientInfoMapper.updateByPrimaryKeySelective(update); + } + + @Override + public List<Long> getRePayClientIds() { + List<Long> idList = new ArrayList<>(); + + String clientIds = systemConfigService.getValueCache(SystemConfigKeyEnum.RE_EXCUTE_PAY_CLIENTS); + if (StringUtil.isNullOrEmpty(clientIds)) { + return idList; + } + String[] ids = clientIds.trim().split(","); + for (String id : ids) { + idList.add(Long.parseLong(id)); + } + 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())){ + clientInfoList.remove(i); + i--; + continue; + } + } + return clientInfoList; + } } -- Gitblit v1.8.0