|
@@ -14,6 +14,7 @@ import org.jeecg.modules.okki.account.entity.OkkiAccount;
|
|
|
import org.jeecg.modules.okki.account.mapper.OkkiAccountMapper;
|
|
|
import org.jeecg.modules.okki.account.param.OkkiAccountResetPwdParam;
|
|
|
import org.jeecg.modules.okki.account.service.IOkkiAccountService;
|
|
|
+import org.jeecg.modules.okki.site.entity.OkkiSite;
|
|
|
import org.jeecg.modules.okki.site.service.IOkkiSiteService;
|
|
|
import org.jeecg.modules.okki.siteuser.entity.OkkiSiteUser;
|
|
|
import org.jeecg.modules.okki.siteuser.service.IOkkiSiteUserService;
|
|
@@ -22,8 +23,10 @@ import org.jeecg.modules.system.service.ISysDictService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @Description: 小二账号
|
|
@@ -566,4 +569,125 @@ public class OkkiAccountServiceImpl extends ServiceImpl<OkkiAccountMapper, OkkiA
|
|
|
}
|
|
|
return mergedList;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加用户到站点
|
|
|
+ *
|
|
|
+ * @param newUsers
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void addUserToSite(List<Map<String, String>> newUsers) {
|
|
|
+ List<OkkiSite> okkiSites = okkiSiteService.getAssignSiteList();
|
|
|
+ log.info("要处理的站点数量有:okkiSites:{}", okkiSites.size());
|
|
|
+
|
|
|
+ okkiSites.forEach(c -> {
|
|
|
+ QueryWrapper<OkkiSiteUser> okkiSiteUserQueryWrapper = new QueryWrapper<>();
|
|
|
+ okkiSiteUserQueryWrapper.eq("site_id", c.getSiteId());
|
|
|
+ List<OkkiSiteUser> okkiSiteUsers = okkiSiteUserService.list(okkiSiteUserQueryWrapper);
|
|
|
+ log.info("okkiSiteUsers:{}", FastJsonUtil.toJSONString(okkiSiteUsers));
|
|
|
+ if (!CollectionUtils.isEmpty(okkiSiteUsers)) {
|
|
|
+ Map<String, String> siteUsersMap = okkiSiteUsers.stream()
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
+ OkkiSiteUser::getType,
|
|
|
+ Collectors.mapping(okkiSiteUser -> String.valueOf(okkiSiteUser.getUserId()), Collectors.joining(","))
|
|
|
+ ));
|
|
|
+ log.info("siteUsersMap before adding new user: {}", FastJsonUtil.toJSONString(siteUsersMap));
|
|
|
+
|
|
|
+ // 插入到 siteUsersMap
|
|
|
+ for (Map<String, String> user : newUsers) {
|
|
|
+ String role = user.get("userRole");
|
|
|
+ String id = user.get("userId");
|
|
|
+ siteUsersMap.merge(role, id, (existingValue, newValue) -> existingValue + "," + newValue);
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("siteUsersMap after adding new user: {}", FastJsonUtil.toJSONString(siteUsersMap));
|
|
|
+
|
|
|
+ OkkiBindSiteDto okkiBindSiteDto = new OkkiBindSiteDto();
|
|
|
+ okkiBindSiteDto.setServiceManageUser(siteUsersMap.get("serviceManageUser"));
|
|
|
+ okkiBindSiteDto.setDataUser(siteUsersMap.get("dataUser"));
|
|
|
+ okkiBindSiteDto.setKefuUser(siteUsersMap.get("kefuUser"));
|
|
|
+ okkiBindSiteDto.setSeoUser(siteUsersMap.get("seoUser"));
|
|
|
+
|
|
|
+ okkiBindSiteDto.setSemManageUser(siteUsersMap.get("semManageUser"));
|
|
|
+ okkiBindSiteDto.setSemUser(siteUsersMap.get("semUser"));
|
|
|
+ okkiBindSiteDto.setUiUser(siteUsersMap.get("uiUser"));
|
|
|
+
|
|
|
+ okkiBindSiteDto.setWebsiteUser(siteUsersMap.get("websiteUser"));
|
|
|
+ okkiBindSiteDto.setSocialUser(siteUsersMap.get("socialUser"));
|
|
|
+ okkiBindSiteDto.setRdUser(siteUsersMap.get("rdUser"));
|
|
|
+ log.info("okkiBindSiteDto:{}", FastJsonUtil.toJSONString(okkiBindSiteDto));
|
|
|
+
|
|
|
+// okkiAccountService.bindSitesV2(okkiBindSiteDto);
|
|
|
+ log.info("用户:{},分配公司名称:{}", FastJsonUtil.toJSONString(newUsers), c.getCompanyName());
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量删除站点用户
|
|
|
+ *
|
|
|
+ * @param usersToRemoves
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void removeUserToSite(List<Map<String, String>> usersToRemoves) {
|
|
|
+ List<OkkiSite> okkiSites = okkiSiteService.getAssignSiteList();
|
|
|
+ log.info("要处理的站点数量有:okkiSites:{}", okkiSites.size());
|
|
|
+ okkiSites.forEach(c -> {
|
|
|
+ QueryWrapper<OkkiSiteUser> okkiSiteUserQueryWrapper = new QueryWrapper<>();
|
|
|
+ okkiSiteUserQueryWrapper.eq("site_id", c.getSiteId());
|
|
|
+ List<OkkiSiteUser> okkiSiteUsers = okkiSiteUserService.list(okkiSiteUserQueryWrapper);
|
|
|
+ log.info("okkiSiteUsers:{}", FastJsonUtil.toJSONString(okkiSiteUsers));
|
|
|
+ if (!CollectionUtils.isEmpty(okkiSiteUsers)) {
|
|
|
+ Map<String, String> siteUsersMap = okkiSiteUsers.stream()
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
+ OkkiSiteUser::getType,
|
|
|
+ Collectors.mapping(okkiSiteUser -> String.valueOf(okkiSiteUser.getUserId()), Collectors.joining(","))
|
|
|
+ ));
|
|
|
+ log.info("siteUsersMap before removing new user: {}", FastJsonUtil.toJSONString(siteUsersMap));
|
|
|
+
|
|
|
+ // 从 siteUsersMap 中删除
|
|
|
+ for (Map<String, String> user : usersToRemoves) {
|
|
|
+ String role = user.get("userRole");
|
|
|
+ String idToRemove = user.get("userId");
|
|
|
+
|
|
|
+ // 检查 siteUsersMap 是否包含该 role
|
|
|
+ if (siteUsersMap.containsKey(role)) {
|
|
|
+ String existingUsers = siteUsersMap.get(role);
|
|
|
+ List<String> userList = new ArrayList<>(Arrays.asList(existingUsers.split(",")));
|
|
|
+
|
|
|
+ // 删除目标 userId
|
|
|
+ userList.remove(idToRemove);
|
|
|
+
|
|
|
+ if (userList.isEmpty()) {
|
|
|
+ // 如果该 role 下已无用户,移除整个 key
|
|
|
+ siteUsersMap.remove(role);
|
|
|
+ } else {
|
|
|
+ // 重新拼接并更新 siteUsersMap
|
|
|
+ siteUsersMap.put(role, String.join(",", userList));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("siteUsersMap after removing new user: {}", FastJsonUtil.toJSONString(siteUsersMap));
|
|
|
+
|
|
|
+ OkkiBindSiteDto okkiBindSiteDto = new OkkiBindSiteDto();
|
|
|
+ okkiBindSiteDto.setServiceManageUser(siteUsersMap.get("serviceManageUser"));
|
|
|
+ okkiBindSiteDto.setDataUser(siteUsersMap.get("dataUser"));
|
|
|
+ okkiBindSiteDto.setKefuUser(siteUsersMap.get("kefuUser"));
|
|
|
+ okkiBindSiteDto.setSeoUser(siteUsersMap.get("seoUser"));
|
|
|
+
|
|
|
+ okkiBindSiteDto.setSemManageUser(siteUsersMap.get("semManageUser"));
|
|
|
+ okkiBindSiteDto.setSemUser(siteUsersMap.get("semUser"));
|
|
|
+ okkiBindSiteDto.setUiUser(siteUsersMap.get("uiUser"));
|
|
|
+
|
|
|
+ okkiBindSiteDto.setWebsiteUser(siteUsersMap.get("websiteUser"));
|
|
|
+ okkiBindSiteDto.setSocialUser(siteUsersMap.get("socialUser"));
|
|
|
+ okkiBindSiteDto.setRdUser(siteUsersMap.get("rdUser"));
|
|
|
+ log.info("okkiBindSiteDto:{}", FastJsonUtil.toJSONString(okkiBindSiteDto));
|
|
|
+
|
|
|
+// okkiAccountService.bindSitesV2(okkiBindSiteDto);
|
|
|
+ log.info("用户:{},删除公司名称:{}", FastJsonUtil.toJSONString(usersToRemoves), c.getCompanyName());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|