| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783 |
- package jnpf.message.controller;
- import cn.dev33.satoken.annotation.SaCheckPermission;
- import io.swagger.v3.oas.annotations.Parameter;
- import io.swagger.v3.oas.annotations.Parameters;
- import jnpf.base.controller.SuperController;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import io.swagger.v3.oas.annotations.Operation;
- import jnpf.base.ActionResult;
- import jnpf.base.entity.DictionaryDataEntity;
- import jnpf.base.entity.SysConfigEntity;
- import jnpf.base.service.BillRuleService;
- import jnpf.base.service.DictionaryDataService;
- import jnpf.base.service.SysconfigService;
- import jnpf.base.vo.PageListVO;
- import jnpf.base.vo.PaginationVO;
- import jnpf.base.UserInfo;
- import jnpf.base.vo.DownloadVO;
- import jnpf.config.ConfigValueUtil;
- import jnpf.constant.FileTypeConstant;
- import jnpf.constant.MsgCode;
- import jnpf.exception.DataException;
- import jnpf.message.entity.*;
- import jnpf.message.model.message.DingTalkModel;
- import jnpf.message.model.messagetemplateconfig.TemplateParamModel;
- import jnpf.message.model.sendmessageconfig.*;
- import jnpf.message.service.*;
- import jnpf.base.util.TestSendConfigUtil;
- import jnpf.model.BaseSystemInfo;
- import jnpf.model.SocialsSysConfig;
- import jnpf.permission.entity.UserEntity;
- import jnpf.permission.service.UserService;
- import jnpf.emnus.ModuleTypeEnum;
- import jnpf.util.FileExport;
- import org.springframework.http.MediaType;
- import org.springframework.transaction.annotation.Transactional;
- import jnpf.util.*;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.multipart.MultipartFile;
- import jakarta.validation.Valid;
- import java.io.IOException;
- import java.security.InvalidKeyException;
- import java.security.NoSuchAlgorithmException;
- import java.util.stream.Collectors;
- import java.util.*;
- /**
- * 消息发送配置
- *
- * @版本: V3.2.0
- * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com)
- * @作者: JNPF开发平台组
- * @日期: 2022-08-19
- */
- @Slf4j
- @RestController
- @Tag(name = "消息发送配置", description = "message")
- @RequestMapping("/api/message/SendMessageConfig")
- public class SendMessageConfigController extends SuperController<SendMessageConfigService, SendMessageConfigEntity> {
- @Autowired
- private FileExport fileExport;
- @Autowired
- private BillRuleService billRuleService;
- @Autowired
- private ConfigValueUtil configValueUtil;
- @Autowired
- private UserService userApi;
- @Autowired
- private SysconfigService sysconfigService;
- @Autowired
- private SendMessageConfigService sendMessageConfigService;
- @Autowired
- private SendConfigTemplateService sendConfigTemplateService;
- @Autowired
- private AccountConfigService accountConfigService;
- @Autowired
- private MessageTemplateConfigService messageTemplateConfigService;
- @Autowired
- private DictionaryDataService dictionaryDataApi;
- @Autowired
- private TestSendConfigUtil testSendConfigUtil;
- /**
- * 列表
- *
- * @param sendMessageConfigPagination 分页模型
- * @return
- */
- @Operation(summary = "消息发送配置列表")
- @SaCheckPermission("msgCenter.sendConfig")
- @GetMapping
- public ActionResult<PageListVO<SendMessageConfigListVO>> list(SendMessageConfigPagination sendMessageConfigPagination) throws IOException {
- List<SendMessageConfigEntity> list = sendMessageConfigService.getList(sendMessageConfigPagination, null);
- List<DictionaryDataEntity> msgSendTypeList = dictionaryDataApi.getListByTypeDataCode("msgSendType");
- List<DictionaryDataEntity> msgSourceTypeList = dictionaryDataApi.getListByTypeDataCode("msgSourceType");
- //处理id字段转名称,若无需转或者为空可删除
- UserEntity userEntity = new UserEntity();
- List<SendMessageConfigListVO> listVO = JsonUtil.getJsonToList(list, SendMessageConfigListVO.class);
- for (SendMessageConfigListVO sendMessageConfigVO : listVO) {
- List<Map<String,String>> mapList = new ArrayList<>();
- //子表数据转换
- List<SendConfigTemplateEntity> sendConfigTemplateList = sendConfigTemplateService.getDetailListByParentId(sendMessageConfigVO.getId());
- if (sendConfigTemplateList != null && sendConfigTemplateList.size()>0) {
- sendConfigTemplateList = sendConfigTemplateList.stream().sorted((a,b)->a.getMessageType().compareTo(b.getMessageType())).collect(Collectors.toList());
- List<String> typeList = sendConfigTemplateList.stream().map(t -> t.getMessageType()).distinct().collect(Collectors.toList());
- if (typeList != null && typeList.size()>0) {
- for(String type : typeList) {
- String messageType = "";
- Map<String,String> map = new HashMap<>();
- DictionaryDataEntity dataTypeEntity = msgSendTypeList.stream().filter(t -> t.getEnCode().equals(type)).findFirst().orElse(null);
- if (dataTypeEntity != null) {
- messageType = dataTypeEntity.getFullName();
- map.put("fullName",messageType);
- map.put("type",type);
- mapList.add(map);
- }
- }
- sendMessageConfigVO.setMessageType(mapList);
- }
- }
- if(StringUtil.isNotEmpty(sendMessageConfigVO.getCreatorUserId())){
- userEntity = userApi.getInfo(sendMessageConfigVO.getCreatorUserId());
- if(userEntity != null){
- sendMessageConfigVO.setCreatorUser(userEntity.getRealName() +"/"+ userEntity.getAccount());
- }
- }
- //消息来源
- if(StringUtil.isNotBlank(sendMessageConfigVO.getMessageSource())) {
- msgSourceTypeList.stream().filter(t -> sendMessageConfigVO.getMessageSource().equals(t.getEnCode())).findFirst()
- .ifPresent(dataTypeEntity -> sendMessageConfigVO.setMessageSource(dataTypeEntity.getFullName()));
- }
- }
- PageListVO vo = new PageListVO();
- vo.setList(listVO);
- PaginationVO page = JsonUtil.getJsonToBean(sendMessageConfigPagination, PaginationVO.class);
- vo.setPagination(page);
- return ActionResult.success(vo);
- }
- /**
- * 获取发送配置下拉框
- *
- * @return
- */
- @Operation(summary = "获取发送配置下拉框")
- @GetMapping("/Selector")
- public ActionResult<PageListVO<SendMessageConfigListVO>> selector(SendMessageConfigPagination sendMessageConfigPagination) {
- List<SendMessageConfigEntity> list = sendMessageConfigService.getSelectorList(sendMessageConfigPagination);
- List<SendMessageConfigListVO> listVO = JsonUtil.getJsonToList(list, SendMessageConfigListVO.class);
- PageListVO vo = new PageListVO();
- vo.setList(listVO);
- PaginationVO page = JsonUtil.getJsonToBean(sendMessageConfigPagination, PaginationVO.class);
- vo.setPagination(page);
- return ActionResult.success(vo);
- }
- /**
- * 消息发送配置弹窗列表
- *
- * @param sendMessageConfigPagination 分页模型
- * @return
- */
- @Operation(summary = "消息发送配置弹窗列表")
- @GetMapping("/getSendConfigList")
- public ActionResult<PageListVO<SendConfigListVO>> getSendConfigList(SendMessageConfigPagination sendMessageConfigPagination) throws IOException {
- if(StringUtil.isBlank(sendMessageConfigPagination.getEnabledMark())) {
- sendMessageConfigPagination.setEnabledMark("1");
- }
- if(StringUtil.isBlank(sendMessageConfigPagination.getTemplateType())){
- sendMessageConfigPagination.setTemplateType("0");
- }
- List<SendMessageConfigEntity> list = sendMessageConfigService.getList(sendMessageConfigPagination, null);
- //处理id字段转名称,若无需转或者为空可删除
- List<DictionaryDataEntity> msgSendTypeList = dictionaryDataApi.getListByTypeDataCode("msgSendType");
- List<SendConfigListVO> listVO = JsonUtil.getJsonToList(list, SendConfigListVO.class);
- for (SendConfigListVO sendConfigVO : listVO) {
- //子表数据转换
- List<SendConfigTemplateEntity> sendConfigTemplateList = sendConfigTemplateService.getDetailListByParentId(sendConfigVO.getId());
- sendConfigTemplateList = sendConfigTemplateList.stream().filter(t->"1".equals(String.valueOf(t.getEnabledMark()))).collect(Collectors.toList());
- List<SendConfigTemplateModel> modelList = JsonUtil.getJsonToList(sendConfigTemplateList, SendConfigTemplateModel.class);
- for(SendConfigTemplateModel model:modelList) {
- if (modelList != null && modelList.size() > 0) {
- List<TemplateParamModel> list1 = messageTemplateConfigService.getParamJson(model.getTemplateId());
- // if (list != null && list.size() > 0) {
- // model.setParamJson(JsonUtil.getObjectToString(list1));
- // }
- List<MsgTemplateJsonModel> jsonModels = new ArrayList<>();
- for(TemplateParamModel paramModel : list1){
- MsgTemplateJsonModel jsonModel = new MsgTemplateJsonModel();
- jsonModel.setField(paramModel.getField());
- jsonModel.setFieldName(paramModel.getFieldName());
- jsonModel.setMsgTemplateId(model.getId());
- jsonModels.add(jsonModel);
- }
- model.setParamJson(jsonModels);
- MessageTemplateConfigEntity msgTemEntity = messageTemplateConfigService.getInfo(model.getTemplateId());
- if (msgTemEntity != null) {
- model.setMsgTemplateName(msgTemEntity.getFullName());
- }
- if (StringUtil.isNotEmpty(model.getMessageType())) {
- msgSendTypeList.stream().filter(t -> model.getMessageType().equals(t.getEnCode())).findFirst()
- .ifPresent(dataTypeEntity -> model.setMessageType(dataTypeEntity.getFullName()));
- }
- }
- sendConfigVO.setTemplateJson(modelList);
- }
- }
- PageListVO vo = new PageListVO();
- vo.setList(listVO);
- PaginationVO page = JsonUtil.getJsonToBean(sendMessageConfigPagination, PaginationVO.class);
- vo.setPagination(page);
- return ActionResult.success(vo);
- }
- /**
- * 创建
- *
- * @param sendMessageConfigForm 发送消息配置模型
- * @return
- */
- @Operation(summary = "创建")
- @Parameters({
- @Parameter(name = "sendMessageConfigForm", description = "发送消息配置模型", required = true)
- })
- @SaCheckPermission("msgCenter.sendConfig")
- @PostMapping
- @Transactional
- public ActionResult create(@RequestBody @Valid SendMessageConfigForm sendMessageConfigForm) throws DataException {
- boolean b = sendMessageConfigService.checkForm(sendMessageConfigForm, 0,"");
- if (b) {
- return ActionResult.fail(MsgCode.EXIST002.get());
- }
- if(!"1".equals(sendMessageConfigForm.getTemplateType())){
- if(sendMessageConfigForm.getEnCode().contains("PZXT")){
- return ActionResult.fail(MsgCode.MSERR114.get());
- }
- }
- String mainId = RandomUtil.uuId();
- UserInfo userInfo = UserProvider.getUser();
- SendMessageConfigEntity entity = JsonUtil.getJsonToBean(sendMessageConfigForm, SendMessageConfigEntity.class);
- entity.setCreatorUserId(userInfo.getUserId());
- entity.setCreatorTime(DateUtil.getNowDate());
- entity.setId(mainId);
- if (sendMessageConfigForm.getSendConfigTemplateList() != null) {
- List<SendConfigTemplateEntity> SendConfigTemplateList = JsonUtil.getJsonToList(sendMessageConfigForm.getSendConfigTemplateList(), SendConfigTemplateEntity.class);
- long dd = SendConfigTemplateList.stream().filter(t->t.getMessageType().equals("4")).count();
- long qy = SendConfigTemplateList.stream().filter(t->t.getMessageType().equals("5")).count();
- boolean isQy = true;
- boolean isDd = true;
- Map<String, String> objModel = getSysConfig();
- if(qy > 0){
- SocialsSysConfig config = sysconfigService.getSocialsConfig();
- // 企业号id
- String corpId = config.getQyhCorpId();
- // 应用凭证
- String agentId = config.getQyhAgentId();
- // 凭证密钥
- String agentSecret = config.getQyhAgentSecret();
- // 同步密钥
- String corpSecret = config.getQyhCorpSecret();
- if(StringUtil.isNotEmpty(corpId) && StringUtil.isNotEmpty(agentId) && StringUtil.isNotEmpty(corpSecret) && StringUtil.isNotEmpty(agentSecret)){
- isQy = true;
- }else {
- isQy = false;
- }
- }
- if(dd > 0){
- DingTalkModel dingTalkModel = JsonUtil.getJsonToBean(objModel, DingTalkModel.class);
- // 钉钉企业号Id
- String dingAgentId = dingTalkModel.getDingAgentId();
- // 应用凭证
- String dingSynAppKey = dingTalkModel.getDingSynAppKey();
- // 凭证密钥
- String dingSynAppSecret = dingTalkModel.getDingSynAppSecret();
- if(StringUtil.isNotEmpty(dingSynAppKey) && StringUtil.isNotEmpty(dingSynAppSecret) && StringUtil.isNotEmpty(dingAgentId)){
- isDd = true;
- }else {
- isDd = false;
- }
- }
- if(!isQy){
- return ActionResult.fail(MsgCode.MSERR120.get());
- }
- if(!isDd){
- return ActionResult.fail(MsgCode.MSERR119.get());
- }
- for (SendConfigTemplateEntity entitys : SendConfigTemplateList) {
- entitys.setId(RandomUtil.uuId());
- entitys.setSendConfigId(entity.getId());
- sendConfigTemplateService.save(entitys);
- }
- }
- sendMessageConfigService.save(entity);
- return ActionResult.success(MsgCode.SU001.get());
- }
- /**
- * 信息
- *
- * @param id 主键
- * @return
- */
- @Operation(summary = "信息")
- @Parameters({
- @Parameter(name = "id", description = "主键", required = true)
- })
- @GetMapping("/{id}")
- public ActionResult<SendMessageConfigInfoVO> info(@PathVariable("id") String id) {
- SendMessageConfigEntity entity = sendMessageConfigService.getInfo(id);
- SendMessageConfigInfoVO vo = JsonUtil.getJsonToBean(entity, SendMessageConfigInfoVO.class);
- List<DictionaryDataEntity> msgSourceTypeList = dictionaryDataApi.getListByTypeDataCode("msgSourceType");
- if (StringUtil.isNotEmpty(vo.getMessageSource())) {
- msgSourceTypeList.stream().filter(t -> vo.getMessageSource().equals(t.getEnCode())).findFirst()
- .ifPresent(dataTypeEntity -> vo.setMessageSourceName(dataTypeEntity.getFullName()));
- }
- //子表
- List<SendConfigTemplateEntity> sendConfigTemplateList = sendMessageConfigService.getSendConfigTemplateList(id);
- for (SendConfigTemplateEntity sendconfigtemplateEntity : sendConfigTemplateList) {
- AccountConfigEntity accountConfigEntity = accountConfigService.getInfo(sendconfigtemplateEntity.getAccountConfigId());
- if(accountConfigEntity != null){
- sendconfigtemplateEntity.setAccountCode(accountConfigEntity.getEnCode());
- sendconfigtemplateEntity.setAccountName(accountConfigEntity.getFullName());
- }
- MessageTemplateConfigEntity messageTemplateConfigEntity = messageTemplateConfigService.getInfo(sendconfigtemplateEntity.getTemplateId());
- if(messageTemplateConfigEntity != null){
- sendconfigtemplateEntity.setTemplateCode(messageTemplateConfigEntity.getEnCode());
- sendconfigtemplateEntity.setTemplateName(messageTemplateConfigEntity.getFullName());
- }
- }
- vo.setSendConfigTemplateList(sendConfigTemplateList);
- //副表
- return ActionResult.success(vo);
- }
- /**
- * 根据编码获取信息
- *
- * @param enCode 编码
- * @return
- */
- @Operation(summary = "根据编码获取信息")
- @Parameters({
- @Parameter(name = "enCode", description = "编码", required = true)
- })
- @SaCheckPermission("msgCenter.sendConfig")
- @GetMapping("/getInfoByEnCode/{enCode}")
- public ActionResult<SendMessageConfigInfoVO> getInfo(@PathVariable("enCode") String enCode) {
- SendMessageConfigEntity entity = sendMessageConfigService.getInfoByEnCode(enCode);
- SendMessageConfigInfoVO vo = JsonUtil.getJsonToBean(entity, SendMessageConfigInfoVO.class);
- //子表
- List<SendConfigTemplateEntity> sendConfigTemplateList = sendMessageConfigService.getSendConfigTemplateList(entity.getId());
- for (SendConfigTemplateEntity sendconfigtemplateEntity : sendConfigTemplateList) {
- AccountConfigEntity accountConfigEntity = accountConfigService.getInfo(sendconfigtemplateEntity.getAccountConfigId());
- if(accountConfigEntity != null){
- sendconfigtemplateEntity.setAccountCode(accountConfigEntity.getEnCode());
- sendconfigtemplateEntity.setAccountName(accountConfigEntity.getFullName());
- }
- MessageTemplateConfigEntity messageTemplateConfigEntity = messageTemplateConfigService.getInfo(sendconfigtemplateEntity.getTemplateId());
- if(messageTemplateConfigEntity != null){
- sendconfigtemplateEntity.setTemplateCode(messageTemplateConfigEntity.getEnCode());
- sendconfigtemplateEntity.setTemplateName(messageTemplateConfigEntity.getFullName());
- }
- }
- vo.setSendConfigTemplateList(sendConfigTemplateList);
- //副表
- return ActionResult.success(vo);
- }
- /**
- * 表单信息(详情页)
- *
- * @param id 主键
- * @return
- */
- @Operation(summary = "表单信息(详情页)")
- @Parameters({
- @Parameter(name = "id", description = "主键", required = true)
- })
- @SaCheckPermission("msgCenter.sendConfig")
- @GetMapping("/detail/{id}")
- public ActionResult<SendMessageConfigInfoVO> detailInfo(@PathVariable("id") String id) {
- SendMessageConfigEntity entity = sendMessageConfigService.getInfo(id);
- SendMessageConfigInfoVO vo = JsonUtil.getJsonToBean(entity, SendMessageConfigInfoVO.class);
- //子表数据转换
- List<SendConfigTemplateEntity> sendConfigTemplateList = sendMessageConfigService.getSendConfigTemplateList(id);
- for(SendConfigTemplateEntity sendconfigtemplateEntity : sendConfigTemplateList){
- AccountConfigEntity accountConfigEntity = accountConfigService.getInfo(sendconfigtemplateEntity.getAccountConfigId());
- if(accountConfigEntity != null){
- sendconfigtemplateEntity.setAccountCode(accountConfigEntity.getEnCode());
- sendconfigtemplateEntity.setAccountName(accountConfigEntity.getFullName());
- }
- MessageTemplateConfigEntity messageTemplateConfigEntity = messageTemplateConfigService.getInfo(sendconfigtemplateEntity.getTemplateId());
- if(messageTemplateConfigEntity != null){
- sendconfigtemplateEntity.setTemplateCode(messageTemplateConfigEntity.getEnCode());
- sendconfigtemplateEntity.setTemplateName(messageTemplateConfigEntity.getFullName());
- }
- }
- vo.setSendConfigTemplateList(sendConfigTemplateList);
- return ActionResult.success(vo);
- }
- /**
- * 更新
- *
- * @param id 主键
- * @param sendMessageConfigForm 发送信息配置模型
- * @return
- */
- @Operation(summary = "更新")
- @Parameters({
- @Parameter(name = "id", description = "主键", required = true),
- @Parameter(name = "sendMessageConfigForm", description = "发送信息配置模型", required = true)
- })
- @SaCheckPermission("msgCenter.sendConfig")
- @PutMapping("/{id}")
- @Transactional
- public ActionResult update(@PathVariable("id") String id, @RequestBody @Valid SendMessageConfigForm sendMessageConfigForm) throws DataException {
- boolean b = sendMessageConfigService.checkForm(sendMessageConfigForm, 0,sendMessageConfigForm.getId());
- if (b) {
- return ActionResult.fail(MsgCode.EXIST002.get());
- }
- if("0".equals(sendMessageConfigForm.getEnabledMark())){
- if(sendMessageConfigService.idUsed(id)){
- return ActionResult.fail(MsgCode.FA049.get());
- }
- }
- if(!"1".equals(sendMessageConfigForm.getTemplateType())){
- if(sendMessageConfigForm.getEnCode().contains("PZXT")){
- return ActionResult.fail(MsgCode.MSERR114.get());
- }
- }
- UserInfo userInfo = UserProvider.getUser();
- SendMessageConfigEntity entity = sendMessageConfigService.getInfo(id);
- if (entity != null) {
- SendMessageConfigEntity subentity = JsonUtil.getJsonToBean(sendMessageConfigForm, SendMessageConfigEntity.class);
- subentity.setCreatorUserId(entity.getCreatorUserId());
- subentity.setCreatorTime(entity.getCreatorTime());
- subentity.setLastModifyUserId(userInfo.getUserId());
- subentity.setLastModifyTime(DateUtil.getNowDate());
- //明细表数据更新
- List<SendConfigTemplateEntity> addTemplateList = new ArrayList<>();
- List<SendConfigTemplateEntity> updTemplateList = new ArrayList<>();
- List<SendConfigTemplateEntity> delTemplateList = new ArrayList<>();
- if (sendMessageConfigForm.getSendConfigTemplateList() != null) {
- List<SendConfigTemplateEntity> sendConfigTemplateEntityList = JsonUtil.getJsonToList(sendMessageConfigForm.getSendConfigTemplateList(), SendConfigTemplateEntity.class);
- long dd = sendConfigTemplateEntityList.stream().filter(t->t.getMessageType().equals("4")).count();
- long qy = sendConfigTemplateEntityList.stream().filter(t->t.getMessageType().equals("5")).count();
- boolean isQy = true;
- boolean isDd = true;
- Map<String, String> objModel = getSysConfig();
- if(qy > 0){
- SocialsSysConfig config = sysconfigService.getSocialsConfig();
- // 企业号id
- String corpId = config.getQyhCorpId();
- // 应用凭证
- String agentId = config.getQyhAgentId();
- // 凭证密钥
- String agentSecret = config.getQyhAgentSecret();
- // 同步密钥
- String corpSecret = config.getQyhCorpSecret();
- if(StringUtil.isNotEmpty(corpId) && StringUtil.isNotEmpty(agentId) && StringUtil.isNotEmpty(corpSecret) && StringUtil.isNotEmpty(agentSecret)){
- isQy = true;
- }else {
- isQy = false;
- }
- }
- if(dd > 0){
- DingTalkModel dingTalkModel = JsonUtil.getJsonToBean(objModel, DingTalkModel.class);
- // 钉钉企业号Id
- String dingAgentId = dingTalkModel.getDingAgentId();
- // 应用凭证
- String dingSynAppKey = dingTalkModel.getDingSynAppKey();
- // 凭证密钥
- String dingSynAppSecret = dingTalkModel.getDingSynAppSecret();
- if(StringUtil.isNotEmpty(dingSynAppKey) && StringUtil.isNotEmpty(dingSynAppSecret) && StringUtil.isNotEmpty(dingAgentId)){
- isDd = true;
- }else {
- isDd = false;
- }
- }
- if(!isQy){
- return ActionResult.fail(MsgCode.MSERR120.get());
- }
- if(!isDd){
- return ActionResult.fail(MsgCode.MSERR119.get());
- }
- for (SendConfigTemplateEntity entitys : sendConfigTemplateEntityList) {
- SendConfigTemplateEntity templateEntity = StringUtil.isNotEmpty(entitys.getId())?sendConfigTemplateService.getInfo(entitys.getId()):null;
- if(templateEntity != null){
- templateEntity.setSendConfigId(entity.getId());
- templateEntity.setId(entitys.getId());
- templateEntity.setEnabledMark(entitys.getEnabledMark());
- templateEntity.setCreatorTime(entitys.getCreatorTime());
- templateEntity.setCreatorUserId(entitys.getCreatorUserId());
- templateEntity.setDescription(entitys.getDescription());
- templateEntity.setAccountConfigId(entitys.getAccountConfigId());
- templateEntity.setSortCode(entitys.getSortCode());
- templateEntity.setLastModifyTime(DateUtil.getNowDate());
- templateEntity.setLastModifyUserId(userInfo.getUserId());
- templateEntity.setTemplateId(entitys.getTemplateId());
- updTemplateList.add(templateEntity);
- }else {
- entitys.setId(RandomUtil.uuId());
- entitys.setSendConfigId(entity.getId());
- entitys.setCreatorUserId(userInfo.getUserId());
- entitys.setCreatorTime(DateUtil.getNowDate());
- addTemplateList.add(entitys);
- }
- }
- //删除参数记录
- List<SendConfigTemplateEntity> paramEntityList = sendConfigTemplateService.getDetailListByParentId(entity.getId());
- if (paramEntityList != null) {
- for (SendConfigTemplateEntity templateEntity : paramEntityList) {
- SendConfigTemplateEntity templateEntity1 = sendConfigTemplateEntityList.stream().filter(t -> t.getId().equals(templateEntity.getId())).findFirst().orElse(null);
- if (templateEntity1 == null) {
- delTemplateList.add(templateEntity);
- }
- }
- }
- if (addTemplateList != null && addTemplateList.size() > 0) {
- sendConfigTemplateService.saveBatch(addTemplateList);
- }
- if (updTemplateList != null && updTemplateList.size() > 0) {
- sendConfigTemplateService.updateBatchById(updTemplateList);
- }
- if (delTemplateList != null && delTemplateList.size() > 0) {
- sendConfigTemplateService.removeByIds(delTemplateList.stream().map(SendConfigTemplateEntity::getId).collect(Collectors.toList()));
- }
- }
- boolean b1 = sendMessageConfigService.updateById(subentity);
- if (!b1) {
- return ActionResult.fail(MsgCode.VS405.get());
- }
- return ActionResult.success(MsgCode.SU004.get());
- } else {
- return ActionResult.fail(MsgCode.FA002.get());
- }
- }
- /**
- * 删除
- *
- * @param id 主键
- * @return
- */
- @Operation(summary = "删除")
- @Parameters({
- @Parameter(name = "id", description = "主键", required = true)
- })
- @SaCheckPermission("msgCenter.sendConfig")
- @DeleteMapping("/{id}")
- @Transactional
- public ActionResult delete(@PathVariable("id") String id) {
- SendMessageConfigEntity entity = sendMessageConfigService.getInfo(id);
- if (entity != null) {
- if(sendMessageConfigService.idUsed(id)){
- return ActionResult.fail(MsgCode.FA050.get());
- }
- sendMessageConfigService.delete(entity);
- QueryWrapper<SendConfigTemplateEntity> queryWrapperSendConfigTemplate = new QueryWrapper<>();
- queryWrapperSendConfigTemplate.lambda().eq(SendConfigTemplateEntity::getSendConfigId, entity.getId());
- sendConfigTemplateService.remove(queryWrapperSendConfigTemplate);
- }
- return ActionResult.success(MsgCode.SU003.get());
- }
- /**
- * 获取消息发送配置
- *
- * @param id 发送配置id
- * @return
- */
- @Operation(summary = "获取消息发送配置")
- @Parameters({
- @Parameter(name = "id", description = "主键", required = true)
- })
- @SaCheckPermission("msgCenter.sendConfig")
- @PostMapping("/getTestConfig/{id}")
- @Transactional
- public ActionResult getTestConfig(@PathVariable("id") String id){
- List<SendConfigTemplateEntity> configTemplateList = sendConfigTemplateService.getConfigTemplateListByConfigId(id);
- List<DictionaryDataEntity> msgSendTypeList = dictionaryDataApi.getListByTypeDataCode("msgSendType");
- if(configTemplateList != null && configTemplateList.size()>0){
- List<SendConfigTemplateModel> modelList = JsonUtil.getJsonToList(configTemplateList, SendConfigTemplateModel.class);
- for(SendConfigTemplateModel model:modelList){
- List<TemplateParamModel> list = messageTemplateConfigService.getParamJson(model.getTemplateId());
- if(list!=null && list.size()>0){
- model.setParamJson(list);
- }
- MessageTemplateConfigEntity msgTemEntity = messageTemplateConfigService.getInfo(model.getTemplateId());
- if(msgTemEntity != null){
- model.setMsgTemplateName(msgTemEntity.getFullName());
- }
- if(StringUtil.isNotEmpty(model.getMessageType())){
- msgSendTypeList.stream().filter(t -> model.getMessageType().equals(t.getEnCode())).findFirst()
- .ifPresent(dataTypeEntity -> model.setMessageType(dataTypeEntity.getFullName()));
- }
- }
- return ActionResult.success(modelList);
- }else {
- return ActionResult.fail(MsgCode.MSERR121.get());
- }
- }
- /**
- * 测试消息发送配置
- *
- * @param modelList 发送配置
- * @return
- */
- @Operation(summary = "测试消息发送配置")
- @Parameters({
- @Parameter(name = "modelList", description = "发送配置", required = true)
- })
- @SaCheckPermission("msgCenter.sendConfig")
- @PostMapping("/testSendConfig")
- @Transactional
- public ActionResult testSendConfig(@RequestBody @Valid List<SendConfigTemplateModel> modelList) throws NoSuchAlgorithmException, InvalidKeyException {
- UserInfo userInfo = UserProvider.getUser();
- List<SendConfigTestResultModel> resultList = new ArrayList<>();
- List<DictionaryDataEntity> msgSendTypeList = dictionaryDataApi.getListByTypeDataCode("msgSendType");
- if(modelList != null && modelList.size()>0){
- for(SendConfigTemplateModel model: modelList){
- SendConfigTestResultModel resultModel = new SendConfigTestResultModel();
- String result = testSendConfigUtil.sendMessage(model,userInfo);
- MessageTemplateConfigEntity msgTemEntity = messageTemplateConfigService.getInfo(model.getTemplateId());
- if(msgTemEntity != null) {
- msgSendTypeList.stream().filter(t -> msgTemEntity.getMessageType().equals(t.getEnCode())).findFirst()
- .ifPresent(dataTypeEntity -> resultModel.setMessageType("消息类型:" + dataTypeEntity.getFullName()));
- resultModel.setResult(result);
- if (result != null) {
- resultModel.setIsSuccess("0");
- } else {
- resultModel.setIsSuccess("1");
- }
- }
- resultList.add(resultModel);
- }
- }
- return ActionResult.success(resultList);
- }
- /**
- * 复制
- *
- * @param id 主键
- * @return
- */
- @Operation(summary = "复制")
- @Parameters({
- @Parameter(name = "id", description = "主键", required = true)
- })
- @SaCheckPermission("msgCenter.sendConfig")
- @PostMapping("/{id}/Actions/Copy")
- @Transactional
- public ActionResult copy(@PathVariable("id") String id) {
- UserInfo userInfo = UserProvider.getUser();
- SendMessageConfigEntity entity = sendMessageConfigService.getInfo(id);
- if (entity != null) {
- entity.setEnabledMark(0);
- String copyNum = UUID.randomUUID().toString().substring(0, 5);
- entity.setFullName(entity.getFullName()+".副本"+copyNum);
- entity.setEnCode(entity.getEnCode()+copyNum);
- entity.setCreatorTime(DateUtil.getNowDate());
- entity.setCreatorUserId(userInfo.getUserId());
- entity.setLastModifyTime(null);
- entity.setLastModifyUserId(null);
- entity.setTemplateType("0");
- entity.setId(RandomUtil.uuId());
- SendMessageConfigEntity copyEntity = JsonUtil.getJsonToBean(entity, SendMessageConfigEntity.class);
- if(copyEntity.getEnCode().length()>50 || copyEntity.getFullName().length()>50){
- return ActionResult.fail(MsgCode.PRI006.get());
- }
- sendMessageConfigService.create(copyEntity);
- List<SendConfigTemplateEntity> copyConfigTemplateList = new ArrayList<>();
- List<SendConfigTemplateEntity> configTemplateList = sendConfigTemplateService.getDetailListByParentId(id);
- if(configTemplateList != null && configTemplateList.size()>0){
- for(SendConfigTemplateEntity entitys : configTemplateList){
- entitys.setId(RandomUtil.uuId());
- entitys.setSendConfigId(copyEntity.getId());
- entitys.setCreatorTime(DateUtil.getNowDate());
- entitys.setCreatorUserId(userInfo.getUserId());
- entitys.setLastModifyTime(null);
- entitys.setLastModifyUserId(null);
- copyConfigTemplateList.add(entitys);
- }
- }
- if(copyConfigTemplateList != null && copyConfigTemplateList.size()>0) {
- sendConfigTemplateService.saveBatch(copyConfigTemplateList);
- }
- return ActionResult.success(MsgCode.SU007.get());
- }else {
- return ActionResult.fail(MsgCode.FA004.get());
- }
- }
- /**
- * 导出消息发送配置
- *
- * @param id 账号配置id
- * @return ignore
- */
- @Operation(summary = "导出")
- @GetMapping("/{id}/Action/Export")
- public ActionResult export(@PathVariable String id) {
- SendMessageConfigEntity entity = sendMessageConfigService.getInfo(id);
- SendMessageConfigInfoVO vo = JsonUtil.getJsonToBean(entity, SendMessageConfigInfoVO.class);
- //子表数据
- List<SendConfigTemplateEntity> sendConfigTemplateList = sendMessageConfigService.getSendConfigTemplateList(id);
- vo.setSendConfigTemplateList(sendConfigTemplateList);
- //导出文件
- DownloadVO downloadVO = fileExport.exportFile(vo, FileTypeConstant.TEMPORARY, entity.getFullName(), ModuleTypeEnum.MESSAGE_SEND_CONFIG.getTableName());
- return ActionResult.success(downloadVO);
- }
- /**
- * 导入账号配置
- *
- * @param multipartFile 备份json文件
- * @return 执行结果标识
- */
- @Operation(summary = "导入")
- @PostMapping(value = "/Action/Import", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
- public ActionResult importData(@RequestPart("file") MultipartFile multipartFile) throws DataException {
- UserInfo userInfo = UserProvider.getUser();
- //判断是否为.json结尾
- if (FileUtil.existsSuffix(multipartFile, ModuleTypeEnum.MESSAGE_SEND_CONFIG.getTableName())) {
- return ActionResult.fail(MsgCode.IMP002.get());
- }
- //获取文件内容
- String fileContent = FileUtil.getFileContent(multipartFile);
- SendMessageConfigInfoVO infoVO = JsonUtil.getJsonToBean(fileContent, SendMessageConfigInfoVO.class);
- SendMessageConfigEntity entity = JsonUtil.getJsonToBean(infoVO, SendMessageConfigEntity.class);
- entity.setCreatorUserId(userInfo.getUserId());
- entity.setCreatorTime(DateUtil.getNowDate());
- if (infoVO.getSendConfigTemplateList() != null) {
- List<SendConfigTemplateEntity> sendConfigTemplateList = JsonUtil.getJsonToList(infoVO.getSendConfigTemplateList(), SendConfigTemplateEntity.class);
- sendConfigTemplateService.saveBatch(sendConfigTemplateList);
- }
- return sendMessageConfigService.ImportData(entity);
- }
- public Map<String, String> getSysConfig() {
- Map<String, String> objModel = new HashMap<>();
- List<SysConfigEntity> configList = sysconfigService.getList("SysConfig");
- for (SysConfigEntity entity : configList) {
- objModel.put(entity.getFkey(), entity.getValue());
- }
- return objModel;
- }
- }
|