package com.ruoyi.system.service.impl; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.constant.ResultConstants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.model.ResultVO; import com.ruoyi.common.enums.InstitutionStatus; import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.signature.AESUtils; import com.ruoyi.common.utils.HttpClientUtil; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.InstitutionalManager; import com.ruoyi.system.domain.ThAccessAddress; import com.ruoyi.system.domain.enums.AccessAddressType; import com.ruoyi.system.domain.query.InstitutionManagerQuery; import com.ruoyi.system.domain.req.InstitutionModStatusReqDTO; import com.ruoyi.system.domain.vo.InstitutionVo; import com.ruoyi.system.mapper.ThAccessAddressMapper; import com.ruoyi.system.service.InstitutionalManagerService; import com.ruoyi.system.domain.req.InstitutionalManagerAddReqDTO; import com.ruoyi.system.domain.req.InstitutionalManagerModReqDTO; import com.ruoyi.system.mapper.InstitutionalManagerMapper; import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.RandomUtil; import com.ruoyi.system.service.ThAccessAddressService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; @Service("InstitutionalManagerService") public class InstitutionalManagerServiceImpl extends ServiceImpl implements InstitutionalManagerService { @Autowired private InstitutionalManagerMapper institutionalManagerMapper; @Autowired private ThAccessAddressService thAccessAddressService; @Override public int add(InstitutionalManagerAddReqDTO reqDTO) { String accessKey = RandomUtil.generateRandomString(20); String secretKey = RandomUtil.generateRandomString(20); InstitutionalManager institutionalManager = new InstitutionalManager(); institutionalManager.setInstitutionalName(reqDTO.getInstitutionalName()); institutionalManager.setDelFlag(DeleteStatusEnum.NO.getStatus()); institutionalManager.setAccessKey(accessKey); institutionalManager.setSecretKey(secretKey); institutionalManager.setInstitutionCode(generateCode()); institutionalManager.setPhone(reqDTO.getPhone()); institutionalManager.setContacts(reqDTO.getContacts()); institutionalManager.setStatus(InstitutionStatus.YES.getStatus()); return institutionalManagerMapper.insert(institutionalManager); } @Override public int mod(InstitutionalManagerModReqDTO reqDTO) { InstitutionalManager institutionalManager = new InstitutionalManager(); institutionalManager.setId(reqDTO.getId()); institutionalManager.setInstitutionalName(reqDTO.getInstitutionalName()); institutionalManager.setPhone(reqDTO.getPhone()); institutionalManager.setContacts(reqDTO.getContacts()); //institutionalManager.setStatus(reqDTO.getStatus()); return institutionalManagerMapper.updateById(institutionalManager); } @Override public int del(Long id) { InstitutionalManager institutionalManager = this.findById(id); if(institutionalManager == null){ throw new ServiceException("该数据不存在"); } institutionalManager.setId(id); institutionalManager.setDelFlag(DeleteStatusEnum.YES.getStatus()); return baseMapper.updateById(institutionalManager); } @Override public InstitutionalManager findById(Long id) { return institutionalManagerMapper.selectOne(new LambdaQueryWrapper().eq(InstitutionalManager::getId, id) .eq(InstitutionalManager::getDelFlag, DeleteStatusEnum.NO.getStatus())); } @Override public List listByPage(InstitutionManagerQuery query) { return institutionalManagerMapper.selectList(new LambdaQueryWrapper().eq(InstitutionalManager::getDelFlag,DeleteStatusEnum.NO.getStatus()) .eq(!StringUtils.isEmpty(query.getInstitutionManagerName()),InstitutionalManager::getInstitutionalName,query.getInstitutionManagerName())); } @Override public InstitutionalManager getInstitutionalByAccessKey(String accessKey) { InstitutionalManager institutionalManager = institutionalManagerMapper.selectOne(new LambdaQueryWrapper() .eq(InstitutionalManager::getAccessKey, accessKey) .eq(InstitutionalManager::getDelFlag, DeleteStatusEnum.NO.getStatus())); return institutionalManager; } @Override public int modStatus(InstitutionModStatusReqDTO reqDTO) { //获取该机构信息 InstitutionalManager institutionalManager = this.getById(reqDTO.getId()); //获取该机构访问路径 ThAccessAddress accessAddress = thAccessAddressService.getByInstitutionIdAndType(reqDTO.getId(), AccessAddressType.NOTICE.getType()); //推送到机构 InstitutionVo institutionVo = new InstitutionVo(); institutionVo.setInstitutionName(institutionalManager.getInstitutionalName()); institutionVo.setStatus(reqDTO.getStatus()); institutionVo.setReason(reqDTO.getReason()); /* String json = HttpClientUtil.doPost(accessAddress.getUrl(), JSONObject.toJSONString(institutionVo)); ResultVO returnVo = JSONObject.parseObject(json, new TypeReference>() {}); if(returnVo.getCode() == null || returnVo.getCode() != 200){ throw new ServiceException("推送平台信息异常"); }*/ institutionalManager.setId(reqDTO.getId()); institutionalManager.setStatus(reqDTO.getStatus()); institutionalManager.setReason(reqDTO.getReason()); int i = institutionalManagerMapper.updateById(institutionalManager); return i; } @Override public List selectInstitutionInfo() { return institutionalManagerMapper.selectList(new LambdaQueryWrapper().eq(InstitutionalManager::getDelFlag,DeleteStatusEnum.NO.getStatus())); } @Override public List getAllList() { return institutionalManagerMapper.selectList(new LambdaQueryWrapper().eq(InstitutionalManager::getDelFlag,DeleteStatusEnum.NO.getStatus())); } //生成编码 private Long generateCode() { Long code = 1000l; Long count = institutionalManagerMapper.selectCount(new LambdaQueryWrapper<>()); code += count; return code; } }