From 5dadac1a55e9f751f175fad10074c6cfefa2d6da Mon Sep 17 00:00:00 2001 From: yang chen Date: Fri, 17 Oct 2025 15:48:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(system):=20=E6=96=B0=E5=A2=9E=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E6=98=B5=E7=A7=B0=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3-=20=E5=9C=A8=20ApiAdminUse?= =?UTF-8?q?rApiImpl=20=E4=B8=AD=E5=AE=9E=E7=8E=B0=20getUserListByNickname?= =?UTF-8?q?=20=E6=96=B9=E6=B3=95=20-=20=E5=9C=A8=20IApiAdminUserApi=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=B8=AD=E5=AE=9A=E4=B9=89=20getUserListByNi?= =?UTF-8?q?ckname=20=E6=96=B9=E6=B3=95=20-=20=E4=BC=98=E5=8C=96=20RiskServ?= =?UTF-8?q?iceImpl=20=E4=B8=AD=E7=9A=84=E9=A3=8E=E9=99=A9=E9=9A=90?= =?UTF-8?q?=E6=82=A3=E5=BE=85=E5=8A=9E=E6=8E=A8=E9=80=81=E9=80=BB=E8=BE=91?= =?UTF-8?q?-=20=E6=96=B0=E5=A2=9E=20PortalTodoService=20=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E5=BE=85=E5=8A=9E=E7=B3=BB=E7=BB=9F=E6=8E=A5=E5=8F=A3-=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20PortalTodoController=20=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E5=BE=85=E5=8A=9E=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3-=20?= =?UTF-8?q?=E5=BC=95=E5=85=A5=20PortalRequest=20=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E5=BE=85=E5=8A=9E=E4=BF=A1=E6=81=AF=E6=8E=A8=E9=80=81-=20?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20Base64=20=E7=BC=96=E7=A0=81=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E6=B5=81=E7=A8=8BID=20-=20=E6=B7=BB=E5=8A=A0=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E7=8A=B6=E6=80=81=E5=92=8C=E6=9F=A5=E7=9C=8B=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E7=9A=84=E5=B8=B8=E9=87=8F=E5=AE=9A=E4=B9=89=20-=20?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E9=A3=8E=E9=99=A9=E9=9A=90=E6=82=A3=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E5=AE=8C=E6=88=90=E6=8E=A8=E9=80=81=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=20-=20=E9=87=8D=E6=9E=84=20sendNotify2Corrective=20=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E4=BB=A5=E6=94=AF=E6=8C=81=E5=BE=85=E5=8A=9E=E6=8E=A8?= =?UTF-8?q?=E9=80=81-=20=E7=A7=BB=E9=99=A4=E6=97=A7=E7=9A=84=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E5=8F=91=E9=80=81=E6=9C=8D=E5=8A=A1=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=20-=20=E6=B7=BB=E5=8A=A0=E7=A9=BA=E5=AE=9E=E7=8E=B0=20sendNoti?= =?UTF-8?q?fy2Check=20=E6=96=B9=E6=B3=95=E6=B3=A8=E9=87=8A=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=20-=20=E4=BC=98=E5=8C=96=E7=94=A8=E6=88=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E8=8E=B7=E5=8F=96=E9=80=BB=E8=BE=91=20-=20=E5=A2=9E?= =?UTF-8?q?=E5=BC=BA=E9=A3=8E=E9=99=A9=E9=9A=90=E6=82=A3=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=96=B9=E6=B3=95=20-=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=BF=85=E8=A6=81=E7=9A=84=E5=B7=A5=E5=85=B7=E7=B1=BB=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=92=8C=E9=9B=86=E5=90=88=E6=93=8D=E4=BD=9C=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/controller/PortalTodoController.java | 42 ++++++ .../biz/service/IPortalTodoService.java | 18 +++ .../service/impl/PortalTodoServiceImpl.java | 112 ++++++++++++++ .../biz/service/impl/RiskServiceImpl.java | 142 ++++++++++-------- .../service/system/api/IApiAdminUserApi.java | 8 + .../system/api/ApiAdminUserApiImpl.java | 7 + 6 files changed, 270 insertions(+), 59 deletions(-) create mode 100644 jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/controller/PortalTodoController.java create mode 100644 jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/IPortalTodoService.java create mode 100644 jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/impl/PortalTodoServiceImpl.java diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/controller/PortalTodoController.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/controller/PortalTodoController.java new file mode 100644 index 0000000..b311fd8 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/controller/PortalTodoController.java @@ -0,0 +1,42 @@ +package com.jeelowcode.module.biz.controller; + +import com.jeelowcode.core.framework.controller.BaseController; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.framework.tenant.annotation.JeeLowCodeTenantIgnore; +import com.jeelowcode.module.biz.service.IPortalTodoService; +import com.jeelowcode.tool.framework.common.pojo.CommonResult; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +/** + * 门户待办有关接口 + * + * @author yangchenjj + */ +@JeeLowCodeTenantIgnore +@Tag(name = "低代码框架 - 门户待办有关接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START + "/portal-to-do/push-done") +public class PortalTodoController extends BaseController { + + private final IPortalTodoService portalTodoService; + + /** + * 风险隐患推送待办完成 + * + * @param workflowId 待办id + * @return boolean 推送结果 + */ + @Operation(summary = "风险隐患推送待办完成") + @RequestMapping(value = "/risk-hazard/{workflowId}", method = RequestMethod.POST) + public CommonResult pushDoneRiskHazardWorkflow(@PathVariable("workflowId") Long workflowId) { + return CommonResult.success(portalTodoService.pushDoneRiskHazardWorkflow(workflowId)); + } + +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/IPortalTodoService.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/IPortalTodoService.java new file mode 100644 index 0000000..a1fee7b --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/IPortalTodoService.java @@ -0,0 +1,18 @@ +package com.jeelowcode.module.biz.service; + +/** + * 待办系统接口 + * + * @author yangchenjj + */ +public interface IPortalTodoService { + + /** + * 风险隐患推送待办完成 + * + * @param workflowId 流程id + * @return boolean 推送结果 + */ + boolean pushDoneRiskHazardWorkflow(Long workflowId); + +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/impl/PortalTodoServiceImpl.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/impl/PortalTodoServiceImpl.java new file mode 100644 index 0000000..1c858fd --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/impl/PortalTodoServiceImpl.java @@ -0,0 +1,112 @@ +package com.jeelowcode.module.biz.service.impl; + +import cn.hutool.core.codec.Base64; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +import com.jeelowcode.framework.plus.core.toolkit.StringUtils; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.module.biz.service.IPortalTodoService; +import com.jeelowcode.module.biz.service.IRiskService; +import com.jeelowcode.service.bpm.config.framework.portal.core.PortalRequest; +import com.jeelowcode.service.bpm.config.framework.portal.core.dto.ReceiveRequestInfoDTO; +import com.jeelowcode.service.system.api.IApiAdminUserApi; +import com.jeelowcode.service.system.dto.AdminUserRespDTO; +import com.jeelowcode.tool.framework.common.util.object.BeanUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +import static com.jeelowcode.tool.framework.common.util.collection.CollectionUtils.getFirst; + +/** + * 待办系统接口实现类 + * + * @author yangchenjj + */ +@Slf4j +@Service +public class PortalTodoServiceImpl implements IPortalTodoService { + + private static final String SPACE = " "; + private static final String WORK_NODE_NAME = "整改风险隐患"; + private static final String WORK_FLOW_NAME = "风险隐患信息"; + // TODO 待办跳转链接,这个以后需要优化,通过配置去取这个链接,不能写死在这里 + private static final String RISK_PC_URL = "/fx/table/view/1963446160885366786"; + private static final String WORK_STATUS_TODO = "0"; + private static final String WORK_STATUS_DONE = "2"; + private static final String WORK_STATUS_COMPLETE = "4"; + private static final String VIEW_TYPE_UNREAD = "0"; + private static final String VIEW_TYPE_READ = "1"; + + @Resource + private IRiskService riskService; + @Resource + private IApiAdminUserApi apiAdminUserApi; + + @Override + public boolean pushDoneRiskHazardWorkflow(Long id) { + // 0.1.查找风险隐患数据,如果查不到则放弃推送 + Map risk = riskService.getRiskById(id); + if (MapUtil.isEmpty(risk)) return false; + // 0.2.从容器中获取 PortalRequest 对象,如果没有配置则放弃通知 + PortalRequest portalRequest = SpringUtils.getBean(PortalRequest.class); + if (ObjectUtil.isNull(portalRequest)) return false; + + // 1.构建请求参数,准备推送待办信息 + // 1.1.拼接标题 + String requestName = DateUtil.formatDate((Date) risk.getOrDefault("check_date", new Date())) + SPACE + + risk.getOrDefault("parkName", "") + SPACE + + risk.getOrDefault("check_area", "") + SPACE + + risk.getOrDefault("check_content", "") + SPACE + + risk.getOrDefault("check_problem", "") + SPACE + + risk.getOrDefault("check_people", ""); + // 1.2.暂时先使用创建人当作发送人 TODO 需要升级存储检查人的username + Long createUserId = Objects.isNull(risk.get("create_user")) ? null : (Long) risk.get("create_user"); + AdminUserRespDTO createUser = Optional.ofNullable(createUserId) + .map(userId -> apiAdminUserApi.getUser(userId)) + .orElse(new AdminUserRespDTO()); + Date createDateTime = Objects.isNull(risk.get("create_time")) ? new Date() : (Date) risk.get("create_time"); + + // 1.3.从风险隐患数据中获取整改确认人 TODO 需要升级存储整改确认人的username + String corrective_confirm_people = Objects.isNull(risk.get("corrective_confirm_people")) ? null : (String) risk.get("corrective_confirm_people"); + List confirmUserList = Optional.ofNullable(corrective_confirm_people) + .map(userName -> apiAdminUserApi.getUserListByNickname(userName)) + .orElse(Collections.emptyList()); + // 如果没有整改确认人则放弃通知 + if (confirmUserList.isEmpty()) return false; + String receiver = Optional.ofNullable(getFirst(confirmUserList)) + .map(AdminUserRespDTO::getUsername).orElse(null); + if (StringUtils.isEmpty(receiver)) return false; + + // 1.2.组织请求数据 + ReceiveRequestInfoDTO todoRequestDTO = new ReceiveRequestInfoDTO() + .setFlowId(Base64.encode(String.valueOf(id))) + .setRequestName(requestName) + .setWorkflowName(WORK_FLOW_NAME) + .setNodeName(WORK_NODE_NAME) + .setPcUrl(RISK_PC_URL) + .setIsRemark(WORK_STATUS_DONE) + .setViewType(VIEW_TYPE_READ) + .setCreator(createUser.getUsername()) + .setCreateDateTime(createDateTime) + .setReceiver(receiver) + .setReceiveDateTime(new Date()) + .setReceiveTs(String.valueOf(System.currentTimeMillis())); + ReceiveRequestInfoDTO completeRequestDTO = BeanUtils.toBean(todoRequestDTO, ReceiveRequestInfoDTO.class); + completeRequestDTO.setIsRemark(WORK_STATUS_COMPLETE); + + // 2.推送待办信息,使用try-catch避免影响上层调用方法的事务回滚 + try { + portalRequest.receiveRequestInfo(todoRequestDTO); + portalRequest.receiveRequestInfo(completeRequestDTO); + } catch (Exception e) { + log.error("推送待办信息失败", e); + return false; + } + return true; + } + +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/impl/RiskServiceImpl.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/impl/RiskServiceImpl.java index 68226b1..b036105 100644 --- a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/impl/RiskServiceImpl.java +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/impl/RiskServiceImpl.java @@ -1,25 +1,26 @@ - package com.jeelowcode.module.biz.service.impl; -import com.jeelowcode.core.framework.mapper.JeeLowCodeSqlMapper; +import cn.hutool.core.codec.Base64; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; import com.jeelowcode.core.framework.service.IFrameSqlService; -import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; import com.jeelowcode.framework.plus.SqlHelper; import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; -import com.jeelowcode.framework.plus.core.model.SqlFormatModel; -import com.jeelowcode.module.biz.service.IPlanIssusService; +import com.jeelowcode.framework.plus.core.toolkit.StringUtils; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; import com.jeelowcode.module.biz.service.IRiskService; -import com.jeelowcode.service.system.controller.vo.notify.template.NotifyTemplateSendReqVO; -import com.jeelowcode.service.system.service.INotifySendService; +import com.jeelowcode.service.bpm.config.framework.portal.core.PortalRequest; +import com.jeelowcode.service.bpm.config.framework.portal.core.dto.ReceiveRequestInfoDTO; +import com.jeelowcode.service.system.api.IApiAdminUserApi; +import com.jeelowcode.service.system.dto.AdminUserRespDTO; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; + +import static com.jeelowcode.tool.framework.common.util.collection.CollectionUtils.getFirst; /** @@ -29,40 +30,83 @@ import java.util.Map; @Service public class RiskServiceImpl implements IRiskService { - @Autowired + private static final String SPACE = " "; + private static final String WORK_NODE_NAME = "整改风险隐患"; + private static final String WORK_FLOW_NAME = "风险隐患信息"; + // TODO 待办跳转链接,这个以后需要优化,通过配置去取这个链接,不能写死在这里 + private static final String RISK_PC_URL = "/fx/table/view/1963446160885366786"; + private static final String WORK_STATUS_TODO = "0"; + private static final String WORK_STATUS_DONE = "2"; + private static final String VIEW_TYPE_UNREAD = "0"; + private static final String VIEW_TYPE_READ = "1"; + + @Resource private IFrameSqlService sqlService; @Resource - private INotifySendService notifySendService; + private IApiAdminUserApi apiAdminUserApi; /** * 发生消息给整改人 */ @Override public void sendNotify2Corrective(Long id) { - // 根据ID查找风险隐患数据 - Map risk = getRiskById(id); - NotifyTemplateSendReqVO sendReqVO=new NotifyTemplateSendReqVO(); - // 构建消息参数 - List userIdList = new ArrayList<>(); - Map templateParams=new HashMap<>(); - userIdList.add( Long.valueOf(risk.get("corrective_charge_people_id").toString())); - userIdList.add( Long.valueOf(risk.get("corrective_confirm_people_id").toString())); - sendReqVO.setUserIdList(userIdList); + // 0.1.查找风险隐患数据,如果查不到任务可以结束了 + Map risk = this.getRiskById(id); + if (MapUtil.isEmpty(risk)) return; - templateParams.put("check_date",risk.get("check_date")); - templateParams.put("parkName",risk.get("parkName")); - templateParams.put("check_area",risk.get("check_area")); - templateParams.put("check_content",risk.get("check_content")); - templateParams.put("check_problem",risk.get("check_problem")); - templateParams.put("check_people",risk.get("check_people")); - sendReqVO.setTemplateCode("risk_corrective_notice"); + // 0.2.从容器中获取 PortalRequest 对象,如果没有配置则放弃通知 + PortalRequest portalRequest = SpringUtils.getBean(PortalRequest.class); + if (ObjectUtil.isNull(portalRequest)) return; - sendReqVO.setTemplateParams(templateParams); - // 发送消息 - notifySendService.sendSingleNotifyToAdmin(sendReqVO.getUserIdList(), - sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams()); + // 1.构建请求参数,准备推送待办信息 + // 1.1.拼接标题 + String requestName = DateUtil.formatDate((Date) risk.getOrDefault("check_date", new Date())) + SPACE + + risk.getOrDefault("parkName", "") + SPACE + + risk.getOrDefault("check_area", "") + SPACE + + risk.getOrDefault("check_content", "") + SPACE + + risk.getOrDefault("check_problem", "") + SPACE + + risk.getOrDefault("check_people", ""); + // 1.2.暂时先使用创建人当作发送人 TODO 需要升级存储检查人的username + Long createUserId = Objects.isNull(risk.get("create_user")) ? null : (Long) risk.get("create_user"); + AdminUserRespDTO createUser = Optional.ofNullable(createUserId) + .map(userId -> apiAdminUserApi.getUser(userId)) + .orElse(new AdminUserRespDTO()); + Date createDateTime = Objects.isNull(risk.get("create_time")) ? new Date() : (Date) risk.get("create_time"); + + // 1.3.从风险隐患数据中获取整改确认人 TODO 需要升级存储整改确认人的username + String corrective_confirm_people = Objects.isNull(risk.get("corrective_confirm_people")) ? null : (String) risk.get("corrective_confirm_people"); + List confirmUserList = Optional.ofNullable(corrective_confirm_people) + .map(userName -> apiAdminUserApi.getUserListByNickname(userName)) + .orElse(Collections.emptyList()); + // 如果没有整改确认人则放弃通知 + if (confirmUserList.isEmpty()) return; + String receiver = Optional.ofNullable(getFirst(confirmUserList)) + .map(AdminUserRespDTO::getUsername).orElse(null); + if (StringUtils.isEmpty(receiver)) return; + + // 1.2.组织请求数据 + ReceiveRequestInfoDTO requestDTO = new ReceiveRequestInfoDTO() + .setFlowId(Base64.encode(String.valueOf(id))) + .setRequestName(requestName) + .setWorkflowName(WORK_FLOW_NAME) + .setNodeName(WORK_NODE_NAME) + .setPcUrl(RISK_PC_URL) + .setIsRemark(WORK_STATUS_TODO) + .setViewType(VIEW_TYPE_UNREAD) + .setCreator(createUser.getUsername()) + .setCreateDateTime(createDateTime) + .setReceiver(receiver) + .setReceiveDateTime(new Date()) + .setReceiveTs(String.valueOf(System.currentTimeMillis())); + + // 2.将请求包裹在try catch 中,避免异常导致上层调用方法事务回滚 + try { + portalRequest.receiveRequestInfo(requestDTO); + } catch (Exception e) { + log.error("发送待办信息失败", e); + } } /** @@ -70,37 +114,17 @@ public class RiskServiceImpl implements IRiskService { */ @Override public void sendNotify2Check(Long id) { - // 根据ID查找风险隐患数据 - Map risk = getRiskById(id); - NotifyTemplateSendReqVO sendReqVO=new NotifyTemplateSendReqVO(); - // 构建消息参数 - List userIdList = new ArrayList<>(); - Map templateParams=new HashMap<>(); - userIdList.add( Long.valueOf(risk.get("check_people_id").toString())); - sendReqVO.setUserIdList(userIdList); - - templateParams.put("billNo",risk.get("billNo")); - templateParams.put("check_date",risk.get("check_date")); - templateParams.put("parkName",risk.get("parkName")); - templateParams.put("check_area",risk.get("check_area")); - templateParams.put("check_content",risk.get("check_content")); - templateParams.put("check_problem",risk.get("check_problem")); - sendReqVO.setTemplateCode("risk_check_notify"); - - sendReqVO.setTemplateParams(templateParams); - // 发送消息 - notifySendService.sendSingleNotifyToAdmin(sendReqVO.getUserIdList(), - sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams()); + // 空实现目前业务需求并不需要发送给检查人 } @Override public Map getRiskById(long id) { SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper(); wrapper.setTableName("lc_risk_hazard_manage"); - wrapper.setWhere(where->{ - where.eq("id",id); + wrapper.setWhere(where -> { + where.eq("id", id); }); - Map dataMap = sqlService.getDataOneByPlus(wrapper); - return dataMap; + return sqlService.getDataOneByPlus(wrapper); } + } diff --git a/jeelowcode-service/jeelowcode-service-system-api/src/main/java/com/jeelowcode/service/system/api/IApiAdminUserApi.java b/jeelowcode-service/jeelowcode-service-system-api/src/main/java/com/jeelowcode/service/system/api/IApiAdminUserApi.java index 95b691b..55b2406 100644 --- a/jeelowcode-service/jeelowcode-service-system-api/src/main/java/com/jeelowcode/service/system/api/IApiAdminUserApi.java +++ b/jeelowcode-service/jeelowcode-service-system-api/src/main/java/com/jeelowcode/service/system/api/IApiAdminUserApi.java @@ -79,4 +79,12 @@ public interface IApiAdminUserApi { */ void validateUserList(Collection ids); + /** + * 通过用户昵称,获得用户列表 + * + * @param nickname 昵称 + * @return 用户列表 + */ + List getUserListByNickname(String nickname); + } diff --git a/jeelowcode-service/jeelowcode-service-system-biz/src/main/java/com/jeelowcode/service/system/api/ApiAdminUserApiImpl.java b/jeelowcode-service/jeelowcode-service-system-biz/src/main/java/com/jeelowcode/service/system/api/ApiAdminUserApiImpl.java index eec43f9..77425a4 100644 --- a/jeelowcode-service/jeelowcode-service-system-biz/src/main/java/com/jeelowcode/service/system/api/ApiAdminUserApiImpl.java +++ b/jeelowcode-service/jeelowcode-service-system-biz/src/main/java/com/jeelowcode/service/system/api/ApiAdminUserApiImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Collection; +import java.util.Collections; import java.util.List; import static com.jeelowcode.tool.framework.common.util.collection.CollectionUtils.convertSet; @@ -55,4 +56,10 @@ public class ApiAdminUserApiImpl implements IApiAdminUserApi { userService.validateUserList(ids); } + @Override + public List getUserListByNickname(String nickname) { + List users = userService.getUserListByNickname(nickname); + return BeanUtils.toBean(users, AdminUserRespDTO.class); + } + }