package com.artfess.application.controller; import com.artfess.application.model.MessageConfig; import com.artfess.application.model.MsgTemplate; import com.artfess.application.persistence.manager.MessageConfigManager; import com.artfess.application.persistence.manager.MsgTemplateManager; import com.artfess.base.annotation.ApiGroup; import com.artfess.base.constants.ApiGroupConsts; import com.artfess.base.controller.BaseController; import com.artfess.base.feign.UCFeignService; import com.artfess.base.model.CommonResult; import com.artfess.base.query.PageList; import com.artfess.base.query.QueryFilter; import com.artfess.base.query.QueryOP; import com.artfess.base.util.JsonUtil; import com.artfess.base.util.StringUtil; import com.artfess.uc.api.service.IUserService; import com.artfess.uc.manager.OrgManager; import com.artfess.uc.model.Org; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ArrayNode; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.Arrays; import java.util.List; import java.util.Map; /** *
 * 描述:portal_message_config 系统配置类
 * 作者:wangping
 * 日期:2021-06-18 21:34:36
 * 版权:artfess
 * 
*/ @RestController @RequestMapping(value = "/msg/messageConfig/v1") @Api(tags = "消息配置") @ApiGroup(group = {ApiGroupConsts.GROUP_APPLICATION}) public class MessageConfigController extends BaseController { @Resource MessageConfigManager messageConfigManager; @Resource MsgTemplateManager msgTemplateManager; @Autowired OrgManager orgService; @Resource IUserService userService; @Resource UCFeignService ucFeignService; @Resource OrgManager orgManager; /** * 消息配置列表(分页条件查询)数据 * * @param queryFilter * @return * @throws Exception PageJson * @throws */ @PostMapping("/list") @ApiOperation(value = "消息配置列表", httpMethod = "POST", notes = "获取消息配置列表") public PageList list(@ApiParam(name = "queryFilter", value = "查询对象") @RequestBody QueryFilter queryFilter) throws Exception { return messageConfigManager.query(queryFilter); } /** * 根据ID获取配置 * * @param id * @return */ @RequestMapping(value = "getById", method = RequestMethod.GET, produces = {"application/json; charset=utf-8"}) @ApiOperation(value = "根据ID获取内容", httpMethod = "GET", notes = "根据ID获取内容") public MessageConfig getById( @ApiParam(name = "id", value = "id", required = true) @RequestParam String id) { MessageConfig messageConfig = messageConfigManager.getById(id); return messageConfig; } /** * 新增消息配置 * * @param * @return * @throws Exception * @throws */ @PostMapping(value = "/save") @ApiOperation(value = "新增,更新消息配置", httpMethod = "POST", notes = "新增,更新消息配置") public CommonResult save(@ApiParam(name = "MessageConfig", value = "消息配置", required = true) @RequestBody MessageConfig messageConfig) throws Exception { // IUserService userService = AppUtil.getBean(IUserService.class); // List list1 = userService.getUserByAccounts("admin,guest"); // System.out.println(list1); String msg = "添加消息配置成功"; boolean isExist = false; if (ObjectUtils.isNotEmpty(messageConfig)) { QueryFilter queryFilter = QueryFilter.build().withDefaultPage(); String id = messageConfig.getId(); String code = messageConfig.getCode(); if (StringUtils.isNotBlank(id)) { queryFilter.addFilter("id_", id, QueryOP.NOT_IN); } if (StringUtils.isNotBlank(code)) { queryFilter.addFilter("code_", code, QueryOP.EQUAL); } PageList query = baseService.query(queryFilter); isExist = query.getRows().size() > 0; } if (isExist) { return new CommonResult<>(false, "配置编号已经存在,添加失败", null); } else { System.out.println(messageConfig.getUserConfigType()); if (messageConfig.getUserConfigType() == 2){//判断接收配置是否为固定 String userStr = messageConfig.getUserStr(); if (StringUtils.isNotBlank(userStr)){ List> list = JsonUtil.toBean(userStr, List.class); String userId = ""; String orgId =""; for(Map m : list){ String type = String.valueOf(m.get("type")); if("user".equalsIgnoreCase(type)){ String codes = String.valueOf(m.get("codes")); if(StringUtils.isBlank(codes)){continue;} ArrayNode userByAccounts = ucFeignService.getUserByAccounts(codes); for (JsonNode userByAccount : userByAccounts) { String id = userByAccount.get("id").toString(); if (StringUtils.isNotBlank(id)) { userId = id.replace("\"", "").replace("\"", "")+","; } } /* if(userId.lastIndexOf(",")){ }*/ } if("org".equalsIgnoreCase(type)){ String codes = String.valueOf(m.get("codes")); //String[] split = codes.split(","); if(StringUtils.isBlank(codes))continue; // List stringList = Arrays.asList(split); List userList = this.orgManager.getOrgByAccount(codes); for (Org org : userList) { orgId= org.getId()+","; } } } int i = userId.lastIndexOf(","); // messageConfig.setOrgId(orgId); messageConfig.setOrgId(orgId.substring(0,orgId.lastIndexOf(","))); //messageConfig.setUserId(userId); messageConfig.setUserId(userId.substring(0,userId.lastIndexOf(","))); } } if (StringUtil.isEmpty(messageConfig.getId())) { baseService.create(messageConfig); } else { baseService.update(messageConfig); msg = "更新消息配置成功"; } return new CommonResult(msg); } } /** * 删除消息配置 * * @param id * @return * @throws Exception * @throws */ @DeleteMapping(value = "/remove/{id}") @ApiOperation(value = "删除消息配置", httpMethod = "DELETE", notes = "删除消息配置") public CommonResult remove(@ApiParam(name = "id", value = "业务主键", required = true) @PathVariable String id) throws Exception { String tplKey = messageConfigManager.get(id).getTplKey(); MsgTemplate msgTemplate = msgTemplateManager.gettypeKey(tplKey); if (msgTemplate==null) { messageConfigManager.remove(id); return new CommonResult(true, "删除成功"); }else{ return new CommonResult(false, "该配置已被应用,删除失败!"); } } /** * 批量删除消息配置 * * @param ids * @return * @throws Exception * @throws */ @DeleteMapping(value = "/removes") @ApiOperation(value = "批量删除消息配置", httpMethod = "DELETE", notes = "批量删除消息配置") public CommonResult removes(@ApiParam(name = "ids", value = "多个主键之间用逗号分隔", required = true) @RequestParam String... ids) throws Exception { String msg = "删除消息分类成功"; for (int i = 0; i < ids.length; i++) { String name = messageConfigManager.get(ids[i]).getName(); String tplKey = messageConfigManager.get(ids[i]).getTplKey(); MsgTemplate msgTemplate = msgTemplateManager.gettypeKey(tplKey); if (msgTemplate != null) { msg = name+"删除消息分类失败"; }else{ messageConfigManager.removeByIds(Arrays.asList(ids[i])); } } return new CommonResult(msg); } @RequestMapping(value = "listJson", method = RequestMethod.POST, produces = {"application/json; charset=utf-8"}) @ApiOperation(value = "消息配置列表(分页条件查询)数据", httpMethod = "POST", notes = "消息配置列表(分页条件查询)数据") public PageList listJson(@ApiParam(name = "queryFilter", value = "通用查询对象") @RequestBody QueryFilter queryFilter) throws Exception { // queryFilter.addFilter("ucuser.IS_DELE_", User.DELETE_NO, QueryOP.EQUAL, FieldRelation.AND, "delete_group"); // queryFilter.addFilter("ucuser.STATUS_", User.STATUS_NORMAL, QueryOP.EQUAL, FieldRelation.AND, "delete_group"); PageList sysMsgConfigList = messageConfigManager.queryByTemplateName(queryFilter); return sysMsgConfigList; } }