|
@@ -9,6 +9,8 @@ import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.crypto.SecureUtil;
|
|
import cn.hutool.crypto.SecureUtil;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -36,6 +38,7 @@ import com.kxs.user.api.dto.admin.user.SysUserLogoutListDTO;
|
|
|
import com.kxs.user.api.dto.admin.user.SysUserPageDTO;
|
|
import com.kxs.user.api.dto.admin.user.SysUserPageDTO;
|
|
|
import com.kxs.user.api.dto.admin.user.SysUserUserAccountListDTO;
|
|
import com.kxs.user.api.dto.admin.user.SysUserUserAccountListDTO;
|
|
|
import com.kxs.user.api.dto.admin.user.SysUserWhereListDTO;
|
|
import com.kxs.user.api.dto.admin.user.SysUserWhereListDTO;
|
|
|
|
|
+import com.kxs.user.api.dto.admin.user.UserSearchDTO;
|
|
|
import com.kxs.user.api.dto.kxsapp.ConcealParentDTO;
|
|
import com.kxs.user.api.dto.kxsapp.ConcealParentDTO;
|
|
|
import com.kxs.user.api.dto.kxsapp.app.ForgetPwdDTO;
|
|
import com.kxs.user.api.dto.kxsapp.app.ForgetPwdDTO;
|
|
|
import com.kxs.user.api.dto.kxsapp.app.MchRegisterDTO;
|
|
import com.kxs.user.api.dto.kxsapp.app.MchRegisterDTO;
|
|
@@ -55,6 +58,8 @@ import com.kxs.user.api.model.KxsUserAmount;
|
|
|
import com.kxs.user.api.model.KxsUserBank;
|
|
import com.kxs.user.api.model.KxsUserBank;
|
|
|
import com.kxs.user.api.model.KxsUserPresetLog;
|
|
import com.kxs.user.api.model.KxsUserPresetLog;
|
|
|
import com.kxs.user.api.model.KxsUserReal;
|
|
import com.kxs.user.api.model.KxsUserReal;
|
|
|
|
|
+import com.kxs.user.api.vo.admin.user.SysFeignUserDetailVO;
|
|
|
|
|
+import com.kxs.user.api.vo.admin.user.SysTopUserVO;
|
|
|
import com.kxs.user.api.vo.admin.user.SysUserPageVO;
|
|
import com.kxs.user.api.vo.admin.user.SysUserPageVO;
|
|
|
import com.kxs.user.api.vo.admin.user.SysUserUserAccountListVO;
|
|
import com.kxs.user.api.vo.admin.user.SysUserUserAccountListVO;
|
|
|
import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
|
|
import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
|
|
@@ -317,37 +322,59 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
|
|
|
*/
|
|
*/
|
|
|
private void packageTopUser(List<SysUserPageVO> list){
|
|
private void packageTopUser(List<SysUserPageVO> list){
|
|
|
if(CollectionUtil.isNotEmpty(list)){
|
|
if(CollectionUtil.isNotEmpty(list)){
|
|
|
- //顶级创客的userId集合
|
|
|
|
|
- List<Integer> userIds = new ArrayList<>();
|
|
|
|
|
- //当前用户和顶级创客对应关系map
|
|
|
|
|
- Map<Integer,Integer> map = new HashMap<>();
|
|
|
|
|
|
|
+ List<KxsUser> kxsUserList = new ArrayList<>();
|
|
|
|
|
+ kxsUserList.addAll(list);
|
|
|
|
|
+ Map<Integer, SysTopUserVO> topUserMap = getTopUserMap(kxsUserList);
|
|
|
for(SysUserPageVO sysUserPageVO:list){
|
|
for(SysUserPageVO sysUserPageVO:list){
|
|
|
- String pidPath = sysUserPageVO.getPidPath();
|
|
|
|
|
- String topUserId = TopUserIdUtil.getTopUserId(pidPath);
|
|
|
|
|
- if(StringUtils.isNotBlank(topUserId)){
|
|
|
|
|
- map.put(sysUserPageVO.getId(),Integer.valueOf(topUserId));
|
|
|
|
|
- userIds.add(Integer.valueOf(topUserId));
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if(CollectionUtil.isNotEmpty(userIds)){
|
|
|
|
|
- //查询顶级创客
|
|
|
|
|
- List<KxsUser> kxsUsers = listByIds(userIds);
|
|
|
|
|
- Map<Integer, KxsUser> topUserMap = kxsUsers.stream().collect(Collectors.toMap(o -> o.getId(), o -> o, (o1, o2) -> o2));
|
|
|
|
|
- //设置顶级创客信息
|
|
|
|
|
- for(SysUserPageVO sysUserPageVO:list){
|
|
|
|
|
- Integer userId = sysUserPageVO.getId();
|
|
|
|
|
- if(map.containsKey(userId)){
|
|
|
|
|
- Integer topUserId = map.get(userId);
|
|
|
|
|
- if(topUserMap.containsKey(topUserId)){
|
|
|
|
|
- KxsUser kxsUser = topUserMap.get(topUserId);
|
|
|
|
|
- sysUserPageVO.setTopUserCode(kxsUser.getUserCode());
|
|
|
|
|
- sysUserPageVO.setTopUsername(kxsUser.getUsername());
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ Integer userId = sysUserPageVO.getId();
|
|
|
|
|
+ if(topUserMap.containsKey(userId)){
|
|
|
|
|
+ SysTopUserVO sysTopUserVO = topUserMap.get(userId);
|
|
|
|
|
+ sysUserPageVO.setTopUsername(sysTopUserVO.getTopUsername());
|
|
|
|
|
+ sysUserPageVO.setTopUserCode(sysTopUserVO.getTopUserCode());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取用户和顶级创客的关系map
|
|
|
|
|
+ * @param list
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ private Map<Integer,SysTopUserVO> getTopUserMap(List<KxsUser> list){
|
|
|
|
|
+ //用户和顶级创客的对应关系
|
|
|
|
|
+ Map<Integer,SysTopUserVO> topUserMap = new HashMap<>();
|
|
|
|
|
+ if(CollectionUtil.isEmpty(list)){
|
|
|
|
|
+ return topUserMap;
|
|
|
|
|
+ }
|
|
|
|
|
+ //顶级创客的userId集合
|
|
|
|
|
+ List<Integer> userIds = new ArrayList<>();
|
|
|
|
|
+ //当前用户和顶级创客对应关系map
|
|
|
|
|
+ Map<Integer,Integer> map = new HashMap<>();
|
|
|
|
|
+ for(KxsUser kxsUser:list){
|
|
|
|
|
+ String pidPath = kxsUser.getPidPath();
|
|
|
|
|
+ String topUserId = TopUserIdUtil.getTopUserId(pidPath);
|
|
|
|
|
+ if(StringUtils.isNotBlank(topUserId)){
|
|
|
|
|
+ map.put(kxsUser.getId(),Integer.valueOf(topUserId));
|
|
|
|
|
+ userIds.add(Integer.valueOf(topUserId));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(userIds)){
|
|
|
|
|
+ //查询顶级创客
|
|
|
|
|
+ List<KxsUser> kxsUsers = listByIds(userIds);
|
|
|
|
|
+ Map<Integer, KxsUser> userMap = kxsUsers.stream().collect(Collectors.toMap(o -> o.getId(), o -> o, (o1, o2) -> o2));
|
|
|
|
|
+ for(Integer userId:map.keySet()){
|
|
|
|
|
+ Integer topUserId = map.get(userId);
|
|
|
|
|
+ if(map.containsKey(userId) && userMap.containsKey(topUserId)){
|
|
|
|
|
+ KxsUser kxsUser = userMap.get(topUserId);
|
|
|
|
|
+ SysTopUserVO sysTopUserVO = new SysTopUserVO();
|
|
|
|
|
+ sysTopUserVO.setTopUserCode(kxsUser.getUserCode());
|
|
|
|
|
+ sysTopUserVO.setTopUsername(kxsUser.getUsername());
|
|
|
|
|
+ topUserMap.put(userId,sysTopUserVO);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return topUserMap;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -429,6 +456,41 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
|
|
|
return list;
|
|
return list;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<Integer> searchUserList(UserSearchDTO userSearchDTO) {
|
|
|
|
|
+ LambdaQueryWrapper<KxsUser> query = new LambdaQueryWrapper();
|
|
|
|
|
+ query.like(StringUtils.isNotBlank(userSearchDTO.getUsername()),KxsUser::getUsername,userSearchDTO.getUsername());
|
|
|
|
|
+ query.like(StringUtils.isNotBlank(userSearchDTO.getUserCode()),KxsUser::getUserCode,userSearchDTO.getUserCode());
|
|
|
|
|
+ query.last("limit 100");
|
|
|
|
|
+ List<Integer> ids = new ArrayList<>();
|
|
|
|
|
+ List<KxsUser> userList = this.list(query);
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(userList)){
|
|
|
|
|
+ ids = userList.stream().map(o -> o.getId()).collect(Collectors.toList());
|
|
|
|
|
+ }
|
|
|
|
|
+ return ids;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public Map<Integer, SysFeignUserDetailVO> topUserList(List<Integer> userIds) {
|
|
|
|
|
+ List<KxsUser> kxsUsers = listByIds(userIds);
|
|
|
|
|
+ Map<Integer, SysTopUserVO> topUserMap = getTopUserMap(kxsUsers);
|
|
|
|
|
+ Map<Integer,SysFeignUserDetailVO> map = new HashMap<>();
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(kxsUsers)){
|
|
|
|
|
+ for(KxsUser kxsUser:kxsUsers){
|
|
|
|
|
+ SysFeignUserDetailVO sysFeignUserDetailVO = new SysFeignUserDetailVO();
|
|
|
|
|
+ sysFeignUserDetailVO.setUsername(kxsUser.getUsername());
|
|
|
|
|
+ sysFeignUserDetailVO.setUserCode(kxsUser.getUserCode());
|
|
|
|
|
+ if(topUserMap.containsKey(kxsUser.getId())){
|
|
|
|
|
+ SysTopUserVO sysTopUserVO = topUserMap.get(kxsUser.getId());
|
|
|
|
|
+ sysFeignUserDetailVO.setTopUserCode(sysTopUserVO.getTopUserCode());
|
|
|
|
|
+ sysFeignUserDetailVO.setTopUsername(sysTopUserVO.getTopUsername());
|
|
|
|
|
+ }
|
|
|
|
|
+ map.put(kxsUser.getId(),sysFeignUserDetailVO);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return map;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public Boolean sendCode(String mobile) {
|
|
public Boolean sendCode(String mobile) {
|
|
|
|
|
|