新增查询用户和根据用户名发送钉钉消息的方法

yun-zuoyi
nies 3 years ago
parent a34dd143d2
commit 3250c79ee3

@ -3,6 +3,8 @@ package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.shirotoken.BaseToken; import cn.estsh.i3plus.pojo.base.shirotoken.BaseToken;
import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserModel;
import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserResultModel;
import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -406,4 +408,29 @@ public interface ISysUserService {
*/ */
@ApiOperation(value = "获取用户菜单信息") @ApiOperation(value = "获取用户菜单信息")
void packUser(SysUser user); void packUser(SysUser user);
/**
* andonmodel
* @param andonQueryUserModel
* @param pager
* @return
*/
@ApiOperation(value = "根据andon查询model查询用户信息")
ListPager<AndonQueryUserResultModel> findUserByAndonQueryUserModel(AndonQueryUserModel andonQueryUserModel, Pager pager);
/**
* sysUser to AndonQueryUserResultModel
* @param sysUserList
* @return
*/
List<AndonQueryUserResultModel> packAndonQueryUserResultModel(List<SysUser> sysUserList);
/**
*
* @param userLoginNamegenList
* @return
*/
@ApiOperation(value = "获取批量账号信息", notes = "查询用户信息-批量根据登录名称查询")
List<SysUser> findSysUserByLoginName(List<String> userLoginNamegenList);
} }

