diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/game/ChargeUserXDetailAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/game/ChargeUserXDetailAdminController.java index 2c8cdc57f..e0848dbd0 100644 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/game/ChargeUserXDetailAdminController.java +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/game/ChargeUserXDetailAdminController.java @@ -24,6 +24,7 @@ import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -47,9 +48,12 @@ public class ChargeUserXDetailAdminController extends BaseController { @GetMapping(value = "/list") public BusiResult> listPage(Long erbanNo, String ip, - String device, Integer identity, Integer pageNo, Integer pageSize) { + String device, Integer identity, Integer pageNo, Integer pageSize, Integer partitionId) { List allPartitionId = adminPartitionService.getAllPartitionId(getAdminId()); - IPage ipage = chargeUserXDetailService.listPage(allPartitionId, erbanNo, ip, device, identity, pageNo, pageSize); + if (!allPartitionId.contains(partitionId)) { + throw new AdminServiceException(5001, "无权查看该区数据权限"); + } + IPage ipage = chargeUserXDetailService.listPage(Arrays.asList(partitionId), erbanNo, ip, device, identity, pageNo, pageSize); return BusiResult.success(ipage); } @@ -84,9 +88,12 @@ public class ChargeUserXDetailAdminController extends BaseController { @ApiOperation(value = "导出", httpMethod = "POST") @PostMapping("/export") - public void export(Long erbanNo, String ip, String device, Integer identity, HttpServletResponse response) throws IOException { + public void export(Long erbanNo, String ip, String device, Integer identity, Integer partitionId, HttpServletResponse response) throws IOException { List allPartitionId = adminPartitionService.getAllPartitionId(getAdminId()); - IPage ipage = chargeUserXDetailService.listPage(allPartitionId, erbanNo, ip, device, identity, -1, -1); + if (!allPartitionId.contains(partitionId)) { + throw new AdminServiceException(5001, "无权查看该区数据权限"); + } + IPage ipage = chargeUserXDetailService.listPage(Arrays.asList(partitionId), erbanNo, ip, device, identity, -1, -1); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); // 这里URLEncoder.encode可以防止中文乱码 diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/game/ChargeUserXDetailService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/game/ChargeUserXDetailService.java index 84ccf7537..c41f21cd9 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/game/ChargeUserXDetailService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/game/ChargeUserXDetailService.java @@ -75,7 +75,7 @@ public class ChargeUserXDetailService extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(ChargeUserXDetail::getIdentity, 1) - .gt(ChargeUserXDetail::getRefStatus, 0) - .orderByDesc(ChargeUserXDetail::getId) + queryWrapper.orderByDesc(ChargeUserXDetail::getId) .last("limit 1"); ChargeUserXDetail chargeUserXDetail = this.baseMapper.selectOne(queryWrapper); return chargeUserXDetail == null ? 0 : chargeUserXDetail.getId(); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/game/ChargeUserXRecordService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/game/ChargeUserXRecordService.java index 11701c8c8..47ef88092 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/game/ChargeUserXRecordService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/game/ChargeUserXRecordService.java @@ -3,6 +3,7 @@ package com.accompany.business.service.game; import com.accompany.business.model.game.ChargeUserXRecord; import com.accompany.business.mybatismapper.game.ChargeUserXRecordMapper; import com.accompany.business.param.BasePageParams; +import com.accompany.core.util.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,10 +11,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -32,16 +30,23 @@ public class ChargeUserXRecordService extends ServiceImpl ips = this.baseMapper.getLastThirtyXIp(uid); Date updateTime = new Date(); - if (!CollectionUtils.isEmpty(ips)){ + Set ipSet = new HashSet<>(); + if (StringUtils.isNoneEmpty(lastLoginIp)) { + ipSet.add(lastLoginIp); + } + if (CollectionUtils.isEmpty(ips)) { + ips.addAll(ips); + } + if (!CollectionUtils.isEmpty(ipSet)){ List uidIpRecords = this.listUidIpRecord(uid); Map ipRecordMap = new HashMap<>(); if (CollectionUtils.isNotEmpty(uidIpRecords)) { ipRecordMap = uidIpRecords.stream().collect(Collectors.toMap(ChargeUserXRecord::getIp, v -> v)); } - for (String ip : ips) { + for (String ip : ipSet) { ChargeUserXRecord xRecord = ipRecordMap.get(ip); if (xRecord != null) { xRecord.setStatus(1); @@ -56,16 +61,23 @@ public class ChargeUserXRecordService extends ServiceImpl devices = this.baseMapper.getLastThirtyXDevice(uid); - if (!CollectionUtils.isEmpty(devices)){ + Set deviceSet = new HashSet<>(); + if (StringUtils.isNotEmpty(lastLoginDevice)) { + deviceSet.add(lastLoginDevice); + } + if (CollectionUtils.isEmpty(devices)) { + deviceSet.addAll(devices); + } + if (!CollectionUtils.isEmpty(deviceSet)){ List uidDeviceRecords = this.listUidDeviceRecord(uid); Map deviceRecordMap = new HashMap<>(); if (CollectionUtils.isNotEmpty(uidDeviceRecords)) { deviceRecordMap = uidDeviceRecords.stream().collect(Collectors.toMap(ChargeUserXRecord::getIp, v -> v)); } - for (String device : devices) { + for (String device : deviceSet) { ChargeUserXRecord xRecord = deviceRecordMap.get(device); if (xRecord != null) { xRecord.setStatus(1); @@ -79,7 +91,7 @@ public class ChargeUserXRecordService extends ServiceImpl