|
|
@@ -23,6 +23,7 @@ import shop.alien.entity.store.*;
|
|
|
import shop.alien.entity.store.excelVo.StoreUserExcelVo;
|
|
|
import shop.alien.entity.store.excelVo.util.ExcelGenerator;
|
|
|
import shop.alien.entity.store.vo.StoreSubExcelVo;
|
|
|
+import shop.alien.entity.store.vo.StoreUserLogoutListVo;
|
|
|
import shop.alien.entity.store.vo.StoreUserVo;
|
|
|
import shop.alien.entity.store.vo.WebSocketVo;
|
|
|
import shop.alien.mapper.*;
|
|
|
@@ -1312,4 +1313,70 @@ public class StoreUserServiceImpl extends ServiceImpl<StoreUserMapper, StoreUser
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IPage<StoreUserLogoutListVo> getStoreUserLogoutPage(int pageNum, int pageSize, String userName, String phone, Integer status) {
|
|
|
+ Page<StoreUser> page = new Page<>(pageNum, pageSize);
|
|
|
+ LambdaQueryWrapper<StoreUser> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(StoreUser::getDeleteFlag, 0)
|
|
|
+ .and(w -> w.eq(StoreUser::getLogoutFlag, 1)
|
|
|
+ .or().eq(StoreUser::getStatus, -1)
|
|
|
+ .or().eq(StoreUser::getStatus, 2));
|
|
|
+ if (status != null && status == -1) {
|
|
|
+ wrapper.eq(StoreUser::getStatus, -1);
|
|
|
+ } else if (status != null && status == 2) {
|
|
|
+ wrapper.and(w -> w.eq(StoreUser::getStatus, 2)
|
|
|
+ .or(sub -> sub.eq(StoreUser::getLogoutFlag, 1)
|
|
|
+ .and(inner -> inner.isNull(StoreUser::getStatus).or().ne(StoreUser::getStatus, -1))));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(userName)) {
|
|
|
+ wrapper.like(StoreUser::getName, userName);
|
|
|
+ }
|
|
|
+ wrapper.like(StringUtils.isNotEmpty(phone), StoreUser::getPhone, phone)
|
|
|
+ .orderByDesc(StoreUser::getLogoutTime)
|
|
|
+ .orderByDesc(StoreUser::getCreatedTime);
|
|
|
+
|
|
|
+ IPage<StoreUser> userPage = storeUserMapper.selectPage(page, wrapper);
|
|
|
+ Page<StoreUserLogoutListVo> result = new Page<>(userPage.getCurrent(), userPage.getSize(), userPage.getTotal());
|
|
|
+ result.setRecords(userPage.getRecords().stream().map(this::toStoreUserLogoutListVo).collect(Collectors.toList()));
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ private StoreUserLogoutListVo toStoreUserLogoutListVo(StoreUser user) {
|
|
|
+ StoreUserLogoutListVo vo = new StoreUserLogoutListVo();
|
|
|
+ vo.setId(user.getId());
|
|
|
+ vo.setName(user.getName());
|
|
|
+ vo.setRealName(user.getName());
|
|
|
+ vo.setPhone(user.getPhone());
|
|
|
+ vo.setCreatedTime(user.getCreatedTime());
|
|
|
+ vo.setApplyLogoutTime(user.getLogoutTime());
|
|
|
+ vo.setLogoutReason(user.getLogoutReason());
|
|
|
+
|
|
|
+ int rowStatus = resolveLogoutListStatus(user);
|
|
|
+ vo.setStatus(rowStatus);
|
|
|
+ vo.setStatusName(rowStatus == -1 ? "注销中" : "已注销");
|
|
|
+ vo.setLogoutFinishTime(resolveLogoutFinishTime(user, rowStatus));
|
|
|
+ return vo;
|
|
|
+ }
|
|
|
+
|
|
|
+ private int resolveLogoutListStatus(StoreUser user) {
|
|
|
+ if (user.getStatus() != null && user.getStatus() == -1) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ if ((user.getStatus() != null && user.getStatus() == 2)
|
|
|
+ || (user.getLogoutFlag() != null && user.getLogoutFlag() == 1)) {
|
|
|
+ return 2;
|
|
|
+ }
|
|
|
+ return user.getStatus() != null ? user.getStatus() : 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ private Date resolveLogoutFinishTime(StoreUser user, int rowStatus) {
|
|
|
+ if (rowStatus == -1 && user.getLogoutTime() != null) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(user.getLogoutTime());
|
|
|
+ calendar.add(Calendar.DAY_OF_YEAR, 7);
|
|
|
+ return calendar.getTime();
|
|
|
+ }
|
|
|
+ return user.getUpdatedTime();
|
|
|
+ }
|
|
|
}
|