@ -62,6 +62,7 @@ import com.google.common.cache.CacheBuilder;
import com.taobao.api.ApiException; import com.taobao.api.ApiException;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import jodd.util.StringUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.*; import org.apache.shiro.authc.*;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -1110,6 +1111,42 @@ public class WhiteController extends CoreBaseController {
* @param dingSendBatchRequestModel * @param dingSendBatchRequestModel
* @return * @return
*/ */
@PostMapping(value = "/dingRobot/sendBatchRequestByUserLoginName")
@ApiOperation(value = "根据登录用户名 钉钉单聊机器人批量发送消息", notes = "根据登录用户名 钉钉单聊机器人批量发送消息")
public ResultBean singleRobotsendBatchRequestByUserLoginName(@RequestBody DingSendBatchRequestModel dingSendBatchRequestModel ) {
if(ObjectUtils.isEmpty(dingSendBatchRequestModel)){
return ResultBean.fail("消息内容不能为空");
}
if(ObjectUtils.isEmpty(dingSendBatchRequestModel.getUserLoginNameList())){
return ResultBean.fail("登录用户名不能为空");
}
List<String> userLoginNameList = dingSendBatchRequestModel.getUserLoginNameList();
userLoginNameList = userLoginNameList.stream().filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList());
if(ObjectUtils.isEmpty(userLoginNameList)){
return ResultBean.fail("登录用户名不能为空");
}
List<SysUser> userList = userService.findSysUserByLoginName(userLoginNameList);
if(ObjectUtils.isEmpty(userList)){
return ResultBean.fail("登录用户名没有对应的账号");
}
List<String> phoneNumberList =userList.stream().map(SysUser::getUserPhone).filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList());
if(ObjectUtils.isEmpty(userList)){
return ResultBean.fail("登录用户名没有对应的手机号");
}
dingSendBatchRequestModel.setPhoneNumberList(phoneNumberList);
return singleRobotsendBatchRequest(dingSendBatchRequestModel);
}
/**
*
*/
private final int MAX_DINGROBOT_SEND_NUM = 1000;
/**
*
* @param dingSendBatchRequestModel
* @return
*/
@PostMapping(value = "/dingRobot/sendBatchRequest") @PostMapping(value = "/dingRobot/sendBatchRequest")
@ApiOperation(value = "根据手机号 钉钉单聊机器人批量发送消息", notes = "根据手机号 钉钉单聊机器人批量发送消息") @ApiOperation(value = "根据手机号 钉钉单聊机器人批量发送消息", notes = "根据手机号 钉钉单聊机器人批量发送消息")
public ResultBean singleRobotsendBatchRequest(@RequestBody DingSendBatchRequestModel dingSendBatchRequestModel ) { public ResultBean singleRobotsendBatchRequest(@RequestBody DingSendBatchRequestModel dingSendBatchRequestModel ) {
@ -1125,7 +1162,7 @@ public class WhiteController extends CoreBaseController {
if (ObjectUtils.isEmpty(phoneNumberList)) { if (ObjectUtils.isEmpty(phoneNumberList)) {
return ResultBean.fail("手机号不能为空"); return ResultBean.fail("手机号不能为空");
} }
phoneNumberList = phoneNumberList.stream().filter(StringUtils::isNotBlank).collect(Collectors.toList()); phoneNumberList = phoneNumberList.stream().filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList());
if (ObjectUtils.isEmpty(phoneNumberList)) { if (ObjectUtils.isEmpty(phoneNumberList)) {
return ResultBean.fail("手机号不能为空"); return ResultBean.fail("手机号不能为空");
} }

@ -23,6 +23,8 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.model.platform.AccountExportModel; import cn.estsh.i3plus.pojo.model.platform.AccountExportModel;
import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserModel;
import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserResultModel;
import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
@ -35,6 +37,7 @@ import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.text.StrBuilder; import org.apache.commons.lang.text.StrBuilder;
import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.RandomStringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -872,4 +875,38 @@ public class SysUserController extends CoreBaseController {
} }
} }
@GetMapping(value = "/query-user-andonQueryUserModel")
@ApiOperation(value = "根据andonQueryUserModel查询系统用户")
public ResultBean queryUserByAndonQueryUserModel(AndonQueryUserModel andonQueryUserModel, Pager pager) {
try {
ValidatorBean.checkNotNull(andonQueryUserModel);
if (StringUtils.isBlank(andonQueryUserModel.getOrganizeCode())) {
andonQueryUserModel.setOrganizeCode(AuthUtil.getOrganizeCode());
}
if (ObjectUtils.isEmpty(pager)) {
pager = Pager.defaultPager();
}
ListPager<AndonQueryUserResultModel> resultList = sysUserService.findUserByAndonQueryUserModel(andonQueryUserModel, pager);
return ResultBean.success("操作成功").setListPager(resultList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping(value = "/query-user-by-org")
@ApiOperation(value = "根据orgCode查询Sysuser用户")
public ResultBean queryUserByOrg(String organizeCode) {
try {
List<SysUser> sysUsers = sysUserService.querySysUserByOrganizeCode(organizeCode);
return ResultBean.success("操作成功").setResultList(sysUserService.packAndonQueryUserResultModel(sysUsers)).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
} }

@ -19,6 +19,8 @@ import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken;
import cn.estsh.i3plus.pojo.base.shirotoken.UserToken; import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.base.tool.HqlPack;
import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserModel;
import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserResultModel;
import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.i3plus.pojo.platform.repository.SysLogUserLoginRepository; import cn.estsh.i3plus.pojo.platform.repository.SysLogUserLoginRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysRefUserDepartmentRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefUserDepartmentRepository;
@ -157,11 +159,10 @@ public class SysUserService implements ISysUserService {
AuthUtil.setSessionUser(sessionUser); AuthUtil.setSessionUser(sessionUser);
AuthUtil.online(sessionUser); AuthUtil.online(sessionUser);
resultBean = ResultBean.success().setResultObject(sessionUser); resultBean = ResultBean.success().setResultObject(sessionUser);
}catch (ImppBusiException e) { } catch (ImppBusiException e) {
e.printStackTrace(); e.printStackTrace();
resultBean = ResultBean.fail(e); resultBean = ResultBean.fail(e);
} } catch (CredentialsException e) {
catch (CredentialsException e) {
// 用户名或密码错误 // 用户名或密码错误
e.printStackTrace(); e.printStackTrace();
resultBean = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_NAME); resultBean = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_NAME);
@ -173,7 +174,7 @@ public class SysUserService implements ISysUserService {
// 用户信息不存在 // 用户信息不存在
e.printStackTrace(); e.printStackTrace();
resultBean = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_INFO_NULL); resultBean = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_INFO_NULL);
}catch (AuthenticationException e) { } catch (AuthenticationException e) {
// 系统异常 // 系统异常
resultBean = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_PASSWORD.getDescription()).setCode(ImppExceptionEnum.LOGIN_EXCEPTION_USER_PASSWORD.getCode()); resultBean = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_PASSWORD.getDescription()).setCode(ImppExceptionEnum.LOGIN_EXCEPTION_USER_PASSWORD.getCode());
if (e.getCause() != null) { if (e.getCause() != null) {
@ -187,8 +188,7 @@ public class SysUserService implements ISysUserService {
resultBean.setErrorMsg(e.getMessage()); resultBean.setErrorMsg(e.getMessage());
} }
LOGGER.warn("Impp业务异常AuthenticationException 登录失败 ", e); LOGGER.warn("Impp业务异常AuthenticationException 登录失败 ", e);
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
resultBean = ResultBean.fail(e); resultBean = ResultBean.fail(e);
if (e.getCause() != null) { if (e.getCause() != null) {
@ -198,7 +198,7 @@ public class SysUserService implements ISysUserService {
} }
} finally { } finally {
//如果登录成功,刷新登录成功次数和上次登录时间 //如果登录成功,刷新登录成功次数和上次登录时间
try{ try {
if (resultBean.isSuccess()) { if (resultBean.isSuccess()) {
this.refreshUserLoginInformation(user.getId()); this.refreshUserLoginInformation(user.getId());
} else { } else {
@ -207,8 +207,7 @@ public class SysUserService implements ISysUserService {
this.refreshUserLoginDateTime(user.getId(), user.getUserInfoId()); this.refreshUserLoginDateTime(user.getId(), user.getUserInfoId());
} }
} }
} } catch (Exception e) {
catch (Exception e){
e.printStackTrace(); e.printStackTrace();
} }
@ -265,9 +264,9 @@ public class SysUserService implements ISysUserService {
//判断条件如果有authPlatform限制则进行校验没有按照原有登录 //判断条件如果有authPlatform限制则进行校验没有按照原有登录
//authPlatform限制如果不包含平台权限则不能登录这里可以扩展多个登录权限限制。 //authPlatform限制如果不包含平台权限则不能登录这里可以扩展多个登录权限限制。
String authPlatform = user.getAuthPlatform(); String authPlatform = user.getAuthPlatform();
if (Strings.isNotBlank(authPlatform)){ if (Strings.isNotBlank(authPlatform)) {
List<Integer> authPlatforms = Arrays.stream(authPlatform.split(",")).map(Integer::parseInt).collect(Collectors.toList()); List<Integer> authPlatforms = Arrays.stream(authPlatform.split(",")).map(Integer::parseInt).collect(Collectors.toList());
if (!authPlatforms.contains(loginPlatform)){ if (!authPlatforms.contains(loginPlatform)) {
throw ImppExceptionBuilder.newInstance().setErrorDetail("此账号没有权限登录此平台,请联系管理员!").build(); throw ImppExceptionBuilder.newInstance().setErrorDetail("此账号没有权限登录此平台,请联系管理员!").build();
} }
} }
@ -386,19 +385,19 @@ public class SysUserService implements ISysUserService {
@Override @Override
public void updateSysUserPwdByLoginName(String loginName, String password) { public void updateSysUserPwdByLoginName(String loginName, String password) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getStringEqualPack(loginName,"userLoginName",ddlPackBean); DdlPreparedPack.getStringEqualPack(loginName, "userLoginName", ddlPackBean);
List<SysUser> sysUsers = userRDao.findByHqlWhere(ddlPackBean); List<SysUser> sysUsers = userRDao.findByHqlWhere(ddlPackBean);
if (Objects.isNull(sysUsers)){ if (Objects.isNull(sysUsers)) {
throw ImppExceptionBuilder.newInstance().setErrorDetail("修改密码失败,账号在系统中不存在!").build(); throw ImppExceptionBuilder.newInstance().setErrorDetail("修改密码失败,账号在系统中不存在!").build();
} }
if (sysUsers.size() > 1){ if (sysUsers.size() > 1) {
throw ImppExceptionBuilder.newInstance().setErrorDetail("登录名不唯一,修改失败!").build(); throw ImppExceptionBuilder.newInstance().setErrorDetail("登录名不唯一,修改失败!").build();
} }
SysUser sysUser = sysUsers.get(0); SysUser sysUser = sysUsers.get(0);
Long pwdId = sysUser.getUserLoginPasswordId(); Long pwdId = sysUser.getUserLoginPasswordId();
userPasswordService.updatePasswordByPwdIdAndNewPwd(pwdId,password); userPasswordService.updatePasswordByPwdIdAndNewPwd(pwdId, password);
} }
@ -693,7 +692,7 @@ public class SysUserService implements ISysUserService {
.collect(Collectors.toList()); .collect(Collectors.toList());
if (CollectionUtils.isEmpty(distinctUserIds)) { if (CollectionUtils.isEmpty(distinctUserIds)) {
return null; return new ArrayList();
} }
DdlPackBean packBean = DdlPackBean.getDdlPackBean(); DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getInPackList(distinctUserIds, "id", packBean); DdlPreparedPack.getInPackList(distinctUserIds, "id", packBean);
@ -740,15 +739,15 @@ public class SysUserService implements ISysUserService {
@Override @Override
public SysUser getSysUserByLoginNameAndEmail(String loginName, String email) { public SysUser getSysUserByLoginNameAndEmail(String loginName, String email) {
LOGGER.debug("平台用户 SYS_USER find By Login Name :{}and email:{}", loginName,email); LOGGER.debug("平台用户 SYS_USER find By Login Name :{}and email:{}", loginName, email);
SysUser sysUser = userRDao.getByProperty(new String[]{"userLoginName", "isValid", "isDeleted"}, SysUser sysUser = userRDao.getByProperty(new String[]{"userLoginName", "isValid", "isDeleted"},
new Object[]{loginName, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()}); new Object[]{loginName, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()});
if (!Objects.isNull(sysUser)){ if (!Objects.isNull(sysUser)) {
String emails = sysUser.getUserEmail(); String emails = sysUser.getUserEmail();
if (Strings.isNotBlank(emails)){ if (Strings.isNotBlank(emails)) {
List<String> emailList = Arrays.asList(emails.split(",")); List<String> emailList = Arrays.asList(emails.split(","));
if (emailList.contains(email)){ if (emailList.contains(email)) {
return sysUser; return sysUser;
} }
} }
@ -1027,6 +1026,42 @@ public class SysUserService implements ISysUserService {
} }
@Override
public ListPager<AndonQueryUserResultModel> findUserByAndonQueryUserModel(AndonQueryUserModel andonQueryUserModel, Pager pager) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(andonQueryUserModel.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(andonQueryUserModel.getOrganizeCode(), "organizeCode", ddlPackBean);
DdlPreparedPack.getStringLikerPack(andonQueryUserModel.getDepartment(), "departmentNameRdd", ddlPackBean);
DdlPreparedPack.getStringLikerPack(andonQueryUserModel.getUserLoginName(), "userLoginName", ddlPackBean);
DdlPreparedPack.getStringLikerPack(andonQueryUserModel.getUserName(), "userName", ddlPackBean);
pager = PagerHelper.getPager(pager, userRDao.findByHqlWhereCount(ddlPackBean));
return new ListPager(packAndonQueryUserResultModel(userRDao.findByHqlWherePage(ddlPackBean, pager)), pager);
}
@Override
public List<AndonQueryUserResultModel> packAndonQueryUserResultModel(List<SysUser> sysUserList) {
if (ObjectUtils.isEmpty(sysUserList)) {
return new ArrayList<>();
}
return sysUserList.stream().map(el -> {
AndonQueryUserResultModel andonQueryUserModel = new AndonQueryUserResultModel();
andonQueryUserModel.setDepartment(el.getDepartmentNameRdd());
andonQueryUserModel.setLoginName(el.getUserLoginName());
andonQueryUserModel.setUserId(el.getId());
andonQueryUserModel.setUserInfoId(el.getUserInfoId());
andonQueryUserModel.setUserName(el.getUserName());
return andonQueryUserModel;
}).collect(Collectors.toList());
}
@Override
public List<SysUser> findSysUserByLoginName(List<String> userLoginNamegenList) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getInPackList(userLoginNamegenList,"userLoginName",ddlPackBean);
return userRDao.findByHqlWhere(ddlPackBean);
}
/** /**
* *
* *

Loading…
Cancel
Save